Upper Division Electives
Upper-division Computer Science majors must choose a series of upper-division major elective courses to have an emphasis on a subject or subjects in their major studies. You may change your selection at any time by submitting a new Major Elective Approval form to the Computer Science Department.
B.S. students must take 20 units of electives and B.A. students must take 11 units of electives from the courses listed here. At least 8 units of these electives must be Computer Science courses. The required courses in the upper division major generally do not count towards these electives. All upper division elective courses must be taken for a letter grade.
Communication Networks
| Course | Title |
|---|---|
| CMPSC 176A | Introduction to Computer Communication Networks |
| CMPSC 176B | Network Computing |
| CMPSC 176C | Advanced Topics in Internet Computing |
Software Systems
| Course | Title |
|---|---|
| CMPSC 160 | Translation of Programming Languages (Elective for BA, required for BS) |
| CMPSC 171 / ECE 151 | Distributed Systems |
| CMPSC 172 | Software Engineering |
| CMPSC 174A | Fundamentals of Database Systems |
| CMPSC 174B | Design and Implementation Techniques of Database Systems |
| CMPSC 180 | Computer Graphics |
Computer Security
| Course | Title |
|---|---|
| CMPSC 177 | Computer Security |
| CMPSC 178 | Introduction to Cryptography |
Theory and Logic
| Course | Title |
|---|---|
| CMPSC 186 | Theory of Computation |
Artificial Intelligence
| Course | Title |
|---|---|
| CMPSC 165A | Artificial Intelligence |
| CMPSC 165B | Machine Learning |
| CMPSC/ECE 181B | Introduction to Computer Vision |
Vision and Graphics
| Course | Title |
|---|---|
| CMPSC 180 | Computer Graphics |
| CMPSC/ECE 181B | Introduction to Computer Vision |
| ECE 178 | Introduction to Digital Image and Video Processing |
| CMPSC 182 / ECE 160 | Multimedia Computing |
Bioinformatics
| Course | Title |
|---|---|
| CMPSC 167 | Bioinformatics |
Interactivity
| Course | Title |
|---|---|
| CMPSC 180 | Computer Graphics |
| CMPSC/ECE 181B | Introduction to Computer Vision |
| CMPSC 185 | Human-Computer Interaction |
| CMPSC 182 / ECE 160 | Multimedia Computing |
Undergraduate Projects, Special Topics, and Research
| Course | Title |
|---|---|
| CMPSC 172/189A/B | Senior Computer Systems Project |
| CMPSC 190AA-ZZ | Special Topics in Computer Science |
| CMPSC 192 | Projects in Computer Science (Only available to students with GPA =3.0, Four units maximum from CMPSC 192 and CMPSC 196 combined may be counted as upper division electives |
| CMPSC 196 | Undergraduate Research (Only available to students with GPA = 3.0, Four units maximum from CMPSC 192 and CMPSC 196 combined may be counted as upper division electives |
Hardware
| Course | Title |
|---|---|
| ECE 152B | Digital Design Methodologies |
| CMPSC / ECE 153A | Hardware/Software Interface |
| ECE 153B | Sensor and Peripheral Interface Design |
Signal Processing
| Course | Title |
|---|---|
| ECE 130A / B /C | Signal Analysis and Processing |
Scientific Computing
| Course | Title |
|---|---|
| CMPSC 111 / 140 | Foundation of Scientific Computing (You must take either of these courses to satisfy your upper division major requirements, so to receive 4 units of credit toward your electives, you must take both courses.) |
| MATH 108A / B | Linear Algebra |
| MATH 119A / B | ODEs |
| MATH 124A /B | PDEs, Fourier Series and Numerical Methods |
PSTAT and Mathematics
| Course | Title |
|---|---|
| MATH 132A / B | Introduction to Operations Research |
| PSTAT 122 / 130 | Probability and Statistics |
