Computer Science BS
The computer science program is accredited by the Computing Accreditation Commission of ABET.
The Computer Science major is a designated capstone major. Computer Science students complete either a software engineering or a major product design course. Graduates are expected to apply the basic mathematical and scientific concepts that underlie modern computer science and engineering; design a software or digital hardware system, component, or process to meet desired needs within realistic constraints; function productively with others as part of a team; identify, formulate, and solve computer software- and hardware-related engineering problems; and demonstrate effective communication skills.
The Computer Science curriculum is designed to accommodate students who want professional preparation in computer science but do not necessarily have a strong interest in computer systems hardware. The curriculum consists of components in computer science, a minor or technical support area, and a core of courses from the social sciences, life sciences, and humanities. Within the curriculum, students study subject matter in software engineering, principles of programming languages, data structures, computer architecture, theory of computation and formal languages, operating systems, distributed systems, computer modeling, computer networks, compiler construction, and artificial intelligence. Majors are prepared for employment in a wide range of industrial and business environments.
The Computer Science major has the following learning outcomes:
- Application of basic mathematical and scientific concepts that underlie the modern field
- Design of a software or digital hardware system, component, or process to meet desired needs within realistic constraints
- Function productively with others on a team, including those with different specialties within the field
- Identification, formulation, and solution of computer software- and hardware-related engineering problems
- Effective communication
Preparation for the Major
Required: Computer Science 1, 31, 32, 33, 35L, M51A; Mathematics 31A, 31B, 32A, 32B, 33A, 33B, 61; Physics 1A, 1B, 1C, and 4AL or 4BL.
Required: Computer Science 111, 118, 131, M151B, M152A, 180, 181; one course from Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, 170E, or Statistics 100A; one capstone software engineering or design course from Computer Science 130 or 152B; a minimum of 20 units and five elective courses selected from Computer Science 111 through CM187; a minimum of 12 units and three science and technology courses (not used to satisfy other requirements) that may include 12 units of upper-division computer science courses or 12 units of courses selected from an approved list available in the Office of Academic and Student Affairs; and 12 units of technical breadth courses selected from an approved list available in the Office of Academic and Student Affairs.
Students must take at least one course from Computer Science 130 or 132. Computer Science 130 or 152B may be applied as an elective only if it is not taken as the capstone course. Credit is not allowed for both Computer Science 170A and Electrical and Computer Engineering 133A unless at least one of them is applied as part of the science and technology requirement or as part of the technical breadth area. A petition may be submitted to consider four units of Computer Science 194 or 199 for an elective. Credit is not guaranteed and subject to vice chair review.
A multiple-listed (M) course offered in another department may be used instead of the same computer science course (e.g., Electrical and Computer Engineering M116C may be taken instead of Computer Science M151B). Credit is applied automatically.
For information on UC, school, and general education requirements, see the engineering section of the College and Schools chapter.