The aim of this program is to expose students to a rigorous curriculum in computer science while maintaining sufficient flexibility so that students can take courses outside computer science, pursue a minor in another discipline, or complete a double major. Every student must complete a minimum of 16 courses—eight lower-division and eight upper-division. Out of these, the eight lower-division courses and the first upper-division course are required preparatory courses for every student. Once these preparatory courses are completed, students tailor their own program by choosing seven upper-division elective courses.
Lower-Division Courses
Computer Science and Engineering
One of the following courses
CSE 13S | Computer Systems and C Programming | 7 |
ECE 13 | Computer Systems and C Programming | 7 |
Plus all of the following
CSE 12 | Computer Systems and Assembly Language and Lab | 7 |
CSE 16 | Applied Discrete Mathematics | 5 |
CSE 20 | Beginning Programming in Python | 5 |
CSE 30 | Programming Abstractions: Python | 7 |
Students with no prior programming will take CSE 20 before CSE 30, and CSE 12. Students with a prior programming course, AP credit, or clearing the “Test-out” bar will start with CSE 30, and CSE 12.
Plus one of the following options
Plus one of the following
AM 10 | Mathematical Methods for Engineers I | 5 |
MATH 21 | Linear Algebra | 5 |
Upper-Division Courses
The following course
CSE 101 | Introduction to Data Structures and Algorithms | 5 |
Plus three of the following breadth courses
CSE 102 | Introduction to Analysis of Algorithms | 5 |
CSE 103 | Computational Models | 5 |
CSE 110A | Fundamentals of Compiler Design I | 5 |
CSE 112 | Comparative Programming Languages | 5 |
CSE 115A | Introduction to Software Engineering | 5 |
CSE 120 | Computer Architecture | 5 |
CSE 130 | Principles of Computer Systems Design | 5 |
CSE 132 | Computer Security | 5 |
CSE 138 | Distributed Systems | 5 |
CSE 140 | Artificial Intelligence | 5 |
CSE 142 | Machine Learning | 5 |
CSE 143 | Introduction to Natural Language Processing | 5 |
CSE 144 | Applied Machine Learning | 5 |
CSE 160 | Introduction to Computer Graphics | 5 |
CSE 160L | Introduction to Computer Graphics Laboratory | 2 |
CSE 180 | Database Systems I | 5 |
Electives
Three courses from the list of B.A. electives below, including at least one upper-division computer science and engineering course(s) numbered below 170, or numbered between 180 and 189, or CSE 195.
For other courses, computational media, and Applied Mathematics and Statistics courses are strongly recommended.
List of BA electives
- Any 5-credit upper-division course offered by the Baskin School of Engineering, except for the DC courses CSE 115A and CSE 185E/CSE 185S.
- Or any course from the following list:
Lecture/lab combinations count as one course.
Additional courses may be accepted by petition.
Disciplinary Communication (DC) Requirement
Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) requirement.
The DC requirement for the computer science B.A. is satisfied by completing one of the following additional courses:
The course used for the DC requirement cannot also be used as an upper-division elective.
Comprehensive Requirement
In addition to the above B.A. requirements, students in the computer science majors must satisfy one of the following two exit requirements: pass one of the capstone courses (see Capstone Courses below); or successfully complete a senior thesis. A passed capstone course also counts toward satisfying the minimum number of upper-division electives requirement.
Capstone Courses
Students may choose from one of the following capstone courses to satisfy their exit requirement (lecture/lab combinations count as one course.):
CSE 110B | Fundamentals of Compiler Design II | 5 |
CSE 115C | Software Design Project II | 5 |
CSE 115D | Software Design Project - Accelerated | 5 |
CSE 121 | Embedded System Design | 7 |
CSE 121L | Microprocessor System Design Laboratory | 2 |
CSE 134 | Embedded Operating Systems | 5 |
CSE 138 | Distributed Systems | 5 |
CSE 140 | Artificial Intelligence | 5 |
CSE 143 | Introduction to Natural Language Processing | 5 |
CSE 144 | Applied Machine Learning | 5 |
CSE 156 | Network Programming | 5 |
CSE 156L | Network Programming Laboratory | 2 |
CSE 157 | Internet of Things | 7 |
CSE 160 | Introduction to Computer Graphics | 5 |
CSE 160L | Introduction to Computer Graphics Laboratory | 2 |
CSE 161 | Introduction to Data Visualization | 5 |
CSE 161L | Data Visualization Laboratory | 2 |
CSE 162 | Advanced Computer Graphics and Animation | 5 |
CSE 162L | Advanced Computer Graphics and Animation Laboratory | 2 |
CSE 163 | Data Programming for Visualization | 5 |
CSE 168 | Introduction to Augmented Reality and Virtual Reality | 7 |
CSE 181 | Database Systems II | 5 |
CSE 183 | Web Applications | 5 |
CSE 184 | Data Wrangling and Web Scraping | 5 |
CMPM 172 | Game Design Studio III | 7 |
ECE 118 | Introduction to Mechatronics | 10 |
Students taking one of the capstone courses will enroll normally. Students need to pass the capstone course to pass the exit requirement. No course may be attempted more than twice without prior approval from the chair of the department offering the course. Withdrawals count as an attempted class for this purpose.
Senior Thesis
The senior thesis consists of a self-contained project within the broad scope of computer science, but one that is not available in the regular course offerings. A student wishing to complete a senior thesis must successfully complete a minimum of 5 credits in CSE 195, Senior Thesis Research. The supervision of a senior thesis student is always at the discretion of the faculty member.
The student first submits a written thesis proposal and obtains approval of a faculty sponsor. Then the student submits a written draft and makes an oral presentation to a faculty examining committee. After receiving feedback from the examining committee, the student submits one or more additional drafts, until the final draft is approved by the examining committee. The total amount of writing shall be consistent with the campus Disciplinary Communication requirement. A passing grade in CSE 195 is earned when the final thesis is approved.
The following are three sample academic plans: (1) a four-year plan for the B.A. major for first-year students with programming experience; (2) an alternative first-year plan for students without programming experience; and (3) a two-year plan for the B.A. major for transfer students.
Students completing the courses in the planners will have satisfied the MF general education requirement.
Four-Year Plan for Students with Programming Experience
First-Year Plan for Students Without Programming Experience
Two-Year Degree Planner for Transfer Students
|
Fall |
Winter |
Spring |
1st (junior) |
CSE 12 |
CSE 101 |
Breadth list 1 |
AM 10 or MATH 21 |
|
|
2nd (senior)
|
Breadth list 2 |
Breadth list 3 |
DC elective |
Elective list 1 |
Elective list 2 |
Elective list 3
(capstone) |
|
|
|
Note: One elective must be drawn from the DC course list and one from the capstone course.
Curriculum charts for all BSOE majors are available at the department's Major Curriculum Charts page.