The second major provides an opportunity to combine computer science with another degree program. A second major in computer science can expand a student's career options and enable interdisciplinary study in areas such as cognitive science, computational biology, chemistry, physics, philosophy and linguistics. The second major is also well suited for students planning careers in medicine, law, business, architecture and fine arts. The requirements are as follows. There are no additional distribution or unit requirements for the second major.

Computer Science Core Requirements* (21 units)

CSE 1301Introduction to Computer Science3
CSE 1302Introduction to Computer Engineering3
CSE 2400Logic and Discrete Mathematics3
or MATH 3010 Foundations for Higher Mathematics
CSE 2407Data Structures and Algorithms3
CSE 3302Object-Oriented Software Development Laboratory3
CSE 3407Analysis of Algorithms3
CSE 3601Introduction to Systems Software3
Total Units21
*

Each of these core courses must be passed with a grade of C– or better.

Systems Requirement (3 units)

Students choose one of the following**: 

CSE 4202Operating Systems Organization3
CSE 4205Programming Systems and Languages3
CSE 4301Translation of Computer Languages3
CSE 4303Introduction to Computer Security3
CSE 4304Reverse Engineering and Malware Analysis3
CSE 4703Introduction to Computer Networks3
**

The selected course must be passed with a grade of C– or better. 

Methods Requirement (3 units)

Students choose one of the following***: 

CSE 2506Introduction to Human-Centered Design3
CSE 4101AI and Society3
CSE 4102Introduction to Artificial Intelligence3
CSE 4106Data Science for Complex Networks3
CSE 4107Introduction to Machine Learning ****3
or ESE 4170 Introduction to Machine Learning and Pattern Classification
CSE 4402Introduction to Cryptography3
CSE 4507Introduction to Visualization3
CSE 4608Introduction to Quantum Computing3
***

The selected course must be passed with a grade of C– or better. 

****

ESE 4170 Introduction to Machine Learning and Pattern Classification would not count toward the required two CSE courses at the 4000+ level and would be counted as an out-of-department course.

Computer Science Technical Elective Requirements

Students must complete 15 additional units (five courses) of CSE Technical Electives, which can come from any CSE classroom course including Systems and Methods Courses.

Overall Degree Restrictions

Up to 6 units total can come from a combination of approved CSE Independent Study (CSE 4001 Independent StudyCSE 4970 Senior Project ICSE 4971 Senior Project IICSE 4975 Undergraduate Honors Thesis) or approved courses from other departments (e.g., ESE 4170 Introduction to Machine Learning and Pattern Classification). Courses taken in other departments must have significant technical computing content, including those outside of the McKelvey School of Engineering. Students must complete the Elective Request form to request review of non-CSE courses. Students with interests in a particular area of computing should refer to the technical elective course sequences for suggestions on which courses are relevant to that area.

At least two courses must be CSE classroom courses at the 4000 level or higher. 

All courses must be taken for a grade. Core, Systems, and Methods requirements require a C– or better. All other courses require a passing grade.

Math Requirements

MATH 1510Calculus I3
MATH 1520Calculus II3
MATH 3300 Matrix Algebra or ESE 3180 Engineering Mathematics A3
ESE 3260 Probability and Statistics for Engineering or SDS 3020 Elementary to Intermediate Statistics and Data Analysis or SDS 5212 Statistics for Data Science I or DAT 120 Managerial Statistics I + DAT 121 Managerial Statistics II3
Total Units12

Upon completing a course in the calculus sequence (MATH 1510 Calculus I-MATH 1520 Calculus II-MATH 2130 Calculus III) with a grade of C+ or better, the student may apply to receive credit for the preceding courses in the calculus sequence by following the Department of Mathematics' back credit policy.

Contact Info