Upper Division Electives

NOTE: Upper division major electives must be approved by a faculty member. Submit a Major Elective Approval form to the undergraduate advisor when completed.

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. View the Major Elective slide show, and see a recording of the Spring 2020 Major Elective information session here: https://youtu.be/xQYFv54YBK4

CS students must take 28 units of upper division major field electives. At least 8 units of these electives must be Computer Science courses. The required courses in the upper division major do not count towards these electives. All upper division elective courses must be taken for a letter grade.

Communication Networks

CourseTitle
CMPSC 176AIntroduction to Computer Communication Networks
CMPSC 176BNetwork Computing
CMPSC 176CAdvanced Topics in Internet Computing

Software Systems

CourseTitle
CMPSC 160

Translation of Programming Languages

CMPSC 162

Programming Languages

CMPSC 171 / ECE 151Distributed Systems
CMPSC 172Software Engineering - Currently Dormant
CMPSC 174AFundamentals of Database Systems
CMPSC 174BDesign and Implementation Techniques of Database Systems 
CMPSC 180Computer Graphics

Computer Security

CourseTitle
CMPSC 177Computer Security
CMPSC 178Introduction to Cryptography

Artificial Intelligence

CourseTitle
CMPSC 165AArtificial Intelligence
CMPSC 165BMachine Learning
CMPSC/ECE 181BIntroduction to Computer Vision

Vision and Graphics

CourseTitle
CMPSC 180Computer Graphics
CMPSC/ECE 181BIntroduction to Computer Vision
CMPSC 184Mobile Application Development
ECE 178Introduction to Digital Image and Video Processing
ECE 160Multimedia Computing

Bioinformatics

CourseTitle
CMPSC 167Bioinformatics - Currently Dormant

Interactivity

CourseTitle
CMPSC 180Computer Graphics
CMPSC/ECE 181BIntroduction to Computer Vision
CMPSC 185Human-Computer Interaction
CMPSC 182 / ECE 160Multimedia Computing

Undergraduate Projects, Special Topics, and Research

CourseTitle
CMPSC 189A/BSenior Computer Systems Project (Capstone)
CMPSC 190AA-ZZSpecial Topics in Computer Science
CMPSC 192Projects 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 196Undergraduate 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

CourseTitle
  
CMPSC / ECE 153AHardware/Software Interface
ECE 153BSensor and Peripheral Interface Design

Signal Processing

CourseTitle
ECE 130A / B /CSignal Analysis and Processing

Scientific Computing

CourseTitle
CMPSC 111 / 140Foundation 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 / BLinear Algebra
MATH 119A / BODEs
MATH 124A /BPDEs, Fourier Series and Numerical Methods

PSTAT and Mathematics

CourseTitle
PSTAT 122 / 130Probability and Statistics
PSTAT 160A / BApplied Stochastic Processes