2022-2023 Computer Science Undergraduate Study

students taking part in programming contest

Students participate in CodeSprint LA, organized by ICPC, at the annual UCLA beginner-friendly algorithmic programming contest.
 

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 program is accredited by the Computing Accreditation Commission and the Engineering Accreditation Commission of ABET.

Capstone Major

The Computer Science and Engineering major is a designated capstone major. Computer Science and Engineering students complete 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.

Educational Objectives

The computer science and engineering undergraduate program educational objectives are that our alumni (1) make valuable technical contributions to design, development, and production in their practice of computer science and computer engineering, in related engineering or application areas, and at the interface of computers and physical systems; (2) demonstrate strong communication skills and the ability to function effectively as part of a team; (3) demonstrate a sense of societal and ethical responsibility in their professional endeavors; and (4) engage in professional development or postgraduate education to pursue flexible career paths amid future technological changes.

Learning Outcomes

The Computer Science and Engineering major has the following learning outcomes:

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.

The Major

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, 170E, 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 up to 8 units of Computer Science 188; 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.

For information on UC, school, and general education requirements, see Requirements for BS Degrees or the GE Requirement web page.

Policies

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.

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 program is accredited by the Computing Accreditation Commission of ABET.

Capstone Major

The Computer Science major is a designated capstone major. 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.

Educational Objectives

The computer science undergraduate program educational objectives are that our alumni (1) make valuable technical contributions to design, development, and production in their practice of computer science and related engineering or application areas, particularly in software systems and algorithmic methods, (2) demonstrate strong communication skills and the ability to function effectively as part of a team, (3) demonstrate a sense of societal and ethical responsibility in their professional endeavors, and (4) engage in professional development or postgraduate education to pursue flexible career paths amid future technological changes.

Learning Outcomes

The Computer Science major has the following learning outcomes:

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.

The Major

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, and up to 8 units of Computer Science 188; 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.

For information on UC, school, and general education requirements, see Requirements for BS Degrees or the GE Requirement web page.

Policies

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.

Computer Engineering BS

The undergraduate curriculum provides all computer engineering students with preparation in the mathematical and scientific disciplines that lead to a set of courses that span the fundamentals of the discipline in the major areas of data science and embedded networked systems. These collectively provide an understanding of many inventions of importance to our society, such as the Internet of Things, human-cyber-physical systems, mobile/wearable/implantable systems, robotic systems, and more generally smart systems at all scales in diverse spheres. The design of hardware, software, and algorithmic elements of such systems represents an already dominant and rapidly growing part of the computer engineering profession. Students are encouraged to make use of their computer science and electrical and computer engineering electives and a two-quarter capstone design course to pursue deeper knowledge within one of these areas according to their interests, whether for graduate study or preparation for employment.

Capstone Major

The Computer Engineering major is a designated capstone major that is jointly administered by the Computer Science, and Electrical and Computer Engineering, departments. Undergraduate students complete a design course in which they integrate their knowledge of the discipline and engage in creative design within realistic and professional constraints. Students apply their knowledge and expertise gained in previous mathematics, science, and engineering coursework. Students identify, formulate, and solve engineering problems and present their projects to the class.

Educational Objectives

The computer engineering undergraduate program educational objectives are that our alumni (1) understand fundamental computing concepts and make valuable contributions to the practice of computer engineering; (2) design, analyze, and implement complex computer systems for a variety of application areas and cyberphysical domains; (3) demonstrate the ability to work effectively in a team and communicate their ideas; (4) continue to learn as part of a graduate program or otherwise in the world of constantly evolving technology.

Learning Outcomes

The Computer Engineering major has the following learning outcomes:

Preparation for the Major

Required: Computer Science 1 (or Electrical and Computer Engineering 1), 31, 32, 33, 35L, M51A (or Electrical and Computer Engineering M16); Electrical and Computer Engineering 3; Engineering 96I; Mathematics 31A, 31B, 32A, 32B, 33A, 33B, 61; Physics 1A, 1B, 1C, and 4AL or 4BL.

The Major

Required: Computer Science 111, 118 (or Electrical and Computer Engineering 132B), M151B (or Electrical and Computer Engineering M116C), M152A (or Electrical and Computer Engineering M116L), 180; Electrical and Computer Engineering 100, 102, 113, 115C; one course from Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, 170E, Statistics 100A; 8 units of computer science and 8 units of electrical and computer engineering upper-division electives; three technical breadth courses (12 units) selected from an approved list available in the Office of Academic and Student Affairs; 8 units capstone design from either Electrical and Computer Engineering 180DA/180DB or 183DA/183DB.

For information on UC, school, and general education requirements, see Requirements for BS Degrees or the GE Requirement web page.

Suggested Tracks

Networked Embedded Systems: This track targets two related trends that have been a significant driver of computing, namely stand-alone embedded devices becoming networked and coupled to physical systems, and the Internet evolving toward a network of things (the IoT). These may broadly be classified as cyber physical systems, and includes a broad category of systems such as smart buildings, autonomous vehicles, and robots, which interact with each other and other systems. This trend in turn is driving innovation both in the network technologies (new low-power wireless networks for connecting things, and new high-speed networks and computing infrastructure to accommodate the transport and processing needs of the deluge of data resulting from continual sensing), and in embedded computing (new hardware and software stack catering to requirements such as ultra-low power operation, and embedded machine learning).

Students pursuing this track are strongly encouraged to take Electrical and Computer Engineering M119 or Computer Science M119 in junior year, and to choose three electives from courses such as Computer Science 117, 130, 131, 132, 133, 136, 181, 188, Electrical and Computer Engineering 2, 115A, 115B, 115C, 132A, 133A, 141, 142, 188.

