Bachelor of Science
The Department of Computer Science offers students in the College of Engineering a Bachelor of Science degree.
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 MUST be taken for letter grades. Pre-requisites are strictly enforced for all CS courses.
You can obtain a detailed list of GEs from the College of Engineering Undergraduate Office via email at firstname.lastname@example.org. Please refer all GE-related questions to the College advisors.
All students must achieve a grade of C or above in CMPSC 16, 24, 32, and 40 to take any course for which any of these courses are a prerequisite.
|Math 3A, 3B||8||Calculus with Applications, Courses 1-2|
|Math 4A, 4B||8||Linear Algebra with 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||5||Foundations of Computer Science|
|CMPSC 64||4||Computer Organization and Logic Design|
Probability and Statistics
Note: Students with no previous programming background should take CMPSC 8 before taking CMPSC 16. The AP Computer Science A Exam with a score of 4 or 5 will qualify students to start with CMPSC 16.
|PHYS 1, 2, 3 and 3L||12||Basic Physics (with 3L lab)|
Note: AP Physics does not test you out of this series.
8 units required; The science electives must be selected from the following set of approved courses and taken for a LETTER GRADE.
Intro Biological Anthropology
|Advanced Placement Biology Exam (score of 3 or higher will credit you with 8 science elective units)|
|ASTRO 2||History of the Universe|
|CHEM 1A + CHEM 1AL||General Chemistry and Laboratory|
|CHEM 1B + CHEM 1BL||General Chemistry and Laboratory|
|CHEM 1C + CHEM 1CL||General Chemistry and Laboratory|
|EARTH 2||Principles of Physical Geology|
|EARTH 4 or EARTH 4 W||Introduction to Oceanography|
|EARTH 6||Mountains, Boots, and Backpacks|
|EARTH 8||Africa: Climate & Human Evolution|
|EARTH 9||Giant Earthquakes|
|EARTH 10||Antarctica: The Last Place on Earth|
|EARTH 20 or Earth W 20||Geological Catastrophes|
|EARTH 30||The History of Life|
|EARTH 111||Principles of Paleontology|
|EARTH 123||The Solar System|
|EARTH 130||Global Warming - Science and Society|
|EEMB 21||General Botany|
|EEMB 22||Concepts & Controversies in Bio Sciences|
|EEMB 40||Ecology of Infectious Disease|
|EEMB 50||Biology of Non-Infectious Disease|
|ENV S 2||Intro to Environmental Science|
|GEOG 3||Oceans & Atmosphere|
|GEOG 4||Land, Water & Life|
|GEOG 8||Intro to Global Warming|
|GEOG 12 or GEOG W 12||Maps & Spatial Reasoning|
|GEOG 115A||Remote Sensing of the Environment 1|
|GEOG 115B||Remote Sensing of the Environment 2|
|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|
|MCDB 20||Concepts of Biology|
|MCDB 21||The Immune System and Aids|
|MCDB 23||Biology of Cancer|
|MCDB 26||Contemporary Nutrition|
|MCDB 29||Fundamentals of Biomedical Research|
|PHYS 4 + PHYS 4L||Basic Physics and Laboratory|
|PHYS 5 + PHYS 5L||Basic Physics and Laboratory|
|PSY 108||Intro to Cognitive Psychology|
|CMPSC 111 or 140||4||Intro 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|
|CMPSC 148 or 156 or 172||4||Computer Science Project or Advanced Applications Programming or Software Engineering|
|CMPSC 154||4||Computer Architecture|
|CMPSC 160 or 162||4||Translation of Programming Languages or Programming Languages|
|CMPSC 170||4||Operating Systems|
|PSTAT 120B||4||Probability and Statistics|
|ENGR 101||3||Ethics in Engineering|
NOTE: As of Winter 2022, students must attend a department faculty advising event in order to complete the requirement for "major elective approval." We no longer require a student to submit a"major elective approval" form.
As a graduation requirement, all Computer Science majors must receive faculty advising by attending a department faculty advising event. The best time for students to receive faculty advising regarding a range of topics such as research, internships, and elective courses is in Sophomore year (typically your second year). Students that participate in and attend a department faculty advising event will have their "Major Elective Approval" requirement marked as complete by a Computer Science staff advisor. As of Winter 2022, students do not need to complete or submit an approval form if they attend a department faculty advising event.
The department usually hosts a faculty advising event every quarter: in Fall and Winter quarters students can meet one-on-one with faculty at the Speed Advising event, and in Spring quarter students can learn from faculty about the CS courses that are elective options for the major at the Major Electives Info Session event (view the Major Elective slide show and see a recording of the Spring 2022 Major Elective information session [use your UCSB NetID to login and view]).
Depending on the GEAR major year, CS students must take either 28 units (GEAR years 2018-19, 2019-20) or 32 units (GEAR years 2020-21 and 2021-22) 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.