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 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 |