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
To educate and train students in the fundamentals of computer science and mathematics
To educate students with an understanding of real-world computing needs
To train students to work effectively, professionally and ethically in computing-related professions
Learning Outcomes
As preparation for achieving the above educationalobjectives, 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 ofcomputing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet agiven 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 incomputing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged inactivities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals toproduce computing-based solutions.
Undergraduate Policies
For undergraduate policies and procedures, please review the Undergraduate Academics section of the General Bulletin.
Accelerated 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 thegeneral requirements for bachelor's degreesand theUnified General Education Requirements.Students completing this program as asecondary majorwhile completing another undergraduate degree program do not need to satisfy theschool-specific requirementsassociated 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 6 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 | Hours |
---|---|---|
Mathematics Requirement: | ||
Choose two of the following: | 8 | |
MATH121 | Calculus for Science and Engineering I | |
orMATH125 | Math and Calculus Applications for Life, Managerial, and Social Sci I | |
MATH122 | Calculus for Science and Engineering II | |
orMATH124 | Calculus II | |
orMATH126 | Math and Calculus Applications for Life, Managerial, and Social Sci II | |
Core Requirement: | 21 | |
CSDS132 | Programming in Java | |
CSDS233 | Introduction to Data Structures | |
CSDS281 | Logic Design and Computer Organization | |
CSDS302 | Discrete Mathematics | |
CSDS310 | Algorithms | |
CSDS395 | Senior Project in Computer Science | |
Computer Science Breadth Courses: | ||
Breadth Area 1: | 3 | |
Choose one of the following: | ||
CSDS341 | Introduction to Database Systems | |
CSDS356 | Data Privacy | |
CSDS390 | Advanced Game Development Project | |
CSDS393 | Software Engineering | |
Breadth Area 2: | 3-4 | |
Choose one of the following: | ||
CSDS312 | Introduction to Data Science Systems | |
CSDS314 | Computer Architecture | |
CSDS325 | Computer Networks I | |
CSDS338 | Intro to Operating Systems and Concurrent Programming | |
Breadth Area 3: | 3-4 | |
Choose one of the following: | ||
CSDS337 | Compiler Design | |
CSDS343 | Theoretical Computer Science | |
CSDS344 | Computer Security | |
CSDS345 | Programming Language Concepts | |
Breadth Area 4: | 3 | |
Choose one of the following: | ||
CSDS313 | Introduction to Data Analysis | |
CSDS335 | Data Mining for Big Data | |
CSDS340 | Introduction to Machine Learning | |
CSDS391 | Introduction to Artificial Intelligence | |
Technical Electives | 8-9 | |
Total Hours | 50-52 |
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 | Hours |
---|---|---|
Any CSDS course | 3-4 | |
ECSE301 | Digital Logic Laboratory | 2 |
ECSE303 | Embedded Systems Design and Laboratory | 3 |
ECSE315 | Digital Systems Design | 4 |
ECSE317 | Computer Design - FPGAs | 3 |
ECSE419 | Computer System Architecture | 3 |
ECSE484 | Computational Intelligence I: Basic Principles | 3 |
ECSE485 | VLSI Systems | 3 |
ECSE488 | Embedded Systems Design | 3 |
MATH201 | Introduction to Linear Algebra for Applications | 3 |
orMATH307 | Linear Algebra | |
MATH330 | Introduction to Scientific Computing | 3 |
MATH380 | Introduction to Probability | 3 |
MATH382 | High Dimensional Probability | 3 |
MATH 406/PHIL306 | Mathematical Logic and Model Theory | 3 |
MATH408 | Introduction to Cryptology | 3 |
MATH431 | Introduction to Numerical Analysis I | 3 |
MATH444 | Mathematics of Data Mining and Pattern Recognition | 3 |
PHIL393 | Ethics of Artificial Intelligence and Emerging Technology | 3 |
Sample Plan of Study
First Year | ||
---|---|---|
Fall | Hours | |
CSDS132 | Programming in Java | 3 |
MATH121 or MATH125 | 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 | |
Hours | 16 | |
Spring | ||
MATH122 or MATH124 | Calculus for Science and Engineering II or Calculus II | 4 |
CSDS233 | Introduction to Data Structures | 4 |
Academic Inquiry Seminar, Breadth, or Elective course | 3 | |
Open elective | 3 | |
Hours | 14 | |
Second Year | ||
Fall | ||
CSDS281 | Logic Design and Computer Organization | 4 |
Breadth, or Elective course a | 3 | |
Open elective | 3 | |
Open elective | 3 | |
Open elective | 3 | |
Hours | 16 | |
Spring | ||
CSDS302 | Discrete Mathematics | 3 |
Breadth, or Elective course a | 3 | |
Open elective | 3 | |
Open elective | 3 | |
Open elective | 3 | |
Hours | 15 | |
Third Year | ||
Fall | ||
CSDS310 | Algorithms | 3 |
Computer science breadth course | 3 | |
Breadth, or Elective course a | 3 | |
Open elective | 3 | |
Open elective | 3 | |
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 | |
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 | |
Hours | 15 | |
Spring | ||
CSDS395 | Senior Project in Computer Science | 4 |
Breadth, or Elective course a | 3 | |
Technical Elective | 3 | |
Open elective | 4 | |
Hours | 14 | |
Total Hours | 120 |
- a
Unified General Education Requirement.