Computer Science and Engineering BS
The Computer Science and Engineering curriculum at UCLA provides students with the education and training necessary to design, implement, test, and utilize the hardware and software of digital computers and digital systems. The curriculum has components spanning both the Computer Science and Electrical and Computer Engineering departments. The curriculum covers all aspects of computer systems from electronic design through logic design, MSI, LSI, and VLSI concepts; device utilization, machine language design, implementation and programming, operating system concepts, systems programming, networking fundamentals, and higher-level language skills; and their application. Students are prepared for employment in a wide spectrum of high-technology industries.
The Computer Science and Engineering 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; Electrical and Computer Engineering 3; 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, Electrical and Computer Engineering 100, 102, 115C; one course from Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, or Statistics 100A; one capstone design course (Computer Science 152B); a minimum of 4 units and one elective course selected from Electrical and Computer Engineering 101A through M185; a minimum of 12 units and three elective courses selected from Computer Science 111 through CM187; and 12 units of technical breadth courses selected from an approved list available in the Office of Academic and Student Affairs.
Students who want to deepen their knowledge of electrical engineering are encouraged to select that discipline as their technical breadth area.
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 technical breadth area. Electrical and Computer Engineering 110, 131A, and CM182 may not satisfy elective credit. 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 College and Schools chapter.