Students who pursue a technical breadth area in either electrical and computer engineering or computer science can choose an additional three courses from this list.

Data Science: This track targets the trend toward the disruptive impact on computing systems, both at the edge and in the cloud, of massive amounts of sensory data being collected, shared, processed, and used for decision making and control. Application domains such as health, transportation, energy, etc. are being transformed by the abilities of inference-making and decision-making from sensory data that is pervasive, continual, and rich. This track will expose students to the entire data-to-decision pathway spanning the entire stack from hardware and software to algorithms, applications, and user experience.

Students pursuing this track are strongly advised to take Computer Science 143 and M146 or Electrical and Computer Engineering M146, and to additionally choose two electives from courses such as Computer Science CM121, 136, 144, 145, 161, 188, Electrical and Computer Engineering 114, 133A, 133B, 134, 188.

Students who pursue a technical breadth area in either electrical and computer engineering or computer science can choose an additional three courses from this list.

Students are also free to design ad hoc tracks. The technical breadth area requirement provides an opportunity to combine elective courses in electrical and computer engineering and computer science with those from another UCLA Samueli major to produce a specialization in an interdisciplinary domain. As noted above, students can also select a technical breadth area in either Electrical and Computer Engineering or Computer Science to deepen their knowledge in either discipline.

Bioinformatics Minor

The Bioinformatics minor introduces undergraduate students to the emerging interdisciplinary field of bioinformatics, an active area of research at UCLA combining elements of the computational sciences with the biological sciences. The minor organizes the many course offerings in different UCLA departments into a coherent course plan providing students with significant training in bioinformatics in addition to the training they obtain from their major. Students who complete the minor will be strong candidates for admission to PhD programs in bioinformatics as well as have the relevant training to obtain jobs in the biotechnology industry.

Students complete a core curriculum and an elective course and are strongly encouraged to participate in undergraduate research as early as possible in one of the many groups offering research opportunities in bioinformatics.

Admission

To enter the minor, students must be (1) in good academic standing (2.0 grade-point average or better), (2) have completed at least two of the lower-division requirements with minimum grades of C, and (3) file a petition through Message Center. Steps to apply are outlined on the Office of Academic and Student Affairs website. Information about the minor and the application are available on the minor website.

The Minor

Required Lower-Division Courses (17 units minimum): Computer Science 32 or Program in Computing 10C, Life Sciences 7A, Mathematics 33A, 61.

Required Upper-Division Courses (18 units minimum): Computer Science 180 (or Mathematics 182), M184, two courses selected from Computer Science CM121, CM122, and CM124, and one course selected from Chemistry and Biochemistry C100, 153B, Civil and Environmental Engineering 110, Computer Science CM121, CM122, CM124, 170A, CM186, CM187, Ecology and Evolutionary Biology C135, Electrical and Computer Engineering 102, 131A, 141, Human Genetics C144, Mathematics 170A, 170E, Microbiology, Immunology, and Molecular Genetics 132, Molecular, Cell, and Developmental Biology 144, 187AL, Physiological Science 125, Statistics 100A, 100B.

Students are strongly encouraged to take Computer Science M184 as early as possible to obtain an overview of computational biology.

Policies

Eight units of either Bioinformatics 199 or Computer Science 194 or 199 may be applied as an elective by petition.

If students apply any of Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, 170E, or Statistics 100A toward major requirements or another minor, then no other course from that set may be applied toward the minor requirements.

A minimum of 20 units applied toward the minor requirements must be in addition to units applied toward major requirements or another minor.

All minor courses must be taken for a letter grade (unless not offered on that grading basis), and students must have a minimum grade of C– in each and an overall C (2.0) grade-point average in all courses taken for the minor. Successful completion of the minor is indicated on the transcript and diploma.

Data Science Engineering Minor

The minor is intended to expose students to the entire data science life cycle from both foundational and application perspectives. The foundational courses provide the engineering skills to collect, cleanse, and store data; analyze and draw inference from data; and take action and make decisions. A wide-ranging list of interdisciplinary courses focuses on various data-science applications using these skills.

Admission

To apply for the minor, students must have an overall grade-point average of 3.0 or better, have completed or be in the process of completing in the present quarter the two lower-division required courses with the grade B- or better, and file a petition through Message Center. Steps to apply are outlined on the Office of Academic and Student Affairs website. Information about the minor and the application are available on the minor website.

The Minor

Required Lower-Division Courses (8 units minimum): Computer Science 32, Mathematics 33A.

Required Upper-Division Courses (12 units minimum): One course from Civil and Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, 170E, or Statistics 100A; Computer Science M148 or Electrical and Computer Engineering M148; Computer Science 145 or M146 or Electrical and Computer Engineering M146.

Elective Upper-Division Courses (8 units minimum): Two courses from Computer Science M119, CM121, CM122, CM124, 143, 145 or M146 (if not taken as a required course), 161, 180, M182, Electrical and Computer Engineering 102, 113, 114, M119, 133A, M146 (if not taken as a required course), C147, 183DA and 183DB (both must be taken), Mechanical and Aerospace Engineering C137, 185, Statistics 100B, 115, 170, or C180.

Policies

Variable topics courses may be taken as topics apply.

Transfer credit for any of the above is subject to approval; consult with the undergraduate counselors before enrolling in any courses for the minor.

A minimum of 20 units applied toward the minor requirements must be in addition to units applied toward major requirements or another minor.

Each minor course must be taken for a letter grade, and student must have a minimum grade of C in each and an overall grade-point average of 2.0 or better in the minor. Successful completion of the minor is indicated on the transcript and diploma.