Bachelor of Science

The Department of Computer Science offers students a Bachelor of Science degree that is accredited by the Computing Accreditation Commission of ABET, This program introduces students to core concepts and cutting-edge topics in computer science. The program provides students with hands-on experience and a depth of understanding of computer theory, systems, and applications that prepares them for successful careers in computer science and to participate in the next-generation of technological advances.


Courses required for the major offered by the Department of Computer Science or by any other department must be taken for letter grades. Computer Science course prerequisite charts can be found here:

General Education

You can obtain a detailed list of GEs from the College of Engineering Undergraduate Office (Harold Frank Hall, room 1006).

Lower Division

All students must achieve a grade of C or above in CS16, CS24, CS32, and CS40 to take any course for which any of these classes is prerequisite. The computer science classes open to non-majors are CS8, CS16, CS24, and CS40.

Course Units Title
Math 3A, 3B 8 Calculus and its Applications, Courses 1-2
Math 4A, 4B 8 Linear Algebra and its Applications, Differential Equations
Math 6A 4 Vector Calculus
CMPSC 16 4 Problem Solving with Computers I
CMPSC 24 4 Problem Solving with Computers II
CMPSC 32 4 Object Oriented Design and Implementation
CMPSC 40 4 Foundations of Computer Science
CMPSC 48 4 Computer Science Project
CMPSC 56 4 Advanced Applications Programming
CMPSC 64 4 Computer Organization and Logic Design
PSTAT 120A 4 Probability and Statistics

Note: Students with no previous programming background should take CS 8 before taking CS 16. CS 8 is not included in the list of preparation for the major courses but may be counted as a free elective.

Science Courses (Lower Division)

Course Units Title
PHYS 1, 2, 3 and 3L 12 Basic Physics (with 3L lab)

The courses must be selected from the following set of approved courses

Course Title
MCDB 1A + 1AL Introductory Biology I and Laboratory
MCDB 1B and EEMB 2 plus either MCDB 1BL or EEMB 2L Introductory Biology II and Laboratory
CHEM 1A + CHEM 1AL General Chemistry and Laboratory
CHEM 1B + CHEM 1BL General Chemistry and Laboratory
CHEM 1C + CHEM 1CL General Chemistry and Laboratory
PHYS 4 Basic Physics
PHYS 4L Physics Laboratory
PHYS 5 Basic Physics
PHYS 5L Physics Laboratory
EARTH 2 General Geology: Physical
EARTH 4 or 4W Introduction to Oceanography
GEOG 115A Geographic Photo Interpretation
GEOG 115A Geographic Photo Interpretation
GEOG 115B + GEOG 115BL Geographic Remote Sensing Techniques and Laboratory

Upper Division

Course Units Title
CMPSC 111 or 140 4 Introduction to Computational Science or Parallel Scientific Computing
CMPSC 130A and 130B 8 Data Structures and Algorithms I and II
CMPSC 138 4 Automata and Formal Languages
ECE 152A 5 Digital Design Principles
CMPSC 154 4 Computer Architecture
CMPSC 160 4 Translation of Programming Languages
CMPSC 162 4 Programming Languages
CMPSC 170 4 Operating Systems
PSTAT 120B 4 Probability and Statistics

Ethics Requirement

Course Units Title
ENGR 101 3 Ethics in Engineering

Major Field Electives (Upper Division) (20 units) NOTE! Upper Division Major electives must be approved by a faculty member.

The list of major electives is available on the Upper Division Electives webpage.