Computer Engineering Major

Suggested course plans:

FRESHMEN 2020 | 20192018 | 2017 | 2016 | 2015 | 2014 | 2013

TRANSFERS 2020 | 2019 | 2018 | 2017 | 2016 | 2015 | 2014 | 2013


For spring quarter 2020 only, please read this document carefully regarding the option to take major courses P/NP.

Students wishing to pursue the computer engineering curriculum may do so in either the ECE or CSE department. The set of required courses and allowed electives is the same in both departments; please note that the curriculum requires eighteen upper-division courses. The Computer Engineering Program requires a total of 136 units (not including the general-education requirements).

The Computer Engineering Program offers a strong emphasis on engineering mathematics and other basic engineering science as well as a firm grounding in computer science. Students should have sufficient background in high school mathematics so that they can take first-year calculus in their first quarter. Courses in high school physics and computer programming, although helpful, are not required for admission to the program.

Lower-Division Requirements
(total of sixty-eight units)

Mathematics (twenty units)

MATH 18 and 20A-B-C-D

Physics (twelve units)

PHYS 2A-B-C, or PHYS 4A-B-C. MATH 20A is a prerequisite for PHYS 2A. Students whose performance on the Department of Mathematics placement test permits them to start with MATH 20B or a higher course may take PHYS 2A in the fall quarter of the first year; all others will take PHYS 2A in the winter quarter of the first year. Students who receive high grades in both calculus and physics in high school may substitute the major’s sequence, PHYS 4A-B-C for PHYS 2A-B-C.

Computer Science (twenty-four units)

CSE 11 or 8B,* 12, 15L, CSE 20 or MATH 15A, CSE 21 or MATH 15B, CSE 30, and CSE 91 (CSE LD Elective)**.

*Students without any programming experience are advised to take CSE 8A, CSE 8AL, and then CSE 8B, CSE 8BL, instead of CSE 11. CSE 11 is a faster-paced version of CSE 8A and CSE 8B and requires experience in programming with a compiled language.

**The CSE LD Elective can be chosen from CSE 3, CSE 4GS, CSE 5A, CSE 6GS, CSE 8A, CSE 42, CSE 86, CSE 90, CSE 91, CSE 95, CSE 99, CSE 180, CSE 180R, MAE 8, MAE 9, COGS 9, COGS 10, COGS 18, ECE 5, 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.

Electrical Engineering (twelve units)

ECE 35, ECE 45, ECE 65

Upper-Division Requirements
(total of sixty-eight units)

  1. All BS computer engineering students are required to take CSE 100 or MATH 176, CSE 101 or MATH 188, CSE 110, CSE 120, 140, 140L, 141, 141L.
  2. In addition, all BS computer engineering students must fulfill the following upper-division ECE requirements:
    • Engineering Probability and Statistics: ECE 109. This course can be taken in the sophomore year.
    • Electronic Circuits and Systems: ECE 108. The department recommends that this course be taken in the junior year.
    • Linear Systems: ECE 101.
  3. Technical electives: All BS computer engineering students are required to take seven technical electives.
    • One technical elective must be either ECE 111 or ECE 118.
    • Of the remaining six technical electives, five must be ECE or CSE upper-division or graduate courses.
    • The remaining course can be any computer science and engineering or electrical engineering upper-division or graduate course, or any other course listed under the section titled non-CSE/ECE electives. Other restrictions in the selection of technical electives are also given in the section “Electives.”


Please note: Effective Fall 2016, CE majors can enroll in ECE 197 but the course cannot be used to fulfill any major requirements.