Computer Science, BA
Degree: Bachelor of Arts (BA)
Major: Computer Science
Program Overview
The Bachelor of Arts degree program in computer science is a combination of a liberal arts program and a computing major. It is a professional program in the sense that graduates can be employed as computer professionals, but it is less technical than the Bachelor of Science degree program in computer science. This degree is particularly suitable for students with a wide range of interests. For example, students can major in another discipline in addition to computer science and routinely complete all of the requirements for the double major in a 4 year period. This is possible because over a third of the courses in the program are open electives. Furthermore, if a student is majoring in computer science and a second technical field such as mathematics or physics many of the technical electives will be accepted for both majors. Another example of the utility of this program is that it routinely allows students to major in computer science and take all of the pre-med courses in a four-year period.
This program provides students with a strong background in the fundamental skills and knowledge needed by all CS graduates while providing the greatest flexibility in selecting topics. Students can use their technical and open electives to pursue interests in software engineering, algorithms, artificial intelligence, databases, data mining, bioinformatics, security, computer systems, and computer networks. In addition to an excellent technical education, all students in the department are exposed to societal issues, ethics, professionalism, and have the opportunity to develop leadership and creativity skills.
Mission
The mission of the Bachelor of Arts degree program in computer science is to graduate students who have fundamental technical knowledge of their profession and the requisite technical breadth and communications skills to become leaders in creating the new techniques and technologies which will advance the field of computer science and its application to other disciplines.
Program Educational Objectives
- Analyze real-world problems and create solutions based on the fundamentals of computer science and mathematics.
- Work effectively, professionally, collaboratively, and ethically.
- Assume leadership roles in industry, academia, public service, and entrepreneurship.
- Successfully progress in advanced degree programs in computing and related fields.
Learning Outcomes
As preparation for achieving the above educational objectives, the Bachelor of Arts degree program in computer science is designed so that students attain the ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
Undergraduate Policies
For undergraduate policies and procedures, please review the Undergraduate Academics section of the General Bulletin.
Combined Bachelor's/Master's Programs
Undergraduate students may participate in accelerated programs toward graduate or professional degrees. For more information and details of the policies and procedures related to accelerated studies, please visit the Undergraduate Academics section of the General Bulletin.
Program Requirements
Students seeking to complete this major and degree program must meet the general requirements for bachelor's degrees and the Unified General Education Requirements. Students completing this program as a secondary major while completing another undergraduate degree program do not need to satisfy the school-specific requirements associated with this major.
Students are required to complete at least 13 computer science and computer science related courses totaling at least 42 credit hours plus 8 credit hours of mathematics. The 13 computer science courses must include all six core courses and at least one course from each of the four computer science breadth areas. The remaining three courses may come from the list of approved technical electives.
Required Courses
| Code | Title | Credit Hours |
|---|---|---|
| Mathematics Requirement: | ||
| Choose two of the following: | 8 | |
| Calculus for Science and Engineering I | ||
or MATH 125 | Math and Calculus Applications for Life, Managerial, and Social Sci I | |
| Calculus for Science and Engineering II | ||
or MATH 124 | Calculus II | |
or MATH 126 | Math and Calculus Applications for Life, Managerial, and Social Sci II | |
| Core Requirement: | 21-22 | |
| Programming in Java | ||
| Programming in Python and The Java Programming Language | ||
| Introduction to Data Structures | ||
| Logic Design and Computer Organization | ||
| Discrete Mathematics | ||
| Algorithms | ||
| Senior Project in Computer Science | ||
| Computer Science Breadth Courses: | ||
| Breadth Area 1: | 3 | |
| Choose one of the following: | ||
| Introduction to Database Systems | ||
| Data Privacy | ||
| Advanced Game Development Project | ||
| Software Engineering | ||
| Breadth Area 2: | 3-4 | |
| Choose one of the following: | ||
| Introduction to Data Science Systems | ||
| Computer Architecture | ||
| Computer Networks I | ||
| Intro to Operating Systems and Concurrent Programming | ||
| Breadth Area 3: | 3-4 | |
| Choose one of the following: | ||
| Compiler Design | ||
| Theoretical Computer Science | ||
| Computer Security | ||
| Programming Language Concepts | ||
| Breadth Area 4: | 3 | |
| Choose one of the following: | ||
| Introduction to Data Analysis | ||
| Introduction to Artificial Intelligence | ||
| Data Mining for Big Data | ||
| Introduction to Machine Learning | ||
| Technical Electives | 8-9 | |
| Total Credit Hours | 50-53 | |
Technical Electives
Computer science related courses not listed below may be used as a technical elective but require prior permission from the student’s academic advisor.
| Code | Title | Credit Hours |
|---|---|---|
| Any CSDS course | 3-4 | |
| ECSE 301 | Digital Logic Laboratory | 2 |
| ECSE 303 | Embedded Systems Design and Laboratory | 3 |
| ECSE 315 | Digital Systems Design | 4 |
| ECSE 317 | Computer Design - FPGAs | 3 |
| ECSE 323 | Introduction to Human-Robot Interaction | 3 |
| ECSE 373 | Introduction to Modern Robotics | 4 |
| ECSE 419 | Computer System Architecture | 3 |
| ECSE 484 | Computational Intelligence I: Basic Principles | 3 |
| ECSE 485 | VLSI Systems | 3 |
| ECSE 488 | Embedded Systems Design | 3 |
| MATH 201 | Introduction to Linear Algebra for Applications | 3 |
| or MATH 307 | Linear Algebra | |
| MATH 330 | Introduction to Scientific Computing | 3 |
| MATH 356 | Math in Machine Learning | 3 |
| MATH 380 | Introduction to Probability | 3 |
| MATH 382 | High Dimensional Probability | 3 |
| MATH 406/PHIL 306 | Mathematical Logic and Model Theory | 3 |
| MATH 408 | Introduction to Cryptology | 3 |
| MATH 431 | Introduction to Numerical Analysis I | 3 |
| MATH 444 | Mathematics of Data Mining and Pattern Recognition | 3 |
| MATH 473 | Introduction to Mathematical Image Processing and Computer Vision | 3 |
| PHIL 393 | Ethics of Artificial Intelligence and Emerging Technology | 3 |
Sample Plan of Study
| First Year | ||
|---|---|---|
| Fall | Credit Hours | |
| CSDS 132 | Programming in Java | 3 |
| MATH 121 or MATH 125 | Calculus for Science and Engineering I or Math and Calculus Applications for Life, Managerial, and Social Sci I | 4 |
| Academic Inquiry Seminar, Breadth, or Elective course a | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Credit Hours | 16 | |
| Spring | ||
| MATH 122 | Calculus for Science and Engineering II or Calculus II or Math and Calculus Applications for Life, Managerial, and Social Sci II | 4 |
| CSDS 233 | Introduction to Data Structures | 4 |
| Academic Inquiry Seminar, Breadth, or Elective course | 3 | |
| Open elective | 3 | |
| Credit Hours | 14 | |
| Second Year | ||
| Fall | ||
| CSDS 281 | Logic Design and Computer Organization | 4 |
| Breadth, or Elective course a | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Credit Hours | 16 | |
| Spring | ||
| CSDS 302 | Discrete Mathematics | 3 |
| Breadth, or Elective course a | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Credit Hours | 15 | |
| Third Year | ||
| Fall | ||
| CSDS 310 | Algorithms | 3 |
| Computer science breadth course | 3 | |
| Breadth, or Elective course a | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Credit Hours | 15 | |
| Spring | ||
| Computer science breadth course | 3 | |
| Computer science breadth course | 3 | |
| Technical Elective | 3 | |
| Breadth, or Elective course a | 3 | |
| Open elective | 3 | |
| Credit Hours | 15 | |
| Fourth Year | ||
| Fall | ||
| Computer science breadth course | 3 | |
| Breadth, or Elective course a | 3 | |
| Technical Elective | 3 | |
| Open elective | 3 | |
| Open elective | 3 | |
| Credit Hours | 15 | |
| Spring | ||
| CSDS 395 | Senior Project in Computer Science | 4 |
| Breadth, or Elective course a | 3 | |
| Technical Elective | 3 | |
| Open elective | 4 | |
| Credit Hours | 14 | |
| Total Credit Hours | 120 | |