Computer Science

University of California, Berkeley

There are two ways to study Computer Science (CS) at UC Berkeley:

  1. Be admitted to the Electrical Engineering & Computer Sciences (EECS) major in the College of Engineering (COE) as a first year or junior transfer. Admission to the COE, however, is extremely competitive. This option leads to a Bachelor of Science (BS) degree. This path is appropriate for people who want an engineering education.
  2. Be admitted to the Computer Science (CS) major in the College of Computing, Data Science, and Society (CDSS) as a first year or junior transfer. Admission to the CS major in the College of CDSS, however, is extremely competitive. This option leads to a Bachelor of Arts (BA) degree. This path is appropriate for people who are interested in a broader education in the sciences and arts.

There is no difference in the CS course content between the BS and BA programs. The difference is in what else you take: mainly engineering, or mainly humanities and social sciences. In particular, an interest in hardware suggests the EECS route.

Note: Beginning Fall 2024, students will no longer be able to apply to the Computer Science major in the College of Letters and Science on the UC Berkeley application. Going forward, students will need to apply to the Computer Science major in the College of CDSS.

Bachelor of Science (BS) in Computer Science

For information regarding the BS degree, please see the Electrical Engineering and Computer Sciences program information in this Guide.

Bachelor of Arts (BA) in Computer Science

This CS major is for students enrolled in the College of Computing, Data Science, and Society (CDSS). Berkeley emphasizes the science of computer science, which means much more than just computer programming. It includes the theory of computation, the design and analysis of algorithms, the architecture and logic design of computers, programming languages, compilers, operating systems, scientific computation, computer graphics, databases, artificial intelligence, and natural language processing. Our goal is to prepare students both for a possible research career and long-term technical leadership in industry. We must therefore look beyond today's technology and give students the primary ideas and the learning skills that will prepare them to teach themselves about tomorrow's technology.

Five-Year BS/MS Program

This program is geared toward students who would like to pursue an education beyond the BS/BA, allowing them to achieve greater breadth and/or depth of knowledge, and who would like to try their hand at research as well. For information, please see the Five-Year BS/MS Requirements tab on this page.

Honors Program

Computer Science majors with an overall GPA of 3.70 or above are eligible to apply to the EECS honors degree program.

Minor Program

A minor in Computer Science is available to all undergraduate students at Berkeley with a declared major, with the exception of EECS majors. For information regarding minor requirements, please see the Minor Requirements tab on this page.

Major Requirements (BA)

In addition to the University, campus, and college requirements, listed on the College Requirements tab, students must fulfill the below requirements specific to their major program.

General Guidelines

  1. All courses taken to fulfill the major requirements below must be 3 or more units and taken for a letter grade.
  2. All courses for the major must be technical in nature. Courses numbered 199, 198, 197, 196, 195, plus select 194, 191, 190, and various seminars do not count. If you are unsure, please check with the CS advisers ( cs-advising@cs.berkeley.edu ).
  3. Only one upper division course may be used to simultaneously fulfill requirements for a student's major and minor programs. No more than two upper division courses can overlap between two majors.
  4. A minimum grade point average (GPA) of 2.0 must be maintained in both upper and lower division courses used to fulfill the major requirements.

For information regarding residence requirements and unit requirements, please see the College Requirements tab.

Lower Division Prerequisites Course List
CodeTitleUnits
COMPSCI 61AThe Structure and Interpretation of Computer Programs4
COMPSCI 61BData Structures4
COMPSCI 70Discrete Mathematics and Probability Theory4

Lower Division Requirement

Course List
CodeTitleUnits
MATH 1ACalculus4
MATH 1BCalculus4
MATH 54Linear Algebra and Differential Equations 1 4
or EECS 16A Designing Information Devices and Systems I
or MATH 56 Linear Algebra
COMPSCI 61CGreat Ideas of Computer Architecture (Machine Structures)4

Upper Division Requirements

