BS Computer Science
This page updated February 27, 2014.
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.
The program encompasses the study of hardware design, data storage, computer architecture, assembly languages, and the design of computers for engineering, information retrieval, and scientific research.
Many graduates in this degree program go on to graduate school or choose careers that involve the design of computer hardware and software systems in diverse areas such as: computer graphics, computer-aided design, multimedia systems, databases, parallel computation, distributed computation, artificial intelligence, optical computing, very-large-scale-integration design, and fabrication.
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 not required.
The BS in computer science degree requires a total of 128 units for the BS computer science program (not including the general-education requirements).
Our Long-Term Plans are designed for students with no advanced placement credit. Some students will begin with CSE 3, CSE 8A/L 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 coures to take first. To assist you with planning your schedule, consult our Courses page.
*Effective Fall 2014, CSE 8A + CSE 8AL will combine to CSE 8A
**Effective Fall 2014, CSE 91 will be replaced by the lower division elective requirement (see below). Students starting with CSE 8A, can use this course to satisfy the lower division elective.
CSE 8B (if you completed CSE 8A/8AL) or
CSE 12/15L (if you completed CSE 8B) or
CSE 30 (if you completed CSE 12/15L)
CSE 30 (if you completed CSE 12/15L)
CSE 100 or Math 176
Students are expected to complete the following 52 units by the end of their sophomore year.
a) 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)
b) Computer Science and Engineering Lower Division Elective: Minimum of two units chosen from
CSE 3, CSE4GS, CSE 5A, CSE 6GS, CSE 7, CSE 8A, CSE 80, CSE 86, CSE 90, CSE 91, CSE 99, or any
CSE upper-division course not used to fulfill other degree requirements *Effective Fall 2014
c) Mathematics: Math 20A, Math 20B, Math 20C, and Math 20F (16 units)
d) General Science Phys 2A and Phys 2B, or Phys 4A and Phys 4C, or Chem 6A and Chem 6B, or
Chem 6AH and Chem 6BH, or BILD 1 and BILD 2, or BILD 3 and BICD 100 (8 units).
e) Probability and Statistics: Math 183 or CSE 103 (4 units).
Students must complete 76 upper-division units: 40 units of Core courses and 36 units of Cluster and Elective courses.
a) Core Courses: CSE 100 or Math 176, CSE 101 or Math 188, CSE 105 or Math 166, CSE 110, CSE 120,
130, 131, 140, 140L, 141 and 141L (40 units). Students are expected to complete the majority of these
courses by the end of their junior year.
b) Cluster Courses: Three to four courses (12-16 units) must be completed. Clusters are groups of
complementary courses that taken together provide depth in a particular area. Students may petition
to the CSE Undergraduate Committe to design their own clusters.
c) Electives: Five to six courses (20-24 units), depending on the Cluster.
· A minimum of 12-16 units of CSE upper-division or graduate courses, depending on the Cluster.
· A maximum of 8 units of CSE 198, CSE 199, or CSE 199H may be used.
· A maximum of 4 units of CSE 197 may be used.
· CSE 195 may not be used.
· A maximum of two courses (8 units) of non-CSE courses, referred to as Technical Electives on the student’s degree audit. Please see the approved list of Technical Electives. Students may petition for other courses not on the list.
Notes for Selecting and Scheduling Classes
1. All courses must be taken for a letter grade, except those offered P/NP only.
2. See the CSE website for a sample four-year plan of study.
3. Students should read “CSE Course Placement Advice” for assistance in determining which CSE course to take
first, CSE 8A, CSE 8B or CSE 11.
4. Computer Science Advanced Placement Credit: A Exam (Java Programming), two units. Score of 4 exempts
CSE 8A, and students should take CSE 11.
5. CSE 8B or CSE 11 may be taken concurrently with CSE 20/Math 15A. Please obtain department approval for
enrollment permission for CSE 20/Math 15A at firstname.lastname@example.org.
6. CSE 15L must be taken concurrently with CSE 12.
7. CSE 140 must be taken concurrently with CSE 140L.
8. CSE 141 must be taken concurrently with CSE 141L.
9. Once a graduate course is used for an undergraduate degree, that course may not be reused for a graduate
- 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 miniumum grade-point average of 2.0 will be required in upper-division coruses in the major, including upper-division electives.
- Students must satisfy the general education course requirements of their college and university requirements.