Computer Science BS
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, or Statistics 100A; one capstone software engineering or design course from Computer Science 130 or 152B; 20 units of elective courses selected from Computer Science 100 through CM187; 12 units of 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. Four units of either Computer Science 194 or 199 may be applied as an elective by petition.
For information on UC, school, and general education requirements, see the College and Schools chapter.