Updated August 2017
The computer science major gives students the knowledge and skills they need to be leaders in today’s computing world. The lower division courses provide a strong foundation in algorithmic problem solving and data representation, computer systems fundamentals, formal mathematical reasoning, and programming in various languages (including Java and C). As they reach the upper division, students take core courses to gain a deeper understanding of important computer science subdisciplines including AI/machine learning, algorithms and theory, computer architecture, computer security, networks and operating systems, databases and programming languages, and software engineering. Elective courses allow students to explore additional subdisciplines such as human-computer interaction and high-performance computing, to go deeper into the areas covered by the core classes, and to connect computer science concepts to other disciplines.
Many graduates in this degree program go on to graduate school or choose careers that involve large-scale software engineering including web-based programming, machine automation, UI/UX design, data analytics, artificial intelligence, networking, and security.
Our Long-Term Plans are designed for students with no advanced placement credit. Some students will begin with CSE 3, CSE 8A, or CSE 11, therefore, it is imperative that each student draw up a suitable schedule based on her/his specific circumstances. Please read CSE Course Placement Advice to figure out which courses to take first. To assist you with planning your schedule, consult our Courses page.
For Fall 2015 - Summer 2017 requirements: B.S. Computer Science, 2015-Summer 2017
For Fall 2010 - Summer 2014 requirements: B.S. Computer Science, 2010 - Summer 2014
To switch to Fall 217 requirements, please read Continuing Student FAQ's
Tracking Your Progress
- B.S. Computer Science Checklist (Fall 2017)
- B.S. Computer Science Sample Long Term Plan (Fall 2017)
- Long-Term Plan Worksheet
- Four Year Plans (by College)
- B.S. Computer Science change of major request for Continuing Students
BS Computer Science Program
The lower-division course requirements are designed to provide a strong foundation in mathematics, physics, programming methodology and skills, and computer organization. Upper-division core courses deal with the theory and design of algorithms, hardware, and software. Electives allow students to gain additional breadth and/or depth in computer science and engineering.
Recommended high school preparation includes mathematics courses so that students can take freshman calculus in their first quarter. Courses in high school physics and computer programming are helpful preparation but are not required.
The BS in computer science requires a total of 124 units for the BS computer science program (not including the general-education requirements).
1. Lower-Division Requirements
Students are expected to complete the following 52 units by the end of their sophomore year.
- Computer Science and Engineering: CSE 8B or CSE 11, CSE 12, CSE 15L, CSE 20 or Math 15A, CSE 21 or Math 15B, and CSE 30 (22 units)
- Computer Science and Engineering: minimum of two units chosen from CSE 3, CSE 4GS, CSE 5A, CSE 6GS, CSE 7, CSE 8A, MAE 8, MAE 9, COGS 10, COGS 18, ECE 15, NANO 15, CENG 15, CSE 80, CSE 86, CSE 90, CSE 91, CSE 95, CSE 99, or any CSE upper-division course not used to fulfill other degree requirements. Students who choose to take a 4 unit course for this requirement will be required to complete 126 units for the BS computer science program (not including the general-education requirements)
- Mathematics: Math 20A, Math 20B, Math 20C, and Math 18 (16 units)
- General Science: Two courses chosen from Phys 2A, Phys 2B, Phys 4A, Phys 4B, Chem 6A or Chem 6AH, Chem 6B or Chem 6BH, BILD 1, BILD 2, BILD 3, and BICD 100 (8 units)
- Probability and Statistics: Math 183 or ECE 109 or Econ 120A or CSE 103 (4 units)
2. Upper-Division Requirements
Students must complete 72 upper-division units: 44 units of core courses and 28 units of elective courses.
- Core Courses:
- Data Structures and Programming: CSE 100
- Algorithms/Theory: CSE 101 and CSE 105
- Software Engineering: CSE 110
- Hardware/Architecture: CSE 140 and CSE 141, along with CSE 140L and CSE141L
- Systems/Networks: CSE 120 or CSE 123 or CSE 124
- PL/Databases: CSE 130 or CSE 132A
- Security/Cryptography: CSE 107 or CSE 127
- Learning/Vision/Graphics: CSE 150 or CSE 151 or CSE 152 or CSE 158 or CSE 167
Students are expected to complete the majority of these courses by the end of their junior year.
- Electives: seven courses (28 units) subject to the following constraints:
- A minimum of 20 units of CSE upper-division or graduate courses, which may include courses listed under “Requirements” but not used by the student to satisfy the requirement area.
- A maximum of twelve units of P/NP courses may count, chosen from: a maximum of eight units of CSE 198 or 199 or 199H; a maximum of four units of CSE 197.
- A maximum of two courses (8 units) of non-CSE courses, referred to as Technical Electives on the student’s degree audit. An approved list of technical electives may be found on the CSE website. Students may petition for other courses not on the list.
Notes for Selecting and Scheduling Classes for BS Computer Science
1. All courses must be taken for a letter grade, except those offered P/NP only (CSE 99, 197, 198, and 199).
2. Students should read “CSE Course Placement Advice” for assistance in determining which CSE course to take first, CSE 8A, CSE 8B or CSE 11.
3. Computer Science Advanced Placement Credit: A Exam (Java Programming), two units. Score of 4 exempts CSE 8A, and students should take CSE 11.
4. CSE 8B or CSE 11 may be taken concurrently with CSE 20/Math 15A.
5. CSE 15L must be taken concurrently with CSE 12.
6. CSE 140 must be taken concurrently with CSE 140L.
7. CSE 141 must be taken concurrently with CSE 141L.
8. Once a graduate course is used for an undergraduate degree, that course may not be reused for a graduate degree.
9. CSE 103 is only offered in the Fall. CS26 majors may also take ECON 120A, MATH 183, or ECE 109 to satisfy the statistics requirement.
- All major requirements and upper-division electives, except CSE 91, CSE 197, CSE 198 or CSE 199, must be taken for a letter grade.
- To graduate, a minimum grade-point average of 2.0 will be required in upper-division courses in the major, including upper-division electives.
- Students must satisfy the general education course requirements of their college and university requirements.
CSE Academic Advising