Course List
CodeTitleUnits
Select one design course from the following:
COMPSCI 152Computer Architecture and Engineering4
COMPSCI 160User Interface Design and Development4
COMPSCI 161Computer Security (effective Spring 2019)4
COMPSCI 162Operating Systems and System Programming4
COMPSCI 164Programming Languages and Compilers4
COMPSCI 168Introduction to the Internet: Architecture and Protocols4
COMPSCI 169Course Not Available
COMPSCI 169AIntroduction to Software Engineering4
COMPSCI 169LSoftware Engineering Team Project4
COMPSCI 180Intro to Computer Vision and Computational Photography4
COMPSCI 182Course Not Available4
COMPSCI 184Foundations of Computer Graphics4
COMPSCI 186Introduction to Database Systems4
EECS 149Introduction to Embedded and Cyber Physical Systems4
EECS 151Introduction to Digital Design and Integrated Circuits3
EL ENG C106AIntroduction to Robotics4
EL ENG C106BRobotic Manipulation and Interaction4
EL ENG C128Feedback Control Systems4
EL ENG 130Integrated-Circuit Devices4
EL ENG 140Linear Integrated Circuits4
EL ENG 143Microfabrication Technology4
EL ENG 192Mechatronic Design Laboratory4
Select 8 units upper-division CS courses and 8 units upper-division CS/EE/EECS courses from the following, or from the above list.
(INFO 159, STAT/DATA/COMPSCI C100, and Data 101 are the only non CS/EE/EECS titled classes that may be used to fulfill this requirement)
COMPSCI/STAT C100Principles & Techniques of Data Science4
or DATA C100 Principles & Techniques of Data Science
COMPSCI 161Computer Security4
COMPSCI 170Efficient Algorithms and Intractable Problems4
COMPSCI 172Computability and Complexity4
COMPSCI 176Algorithms for Computational Biology4
COMPSCI 188Introduction to Artificial Intelligence4
COMPSCI 189Introduction to Machine Learning4
COMPSCI C191Introduction to Quantum Computing4
COMPSCI 194Special Topics (15-Parallel Computing, 16-Introduction to Data Science [discontinued], 26-Computational Photography, 28-Computational Design and Fabrication, 30-Practical Networking, 31-Technology and Social Networks, 32-Computing for Social Good, 34-Cryptography [spring 2019], 35-Data Engineering, 73-Software Engineering for Scientific Computing, 80-Full Stack Deep Learning, 100-EECS for All: Social Justice in EECS, 126-PCP Design, 129-Designing, Visualizing and Understanding Deep Neural Networks [also fulfills design requirement], 131-Designing Technology to Counter Violent Extremism [Des Inv 190 does not count], 133-Collaborative Intelligent Agents and The DARPA Spectrum Challenge, 138-Cyberwar, 172-Computational Genomics, 177-Intro to Decentralized Finance, 196-Technology of Decentralization and Decentralized Intelligence, 198-Networks: Models, Processes & Algorithms, 224-Entrepreneurship in Web3, and 238-Special Topics in Zero Knowledge Proof.)4
DATA 101Course Not Available4
EL ENG 105Microelectronic Devices and Circuits4
EL ENG 113Power Electronics4
EL ENG 117Electromagnetic Fields and Waves4
EL ENG 118Introduction to Optical Engineering4
EL ENG 120Signals and Systems4
EL ENG 121Introduction to Digital Communication Systems4
EL ENG 122Introduction to Communication Networks4
EL ENG 123Digital Signal Processing4
EECS 126Probability and Random Processes4
EECS 127Optimization Models in Engineering4
EL ENG C128Feedback Control Systems4
EL ENG 130Integrated-Circuit Devices4
EL ENG 134Fundamentals of Photovoltaic Devices4
EL ENG 137AIntroduction to Electric Power Systems4
EL ENG 137BIntroduction to Electric Power Systems4
EL ENG 140Linear Integrated Circuits4
EL ENG 142Integrated Circuits for Communications4
EL ENG 144Fundamental Algorithms for Systems Modeling, Analysis, and Optimization4
EL ENG C145BMedical Imaging Signals and Systems4
EL ENG C145LIntroductory Electronic Transducers Laboratory3
EL ENG C145MIntroductory Microcomputer Interfacing Laboratory3
EL ENG C145OLaboratory in the Mechanics of Organisms3
EL ENG 147Introduction to Microelectromechanical Systems (MEMS)3
INFO 159Natural Language Processing4
Technical electives: Effective Summer 2022, in addition to the 20 units of required CS coursework above, 4 units of technical electives must be taken from the list of approved non-computer science technical electives (see list below) for a total of 24 units for the major. See eecs.berkeley.edu/resources/undergrads/cs/degree-reqs/tech-electives for the most current list of approved technical electives. Students may not use CS upper division classes to fulfill the technical elective units. Contact cs-advising@cs.berkeley.edu with questions. 24

Approved Non-Computer Science Technical Electives

Course List
CodeTitleUnits
ANTHRO 107Evolution of the Human Brain4
ARCH 122Principles of Computer Aided Architectural Design4
ARCH 129Special Topics in Digital Design Theories and Methods4
ARCH 222Principles of Computer Aided Architectural Design4
ARCH 229Special Topics in Digital Design Theories and Methods4
ART 178Advanced Digital Media: Game Design Methods4
ASTRON C162Planetary Astrophysics4
All technical upper division undergraduate and graduate courses in BIO ENG, except BIO ENG 100, C181, 190, 192, and 196
All technical upper division undergraduate and graduate courses in CHEM
All technical upper division undergraduate and graduate courses in CHEM ENG, except CHEM ENG 180 and 185
All technical upper division undergraduate and graduate courses in CIV ENG, except CIV ENG 167, CIV ENG 192, CIV ENG 252L, and CIV ENG 290R
COG SCI C101Cognitive Linguistics4
COG SCI 131Computational Models of Cognition4
or COG SCI C131 Computational Models of Cognition
DATA C100Principles & Techniques of Data Science4
DATA 101Course Not Available4
DATA C102Data, Inference, and Decisions4
DATA C104Human Contexts and Ethics of Data - DATA/History/STS4
DATA C140Probability for Data Science4
DATA 144Data Mining and Analytics3
ECON 100AMicroeconomics4
ECON 100BMacroeconomics4
ECON 101AMicroeconomics (Math Intensive)4
ECON 101BMacroeconomics (Math Intensive)4
ECON 136Financial Economics4
ECON 140Econometrics4
ECON 141Econometrics (Math Intensive)4
ECON/DEMOG C175Economic Demography4
All technical upper division undergraduate and approved graduate courses in EL ENG
All technical upper division undergraduate and graduate courses in ENGIN, except ENGIN 102, 125, 157AC
EPS 104Mathematical Methods in Geophysics4
EPS C162Planetary Astrophysics4
GEOG 142Global Climate Variability and Change4
GEOG 183Cartographic Representation5
GEOG 187Geographic Information Analysis4
GEOG C188Geographic Information Science4
IND ENG 185Course Not Available (Blockchain)
IND ENG 185Course Not Available (Internet and Data Privacy)
All technical upper division undergraduate and graduate courses in IND ENG, except IND ENG 171, select 185, 186, 190 series, and 191 series
INFO 159Natural Language Processing4
INFO 213Introduction to User Experience Design4
INFO C262Theory and Practice of Tangible User Interfaces4
All technical upper division undergraduate and graduate courses in integrative biology
LINGUIS C105Cognitive Linguistics4
LINGUIS 100Introduction to Linguistic Science4
LINGUIS 120Syntax4
All technical upper division undergraduate and graduate courses in MATH, except MATH 160
All technical upper division undergraduate and graduate courses in MECH ENG, except 191K
All technical upper division undergraduate and graduate courses in MCELLBI
MUSIC 108Music Perception and Cognition4
MUSIC 158ASound and Music Computing with CNMAT Technologies4
MUSIC 159Computer Programming for Music Applications4
MUSIC 209Advanced Topics in Computer Music4
All technical upper division undergraduate and graduate courses in PHYSICS
NWMEDIA 190Special Topics in New Media (1/290-Critical Practices)4
NWMEDIA C203/MEC ENG C205Critical Making4
NWMEDIA 290Special Topics in New Media (Making Sense of Cultural Data)4
PHILOS 140AIntermediate Logic4
PHILOS 140BIntermediate Logic4
PHILOS 143Modal Logic4
POL SCI C135Game Theory in the Social Sciences4
POL SCI W135Game Theory in the Social Sciences4
PSYCH C123Computational Models of Cognition4
PB HLTH 142Introduction to Probability and Statistics in Biology and Public Health4
PB HLTH 150AIntroduction to Epidemiology and Human Disease4
PB HLTH 162APublic Health Microbiology4
PB HLTH 252BInfectious Disease Modeling2-4
All technical upper division undergraduate and graduate courses in STAT
THEATER 177Sound Design for Performance4
UGBA 103Introduction to Finance4
UGBA 120AAIntermediate Financial Accounting 14
UGBA 120ABIntermediate Financial Accounting 24

Five-Year BS/MS

This program is geared toward students who would like to pursue an education beyond the BS/BA, allowing them to achieve greater breadth and/or depth of knowledge, and who would like to try their hand at research as well. It is not intended for students who have definitely decided to pursue a PhD immediately following graduation. Those students are advised to apply for a PhD program at Berkeley or elsewhere during their senior year. Students who have been accepted into the Five-Year BA/MS or BS/MS are free to change their minds later and apply to enter the PhD program or apply to a PhD program at another university. Note that admission is competitive with all our PhD applicants.

The program is focused on interdisciplinary training at a graduate level; with at least 8 units of course work outside EECS required. Students will emerge as leaders in their technical and professional fields.

For further information regarding this program, please see visit the EECS Joint Bachelor's/Master's program page.

Minor Requirements

Students who have a strong interest in an area of study outside their major often decide to complete a minor program. These programs have set requirements and are noted officially on the diploma and the awards section of the transcript.

General Guidelines

  1. All minors must be declared before the first day of classes in your Expected Graduation Term (EGT). For summer graduates, minors must be declared prior to the first day of Summer Session A.
  2. All upper-division courses must be taken for a letter grade.
  3. A minimum of three of the upper-division courses taken to fulfill the minor requirements must be completed at UC Berkeley.
  4. A minimum grade point average (GPA) of 2.0 is required in the upper-division courses to fulfill the minor requirements.
  5. Courses used to fulfill the minor requirements may be applied toward the Seven-Course Breadth requirement, for Letters & Science students.
  6. No more than one upper division course may be used to simultaneously fulfill requirements for a student's major and minor programs.
  7. All minor requirements must be completed prior to the last day of finals during the semester in which the student plans to graduate. If students cannot finish all courses required for the minor by that time, they should see a College of Letters & Science adviser.
  8. All minor requirements must be completed within the unit ceiling. (For further information regarding the unit ceiling, please see the College Requirements tab.)

Requirements

Course List
CodeTitleUnits
Lower Division Prerequisites
COMPSCI 61AThe Structure and Interpretation of Computer Programs4
COMPSCI 61BData Structures4
or COMPSCI 61BL Data Structures and Programming Methodology
COMPSCI 61CGreat Ideas of Computer Architecture (Machine Structures)4
COMPSCI 70Discrete Mathematics and Probability Theory4
Upper Division
Select three upper-division, technical courses in Computer Science or EECS

College Requirements

Essential Skills

Computational Reasoning

The Computational Reasoning requirement is designed to provide a basic understanding of and competency in concepts such as programming, algorithms, iteration, and data-structures.

Human and Social Dynamics of Data and Technology

The Human and Social Dynamics of Data and Technology requirement is designed for the purpose of developing an understanding of how technology and data interact with human and societal contexts, including ethical considerations and applications such as education, health, law, natural resources, and public policy.

Statistical Reasoning

The Statistical Reasoning requirement is designed to provide basic understanding of and competency in the scientific approach to statistical problem solving, including uncertainty, prediction, and estimation.

Reading and Composition

The Reading and Composition requirement is the same as for the College of Letters and Science; it requires two semesters of lower division work in composition in sequence. Students must complete parts A & B reading and composition courses in sequential order by the end of their fourth semester.

To see how to satisfy the R&C requirement, visit the College of Letters and Science Reading and Composition Requirement page.

Breadth Requirements

The undergraduate breadth requirements are the same for CDSS students as for the College of Letters and Science, with the exception that a second semester foreign language course can be used to satisfy the International Studies breadth. To learn more about the L&S Seven-Course Breadth Requirement, visit the L&S Breadth Requirements page. To learn more about using a foreign language course to satisfy the International Studies breadth, visit the CDSS website page on Satisfying International Studies Breadth with a Foreign Language Course.

The undergraduate major programs in computer science, data science, and statistics have transitioned from the College of Letters & Science to CDSS. Students who were admitted in Spring 2024 or earlier have the option of completing either the L&S College Requirements, i.e., the breadth and essential skills requirements, or the CDSS college requirements (above).

All students must meet CDSS general policy (below). The one exception is with time-to-degree. Students admitted Fall 2022 or earlier are subject to the 130 unit maximum, rather than the 8 semester maximum (5 for transfer students).

Class Schedule Requirements

Academic (Grade) Requirements

Bachelor’s Degree Requirements