Computer Science College of Engineering

The University of California, Davis, is, first and foremost, an institution of learning and teaching, committed to serving the needs of society. The Department of Computer Science contributes to the mission in three ways. First, its undergraduate and graduate education programs seek to educate students in the fundamental principles of computer science and the skills needed to solve the complex technological problems of modern society. The breadth of coursework provides a framework for life-long learning and an appreciation for multidisciplinary activities. Second, through its research programs, the department contributes to the development and progress of computer science, and software and information technology, to provide innovative, creative solutions for societal needs. Finally, the department disseminates its research to enhance collaborations with the public sector, further interdisciplinary interests that benefit society, and educate the public through publications, public service, and professional activities.

Department Objectives

Teaching—We seek to provide undergraduate students with a thorough understanding of the key principles and practices of computing, which include a strong theoretical background in mathematics, basic sciences, and engineering fundamentals and an ability to apply this knowledge to practical problems. We endeavor to provide students with sufficient breadth to work creatively and productively in multidisciplinary work teams; this breadth, in its broadest context, will form the basis for an appreciation and interest in life-long learning. We provide students with the opportunities to design and conduct experiments, and to collect and analyze data in core, as well as more specialized, areas of computer science. We provide students with breadth in the humanities and social sciences so they learn to communicate effectively, understand professional and ethical issues in society, and appreciate the interrelatedness between computing and society. We educate graduate students to be our next generation of teachers or leaders in industry, or to pursue meaningful, creative research in industry, government, or academia.

Research—We develop and maintain research programs that produce fundamental scientific advances, as well as useful technological innovations, while simultaneously training the next generation of researchers and leaders in the field of computer science.

Objectives

We train graduates to practice computer science and engineering in a broad range of industries; we prepare interested graduates for graduate education or other professional degrees; we give students an understanding of computer software and hardware systems, and both theoretical and experimental approaches to problem-solving; we ready graduates for lifelong learning; and we encourage graduates to contribute to their profession and society.

Computer Science Engineering (ECS)

ECS 011 — Artificial Intelligence for All (4 units)

Course Description: Comprehensive introduction to artificial intelligence (AI) and its multifaceted applications. Foundational understanding of modern AI to enable effective communication about its functions, recognition of its applications, and awareness of its core principles. Ethical and societal implications of AI.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit for students that have taken ECS 111, ECS 170, ECS 171, EEC 174AY, EEC 174BY, EEC 179, or BIM 155.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Scientific Literacy (SL).

ECS 012 — Introduction to Media Computation (4 units)

This version has ended; see updated course, below.
Course Description: Introduction to key computational ideas necessary to understand and produce digital media. Fundamentals of programming are covered as well as analysis of how media are represented and transmitted in digital form. Aimed primarily at non-computer science students.

ECS 012 — Introduction to Media Computation (4 units)

Learning Activities: Lecture 3 hour(s), Discussion/Laboratory 1 hour(s).
Credit Limitation(s): Only 2 units of credit for students that have taken ECS 010 or ECS 030 or ENG 006.
Cross Listing: CTS 012.
Grade Mode: Letter.
General Education: Arts & Humanities (AH) or Science & Engineering (SE); Visual Literacy (VL).

ECS 012 — Introduction to Media Computation (4 units)


Course Description: Introduction to key computational ideas necessary to understand and produce digital media. Fundamentals of programming are covered as well as analysis of how media are represented and transmitted in digital form. Aimed primarily at non-computer science students.
Learning Activities: Lecture 3 hour(s), Discussion/Laboratory 1 hour(s).
Credit Limitation(s): Two units of credit for students that have taken ECS 010, ECS 030, ECS 032A, ECS 032AV, ECS 036A, or ENG 006..
Cross Listing: CDM 012.
Grade Mode: Letter.
General Education: Arts & Humanities (AH) or Science & Engineering (SE); Visual Literacy (VL).
This course version is effective from, and including: Winter Quarter 2025.

ECS 017 — Data, Logic, & Computing (4 units)

Course Description: Display, processing, and representation of information and data on a computer. Understanding and analyzing the digital representations of numbers, images, and sounds. Basic computer operations and their logic. Introduction to discrete mathematics in computer science, including propositional logic, proofs by induction, recursions, and counting. Introduction to algorithms. Uses of computers and their influence on society.

Prerequisite(s): MAT 016A (can be concurrent) or MAT 017A (can be concurrent) or MAT 019A < can be concurrent >or MAT 021A (can be concurrent).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): Not open for credit to students who have completed course ECS 020 or MAT108.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL).

ECS 020 — Discrete Mathematics For Computer Science (4 units)

Course Description: Discrete mathematics of particular utility to computer science. Proofs by induction. Propositional and first-order logic. Sets, functions, and relations. Big-O and related notations. Recursion and solutions of recurrence relations. Combinatorics. Probability on finite probability spaces. Graph theory.

Prerequisite(s): MAT 016A C- or better or MAT 017A C- or better or MAT 019A C- or better or MAT 021A C- or better.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL).

ECS 032A — Introduction to Programming (4 units)

This version has ended; see updated course, below.
Course Description: Introduction to programming and problem solving in Python. Aimed primarily at non-major students.

ECS 032A — Introduction to Programming (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Open to undergraduate students only.
Credit Limitation(s): No credit to students who have completed ECS 030, ECS 032B, ECS 032C, ECS 036A, ECS 036B, ECS 036C, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 032A — Introduction to Programming (4 units)


Course Description: Introduction to programming and problem solving in Python. Aimed primarily at non-major students.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Open to undergraduate students only.
Credit Limitation(s): No credit to students who have completed ECS 032B, ECS 032C, ECS 036A, ECS 036B, ECS 036C.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 032AV — Introduction to Programming (4 units)

Course Description: Introduction to programming and problem solving in Python. Aimed primarily at non-major students.

Learning Activities: Web Virtual Lecture 3 hour(s), Web Electronic Discussion 1 hour(s).
Enrollment Restriction(s): Open to undergraduate students only.
Credit Limitation(s): No credit to students who have completed ECS 032B, ECS 032C, ECS 036A, ECS 036B, ECS 036C.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 032B — Introduction to Data Structures (4 units)

This version has ended; see updated course, below.
Course Description: Design and analysis of data structures using Python; trees, heaps, searching, sorting, and graphs.

Prerequisite(s): ECS 010 C- or better or ECS 030 C- or better or ECS 032A C- or better or ECS 036A C- or better.

ECS 032B — Introduction to Data Structures (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit to students who have completed ECS 036B, ECS 036C, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 032B — Introduction to Data Structures (4 units)


Course Description: Design and analysis of data structures using Python; trees, heaps, searching, sorting, and graphs.
Prerequisite(s): ECS 010 C- or better or ECS 030 C- or better or ECS 032A C- or better or ECS 032AV C- or better or ECS 036A C- or better.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit to students who have completed ECS 036B, ECS 036C, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 032C — Implementation of Data Structures in C (4 units)

Course Description: Programming in the C language. Use of basic UNIX tools. Writing good programs of increased complexity and efficiency. Implementation of data structures in C.

Prerequisite(s): ECS 032B C- or better.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit to students who have completed ECS 036B, ECS 036C, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 034 — Software Development in UNIX & C++ (4 units)

Course Description: UNIX Operating system tools and programming environment. Methods for debugging and verification. Principles object-oriented programming in C++.

Prerequisite(s): ECS 032C C- or better; or consent of instructor.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit to students who have completed ECS 036B, ECS 036C, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 036A — Programming & Problem Solving (4 units)

This version has ended; see updated course, below.
Course Description: Computers and computer programming for students with some prior experience, algorithm design, and debugging. Good programming style. Use of basic UNIX tools.

Prerequisite(s): ECS 032A C- or better or ECS 010 C- or better; or must satisfy computer science placement exam; prior experience with basic programming concepts (variable, loops, conditional statements) required.

ECS 036A — Programming & Problem Solving (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science, Computer Science & Engineering, and Computer Engineering majors only; Pass Two restricted to Computer Science, Computer Science & Engineering, Computer Engineering, Cognitive Science, Applied Physics, Statistics, and Psychology majors only.
Credit Limitation(s): Only 2 units of credit to students who have completed ECS 032A; no credit to students who have completed ECS 032B, ECS 032C, ECS 034, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 036A — Programming & Problem Solving (4 units)


Course Description: Computers and computer programming for students with some prior experience, algorithm design, and debugging. Good programming style. Use of basic UNIX tools.
Prerequisite(s): ECS 032A C- or better or ECS 032AV C- or better or ECS 010 C- or better; or must satisfy computer science placement exam; prior experience with basic programming concepts (variable, loops, conditional statements) required.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science, Computer Science & Engineering, and Computer Engineering majors only; Pass Two restricted to Computer Science, Computer Science & Engineering, Computer Engineering, Cognitive Science, Applied Physics, Statistics, and Psychology majors only.
Credit Limitation(s): Only 2 units of credit to students who have completed ECS 032A or ECS 032AV; no credit to students who have completed ECS 032B, ECS 032C, ECS 034, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 036B — Software Development & Object-Oriented Programming in C++ (4 units)

Course Description: Object-oriented programming in C++. Basic data structures and their use. Writing good programs of increased complexity and efficiency. Methods for debugging and verification.

Prerequisite(s): ECS 030 C- or better or ECS 036A C- or better.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science, Computer Science & Engineering, Computer Engineering majors only; Pass Two restricted to Computer Science, Computer Science & Engineering, Computer Engineering, Cognitive Science, and Applied Physics majors only.
Credit Limitation(s): No credit to students who have completed ECS 032B, ECS 032C, ECS 034, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 036C — Data Structures, Algorithms, & Programming (4 units)

Course Description: Design and analysis of data structures for a variety of applications; trees, heaps, searching, sorting, hashing, and graphs. Extensive programming.

Prerequisite(s): (ECS 040 C- or better or ECS 036B C- or better); ECS 020 C- or better.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science & Engineering, and Computer Engineering majors only. Pass Two open to Computer Science, Computer Science & Engineering, Computer Engineering, Cognitive Science, and Applied Physics majors only.
Credit Limitation(s): No credit to students who have completed ECS 032B, ECS 032C, ECS 034, ECS 040 or ECS 060.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 050 — Computer Organization & Machine-Dependent Programming (4 units)

This version has ended; see updated course, below.
Course Description: Comparative study of different hardware architectures via programming in the assembly languages of various machines. Role of system software in producing an abstract machine. Introduction to I/O devices and programming.

Prerequisite(s): ECS 040 C- or better or ECS 034 C- or better or ECS 036B C- or better.

ECS 050 — Computer Organization & Machine-Dependent Programming (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science & Engineering majors only.
Credit Limitation(s): 1 unit of credit if taken EEC 070.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 050 — Computer Organization & Machine-Dependent Programming (4 units)


Course Description: Comparative study of different hardware architectures via programming in the assembly languages of various machines. Role of system software in producing an abstract machine. Introduction to I/O devices and programming.
Prerequisite(s): ECS 040 C- or better or ECS 036B C- or better or ECS 032C C- or better.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science & Engineering majors only.
Credit Limitation(s): 1 unit of credit if student has taken EEC 070.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Fall Quarter 2024.

ECS 088 — Ethics of Technology (4 units)

Course Description: Foundations of normative ethics for technology, its relationships to moral philosophy and to the law. Technologies and their impacts on the environment and society. Justice, meritocracy, and computer science and engineering. Ethical issues with AI and machine learning.

Learning Activities: Lecture 3 hour(s); Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science Engineering majors only.
Credit Limitation(s): Not open for credit to students who have taken ECS 188.
Grade Mode: Letter.
General Education: Science & Engineering (SE) or Social Sciences (SS).

ECS 089A — Special Topics in Computer Science: Computer Science Theory (1-5 units)

Course Description: Special topics in Computer Science Theory.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089B — Special Topics in Computer Science: Architecture (1-5 units)

Course Description: Special topics in Architecture.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089C — Special Topics in Computer Science: Programming Languages & Compilers (1-5 units)

Course Description: Special topics in Programming Languages & Compilers.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089D — Special Topics in Computer Science: Operating Systems (1-5 units)

Course Description: Special topics in Operating Systems.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089E — Special Topics in Computer Science: Software Engineering (1-5 units)

Course Description: Special topics in Software Engineering.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089F — Special Topics in Computer Science: Databases (1-5 units)

Course Description: Special topics in Databases.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089G — Special Topics in Computer Science: Artificial Intelligence (1-5 units)

Course Description: Special topics in Artificial Intelligence.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089H — Special Topics in Computer Science: Computer Graphics (1-5 units)

Course Description: Special topics in Computer Graphics.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089I — Special Topics in Computer Science: Networks (1-5 units)

Course Description: Special topics in Networks.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089J — Special Topics in Computer Science: Computer-Aided Design (1-5 units)

Course Description: Special topics in Computer-Aided Design.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089K — Special Topics in Computer Science: Scientific Computing (1-5 units)

Course Description: Special topics in Scientific Computing.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 089L — Special Topics in Computer Science: Computer Science (1-5 units)

Course Description: Special topics in Computer Science.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 092 — Internship in Computer Science (1-5 units)

Course Description: Supervised work experience in computer science.

Prerequisite(s): Lower division standing; project approval prior to period of internship.

Learning Activities: Internship.
Repeat Credit: May be repeated.
Grade Mode: Pass/No Pass only.

ECS 098 — Directed Group Study (1-5 units)

Course Description: Directed group study.

Learning Activities: Variable.
Grade Mode: Pass/No Pass only.

ECS 098F — Student Facilitated Course (1-4 units)

Course Description: Student facilitated course intended primarily for lower division students.

Prerequisite(s): Consent of instructor.

Learning Activities: Variable 1-4 hour(s).
Grade Mode: Pass/No Pass only.

ECS 099 — Special Study for Lower Division Students (1-5 units)

Course Description: Special study for lower division students.

Prerequisite(s): Consent of instructor.

Learning Activities: Variable.
Grade Mode: Pass/No Pass only.

ECS 111 — Applied Machine Learning for Non-Majors (4 units)

This version has ended; see updated course, below.
Course Description: Machine learning methods and their application. Theory, design and evaluation of supervised/unsupervised machine learning algorithms. Practical use of matching learning methods and their challenges.

ECS 111 — Applied Machine Learning for Non-Majors (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Data Science majors; Pass Two restricted to undergraduates.
Credit Limitation(s): No credit if student has taken ECS 171; not intended for Computer Science and Computer Science Engineering Majors.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 111 — Applied Machine Learning for Non-Majors (4 units)


Course Description: Machine learning methods and their application. Theory, design and evaluation of supervised/unsupervised machine learning algorithms. Practical use of matching learning methods and their challenges.
Prerequisite(s): (ECS 032B or ECS 036C); (MAT 135A or STA 035C); (MAT 022A or MAT 027A or MAT 067).
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restrictions: Pass One restricted to Data Science majors; Pass Two restricted to undergraduates.
Credit Limitation(s): No credit if student has taken ECS 171; not intended for Computer Science and Computer Science Engineering Majors.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Fall Quarter 2024.

ECS 113 — Computer Security for Non-Majors (4 units)

This version has ended; see updated course, below.
Course Description: Principles, mechanisms, implementation, and sound practices of computer security and data protection. Cryptography, authentication and access control. Internet security. Malicious software. Common vulnerabilities. Practical security in everyday life. Not intended for Computer Science or Computer Science & Engineering majors.

Prerequisite(s): ECS 010 or ECS 030 or ECS 032A or ECS 036A.

ECS 113 — Computer Security for Non-Majors (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit allowed to students who have completed ECS 153 or ECS 155.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 113 — Computer Security for Non-Majors (4 units)


Course Description: Principles, mechanisms, implementation, and sound practices of computer security and data protection. Cryptography, authentication and access control. Internet security. Malicious software. Common vulnerabilities. Practical security in everyday life. Not intended for Computer Science or Computer Science & Engineering majors.
Prerequisite(s): ECS 010 or ECS 030 or ECS 032A or ECS 032AV or ECS 036A.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Credit Limitation(s): No credit allowed to students who have completed ECS 153 or ECS 155.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 115 — Computer Networks for Non-Majors (4 units)

This version has ended; see updated course, below.
Course Description: Overview of computer networks, World Wide Web, email, local & wide-area computer networks, TCP/IP protocol suite, network protocols for data transmission, introduction to network programming.

ECS 115 — Computer Networks for Non-Majors (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Not intended for Computer Science or Computer Science & Engineering majors.
Credit Limitation(s): No credit for students who have completed any of ECS 152A, ECS 152B, ECS 152C, EEC 173A, or EEC 173B.
Grade Mode: Letter.
General Education: Science & Engineering

ECS 115 — Computer Networks for Non-Majors (4 units)


Course Description: Overview of computer networks, World Wide Web, email, local & wide-area computer networks, TCP/IP protocol suite, network protocols for data transmission, introduction to network programming.
Prerequisite(s): ECS 032B or ECS 036C.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restrictions: Not intended for Computer Science or Computer Science & Engineering majors.
Credit Limitation(s): No credit for students who have completed any of ECS 152A, ECS 152B, ECS 152C, EEC 173A, or EEC 173B.
Grade Mode: Letter.
General Education: Science & Engineering
This course version is effective from, and including: Fall Quarter 2024.

ECS 116 — Databases for Non-Majors (4 units)

This version has ended; see updated course, below.
Course Description: Overview of Database Systems, Conceptual Modeling and Design, E/R diagrams, Relational Model, Relational Algebra, SQL, File and Index Structures, Query Evaluation, Transaction Concepts, Concurrency and Recovery, and NoSQL Databases.

ECS 116 — Databases for Non-Majors (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Not intended for Computer Science or Computer Science & Engineering majors.
Credit Limitation(s): Not open for credit for students who have completed ECS 165A or ECS 165B.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 116 — Databases for Non-Majors (4 units)


Course Description: Overview of Database Systems, Conceptual Modeling and Design, E/R diagrams, Relational Model, Relational Algebra, SQL, File and Index Structures, Query Evaluation, Transaction Concepts, Concurrency and Recovery, and NoSQL Databases.
Prerequisite(s): ECS 032B or ECS 036C.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restrictions: Not intended for Computer Science or Computer Science & Engineering majors.
Credit Limitation(s): Not open for credit for students who have completed ECS 165A or ECS 165B.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Fall Quarter 2024.

ECS 117 — Algorithms for Data Science (4 units)

Course Description: Algorithms for searching, pattern matching, combinatorial problems, clustering, and time series analysis with practical emphasis.

Learning Activities: Lecture 3 hour(s); Discussion 1 hour(s).
Credit Limitation(s): No credit if ECS 122A has been taken.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 119 — Data Processing Pipelines (4 units)

Course Description: Introduction to software systems for processing large datasets. Hands-on experience with scripting, data streams, distributed computing, and software development and deployment infrastructure.

Learning Activities: Lecture 3 hour(s), Discusson 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Data Science majors; Pass Two restricted to undergraduate students.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 120 — Theory of Computation (4 units)

Course Description: Fundamental ideas in the theory of computation, including formal languages, computability and complexity. Reducibility among computational problems.

Prerequisite(s): (ECS 020 or MAT 108); (ECS 32B or ECS 36C recommended).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science Engineering majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL).

ECS 122A — Algorithm Design & Analysis (4 units)

Course Description: Complexity of algorithms, bounds on complexity, analysis methods. Searching, sorting, pattern matching, graph algorithms. Algorithm design techniques: divide-conquer, greedy, dynamic programming. Approximation methods. NP-complete problems.

Prerequisite(s): ECS 020; (ECS 060 or ECS 032B or ECS 036C).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 122B — Algorithm Design & Analysis (4 units)

Course Description: Theory and practice of hard problems, and problems with complex algorithm solutions. NP-completeness, approximation algorithms, randomized algorithms, dynamic programming and branch and bound. Theoretical analysis, implementation and practical evaluations. Examples from parallel, string, graph, and geometric algorithms.

Prerequisite(s): ECS 122A; (ECS 060 or ECS 034 or ECS 036C).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL).

ECS 124 — Theory & Practice of Bioinformatics (4 units)

This version has ended; see updated course, below.
Course Description: Fundamental biological, mathematical and algorithmic models underlying bioinformatics and systems biology; sequence analysis, database search, genome annotation, clustering and classification, functional gene networks, regulatory network inference, phylogenetic trees, applications of common bioinformatics tools in molecular biology and genetics.

ECS 124 — Theory & Practice of Bioinformatics (4 units)

Learning Activities: Lecture 3 hour(s), Laboratory 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 124 — Theory & Practice of Bioinformatics (4 units)


Course Description: Fundamental biological, mathematical and algorithmic models underlying bioinformatics and systems biology; sequence analysis, database search, genome annotation, clustering and classification, functional gene networks, regulatory network inference, phylogenetic trees, applications of common bioinformatics tools in molecular biology and genetics.
Prerequisite(s): (ECS 032A or ECS 032AV or ECS 036A or ENG 006); (STA 032 or STA 035B or STA 100 or STA 131A or ECS 132 or MAT 135A or EEC 161 or BIM 105); (BIS 002A or MCB 010).
Learning Activities: Lecture 3 hour(s), Laboratory 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 127 — Cryptography (4 units)

This version has ended; see updated course, below.
Course Description: Introduction to the theory and practice of cryptographic techniques used in computer security. Encryption (secret-key and public-key), message authentication, digital signatures, entity authentication, key distribution, and other cryptographic protocols. The social context of cryptography.

Prerequisite(s): (ECS 020 or MAT 108); (ECS 010 or ECS 032A or ECS 030 or ECS 036A).

ECS 127 — Cryptography (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL); Scientific Literacy (SL).

ECS 127 — Cryptography (4 units)


Course Description: Introduction to the theory and practice of cryptographic techniques used in computer security. Encryption (secret-key and public-key), message authentication, digital signatures, entity authentication, key distribution, and other cryptographic protocols. The social context of cryptography.
Prerequisite(s): (ECS 020 or MAT 108); (ECS 010 or ECS 032A or ECS 032AV or ECS 030 or ECS 036A).
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL); Scientific Literacy (SL).
This course version is effective from, and including: Winter Quarter 2025.

ECS 129 Computational Structural Bioinformatics (4 units)

This version has ended; see updated course, below.
Course Description: Fundamental biological, chemical and algorithmic models underlying computational structural biology; protein structure and nucleic acids structure; comparison of protein structures; protein structure prediction; molecular simulations; databases and online services in computational structural biology.

Prerequisite(s): (BIS 002A or MCB 010); (ECS 010 or ECS 032A or ECS 036A).

ECS 129 — Computational Structural Bioinformatics (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 129 — Computational Structural Bioinformatics (4 units)


Course Description: Fundamental biological, chemical and algorithmic models underlying computational structural biology; protein structure and nucleic acids structure; comparison of protein structures; protein structure prediction; molecular simulations; databases and online services in computational structural biology.
Prerequisite(s): (BIS 002A or MCB 010); (ECS 010 or ECS 032A or or ECS 032AV or ECS 036A).
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 130 — Scientific Computation (4 units)

This version has ended; see updated course, below.
Course Description: Matrix-vector approach using MATLAB for floating-point arithmetic, error analysis, data interpolation, least squares data fitting, quadrature, zeros, optimization and matrix eigenvalues and singular values. Parallel computing for matrix operations and essential matrix factorizations.

Prerequisite(s): (ECS 030 or ENG 006 or ECS 032A or ECS 010 or ECS 036A); (MAT 022A or MAT 027A or MAT 067).

ECS 130 — Scientific Computation (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 130 — Scientific Computation (4 units)


Course Description: Matrix-vector approach using MATLAB for floating-point arithmetic, error analysis, data interpolation, least squares data fitting, quadrature, zeros, optimization and matrix eigenvalues and singular values. Parallel computing for matrix operations and essential matrix factorizations.
Prerequisite(s): (ECS 030 or ENG 006 or ECS 032A or ECS 032AV or ECS 010 or ECS 036A); (MAT 022A or MAT 027A or MAT 067).
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Winter Quarter 2025.

ECS 132 — Probability & Statistical Modeling for Computer Science (4 units)

Course Description: Univariate and multivariate distributions. Estimation and model building. Markov/Hidden Markov models. Applications to data mining, networks, security, software engineering and bioinformatics.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Quantitative Literacy (QL).

ECS 140A — Programming Languages (4 units)

This version has ended; see updated course, below.
Course Description: Syntactic definition of programming languages. Introduction to programming language features including variables, data types, data abstraction, object-orientedness, scoping, parameter disciplines, exception handling. Non-imperative programming languages. Comparative study of several high-level programming languages.

Prerequisite(s): ECS 050; ECS 020; (ECS 034 or 036C); ECS 150 is recommended.

ECS 140A — Programming Languages (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science Engineering majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 140A — Programming Languages (4 units)


Course Description: Syntactic definition of programming languages. Introduction to programming language features including variables, data types, data abstraction, object-orientedness, scoping, parameter disciplines, exception handling. Non-imperative programming languages. Comparative study of several high-level programming languages.
Prerequisite(s): ECS 050; ECS 020; (ECS 034 or 036C); ECS 150 recommended.
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Open to Computer Science and Computer Science Engineering majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Fall Quarter 2024.

ECS 140B — Programming Languages (4 units)

Course Description: Continuation of programming language principles. Further study of programming language paradigms such as functional and logic; additional programming language paradigms such as concurrent (parallel); key implementation issues for those paradigms; and programming language semantics.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 142 — Compilers (4 units)

Course Description: Principles and techniques of lexical analysis, parsing, semantic analysis, code generation, and code optimization. Implementation of compilers.

Prerequisite(s): ECS 140A; ECS 120; ECS 122A recommended.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 145 — Scripting Languages & Their Applications (4 units)

Course Description: Goals and philosophy of scripting languages, with Python and R as prime examples. Applications include networking, data analysis and display, and graphical user interfaces (GUIs).

Prerequisite(s): ECS 034 or ECS 036C or ECS 060; or consent of instructor.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 150 — Operating Systems & System Programming (4 units)

Course Description: Basic concepts of operating systems and system programming. Processes and interprocess communication/synchronization; virtual memory, program loading and linking; file and I/O subsystems; utility programs. Study of a real operating system.

Prerequisite(s): (ECS 034 or ECS 036C or ECS 060); (ECS 154A or EEC 170).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science Engineering and Computer Engineering majors only; Pass Two open to Computer Science majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 152A — Computer Networks (4 units)

This version has ended; see updated course, below.
Course Description: Overview of computer networks, TCP/IP protocol suite, computer-networking applications and protocols, transport-layer protocols, network architectures, Internet Protocol (IP), routing, link-layer protocols, local area and wireless networks, medium access control, physical aspects of data transmission, and network-performance analysis.

Prerequisite(s): (ECS 060 or ECS 032B or ECS 036C); (ECS 132 or EEC 161 or MAT 135A or STA 131A or STA 120 or STA 032).

ECS 152A — Computer Networks (4 units)

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Credit Limitation(s): Only 2 units of credit for students who have taken ECS 157.
Cross Listing: EEC 173A.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 152A — Computer Networks (4 units)


Course Description: Overview of computer networks, TCP/IP protocol suite, computer-networking applications and protocols, transport-layer protocols, network architectures, Internet Protocol (IP), routing, link-layer protocols, local area and wireless networks, medium access control, physical aspects of data transmission, and network-performance analysis.
Prerequisite(s): (ECS 032B or ECS 036C); (ECS 132 or EEC 161 or MAT 135A or STA 032 or STA 035B or STA 100 or STA 131A).
Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Credit Limitation(s): Only 2 units of credit for students who have taken ECS 157.
Cross Listing: EEC 173A.
Grade Mode: Letter.
General Education: Science & Engineering (SE).
This course version is effective from, and including: Fall Quarter 2024.

ECS 152B — Computer Networks (4 units)

Course Description: TCP/IP protocol suite, computer networking applications, client-server and peer-to-peer architectures, application-layer protocols, transport-layer protocols, transport-layer interfaces, sockets, network programming, remote procedure calls, and network management.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 152C — Advanced Topics in Computer Networks (4 units)

Course Description: Advanced topics in computer networks, wireless networks, multimedia networking, traffic analysis and modeling, network design and management, network simulation and performance analysis, and design projects in communication networks.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Cross Listing: EEC 173B.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 153 — Computer Security (4 units)

Course Description: Principles, mechanisms, and implementation of computer security and data protection. Policy, encryption and authentication, access control, and integrity models and mechanisms; network security; secure systems; programming and vulnerabilities analysis. Study of an existing operating system.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Credit Limitation(s): Not open for credit to students who have completed ECS 155.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 154A — Computer Architecture (4 units)

Course Description: Introduction to digital design. Interfacing of devices for I/O, memory and memory management. Input/output programming, via wait loops, hardware interrupts and calls to operating system services. Hardware support for operating systems software.

Prerequisite(s): ECS 050 or EEC 070.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One and Pass Two open to Computer Science and Computer Science Engineering majors only.
Credit Limitation(s): Only 1 unit of credit allowed for students who have taken EEC 170.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 154B — Computer Architecture (4 units)

Course Description: Hardwired and microprogrammed CPU design. Memory hierarchies. Uniprocessor performance analysis under varying program mixes. Introduction to pipelining and multiprocessors.

Prerequisite(s): ECS 154A or EEC 170 or EEC 180A.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Credit Limitation(s): Not open for credit to students who have taken ECS 201A.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 158 — Programming on Parallel Architectures (4 units)

Course Description: Techniques for software development using the shared-memory and message-passing paradigms, on parallel architectures and networks of workstations. Locks, barriers, and other techniques for synchronization. Introduction to parallel algorithms.

Prerequisite(s): ECS 150; ECS 154B recommended.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 160 — Software Engineering (4 units)

Course Description: Requirements, specification, design, implementation, testing, and verification of large software systems. Study and use of software engineering methodologies.

Prerequisite(s): ECS 140A; extensive programming experience recommended.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 161 — Modern Programming Tools (4 units)

Course Description: Concepts and practice of collaborative software development using modern software tools.

Prerequisite(s): (ECS 040 or ECS 032B or ECS 036B).

Learning Activities: Lecture 2 hour(s), Laboratory 2 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 162 — Web Programming (4 units)

Course Description: Technical aspects of building websites, including both server-side and client-side software development.

Prerequisite(s): ECS 030 or ECS 034 or ECS 036B; or equivalent programming experience in C and the Unix environment.

Learning Activities: Lecture 3 hour(s), Laboratory 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Visual Literacy (VL).

ECS 163 — Information Interfaces (4 units)

Course Description: Art and science of information visualization and interfaces for information systems. Design principles of human-computer interaction. Visual display and navigation of nonspatial and higher dimensional data. Implementations, performance issues, tradeoffs, and evaluation of interactive information systems.

Prerequisite(s): ECS 060 or ECS 032B or ECS 036C.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Visual Literacy (VL).

ECS 164 — Human-Computer Interaction (4 units)

Course Description: Introduction to concepts and practice of modern human-computer interaction design.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to computer science and computer science & engineering students only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 165A — Database Systems (4 units)

Course Description: Database modeling and design (E/R model, relational model), relational algebra, query languages (SQL), file and index structures, query processing, transaction management.

Prerequisite(s): ECS 060 or ECS 032B or ECS 036C.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 165B — Database Systems (4 units)

Course Description: Data modeling (object-relational, graph-based, spatiotemporal models). Querying semistructured data (XML). Database theory (normalization, integration, provenance). Database programming (stored procedures, embedded SQL, web programming). Advanced topics (data warehousing, parallel data processing).

Prerequisite(s): ECS 165A; (ECS 060 or ECS 034 or ECS 036C).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 170 — Introduction to Artificial Intelligence (4 units)

Course Description: Design and implementation of intelligent computer systems. Knowledge representation and organization. Memory and inference. Problem solving. Natural language processing.

Prerequisite(s): ECS 060 or ECS 032B or ECS 036C.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science & Engineering Majors only; Pass Two open to undergraduate students only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 171 — Machine Learning (4 units)

Course Description: Introduction to machine learning. Supervised & unsupervised learning, including classification, dimensionality reduction, regression & clustering using modern machine learning methods. Applications of machine learning to other fields.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science & Engineering Majors only; Pass Two open to undergraduate students only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 172 — Recommender Systems (4 units)

Course Description: Collaborative filtering and content-based methods for building recommender systems. Statistical, matrix factorization, textual analysis, and nearest-neighbor approaches. Case studies.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science & Engineering students only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 173 — Image Processing & Analysis (4 units)

Course Description: Techniques for automated extraction of high-level information from images generated by cameras, three-dimensional surface sensors, and medical devices. Typical applications include detection of objects in various types of images and describing populations of biological specimens appearing in medical imagery.

Prerequisite(s): (MAT 067 C- or better or MAT 027A C- or better or MAT 022A C- or better); (ECS 060 or ECS 032B or ECS 036C).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 174 — Computer Vision (4 units)

Course Description: Computer vision is the study of enabling machines to "see" the visual world; e.g., understand images and videos. Explores several fundamental topics in the area, including feature detection, grouping and segmentation, and recognition.

Prerequisite(s): (ECS 060 or ECS 032B or ECS 036C); recommended (STA 032 or STA 131A or MAT 135A or EEC 161 or ECS 132); (MAT 022A or MAT 27A or MAT 067).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science and Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 175 — Computer Graphics (4 units)

Course Description: Principles of computer graphics, with a focus on interactive systems. Current graphics hardware, elementary operations in two-and three-dimensional space, geometric transformations, camera models and interaction, graphics system design, standard graphics APIs, individual projects.

Prerequisite(s): (ECS 060 or ECS 034 or ECS 036C); (MAT 022A or MAT 027A or MAT 067).

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 177 — Scientific Visualization (4 units)

Course Description: Computer graphics techniques for generating images of various types of measured or computer-simulated data. Typical applications for these graphics techniques include study of air flows around car bodies, medical data, and molecular structures.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Visual Literacy (VL).

ECS 178 — Geometric Modeling (4 units)

Course Description: Interactive graphics techniques for defining and manipulating geometrical shapes used in computer animation, car body design, aircraft design, and architectural design.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Science & Engineering (SE); Visual Literacy (VL).

ECS 179 — Gameplay Programming (4 units)

Course Description: Developing gameplay systems in the context of game design and software engineering. Aspects of technical game development that depend on the genre or details of a specific game design, thus making them difficult to abstract and engineer into game engines.

Prerequisite(s): ECS 032B or ECS 036C; extensive programming experience recommended.

Learning Activities: Lecture 2 hour(s), Lecture/Discussion 2 hour(s).
Enrollment Restriction(s): Pass One restricted to Computer Science and Computer Science & Engineering majors; Pass Two restricted to undergraduates.
Grade Mode: Letter.

ECS 188 — Ethics in an Age of Technology (4 units)

Course Description: Foundations of ethics. Views of technology. Technology and human values. Costs and benefits of technology. Character of technological change. Social context of work in computer science and engineering.

Prerequisite(s): Upper division standing.

Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
Enrollment Restriction(s): Pass One open to Computer Science Engineering Majors only; Pass Two open to Computer Science and Computer Science Engineering Majors only.
Grade Mode: Letter.
General Education: Social Sciences (SS); Scientific Literacy (SL); Writing Experience (WE).

ECS 189A — Special Topics in Computer Science: Computer Science Theory (1-5 units)

Course Description: Special topic in Computer Science Theory.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189B — Special Topics in Computer Science: Architecture (1-5 units)

Course Description: Special topic in Architecture.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189C — Special Topics in Computer Science: Programming Languages & Compilers (1-5 units)

Course Description: Special topic in Programming Languages & Compilers.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189D — Special Topics in Computer Science: Operating Systems (1-5 units)

Course Description: Special topic in Operating Systems.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189E — Special Topics in Computer Science: Software Engineering (1-5 units)

Course Description: Special topic in software engineering.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189F — Special Topics in Computer Science: Databases (1-5 units)

Course Description: Special topic Databases.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189G — Special Topics in Computer Science: Artificial Intelligence (1-5 units)

Course Description: Special topic in Artificial Intelligence.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Enrollment Restriction(s): Open to undergraduate students only.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189H — Special Topics in Computer Science: Computer Graphics (1-5 units)

Course Description: Special topic in Computer Graphics.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189I — Special Topics in Computer Science: Networks (1-5 units)

Course Description: Special topic in Networks.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189J — Special Topics in Computer Science: Computer-Aided Design (1-5 units)

Course Description: Special topic in Computer-Aided Design.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189K — Special Topics in Computer Science: Scientific Computing (1-5 units)

Course Description: Special topic in Scientific Computing.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189L — Special Topics in Computer Science: Computer Science (1-5 units)

Course Description: Special topic in Computer Science.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.
General Education: Science & Engineering (SE).

ECS 189M — Special Topics in Computer Security: Computer Security (1-5 units)

Course Description: Special topics in Computer Security.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.

ECS 189N — Special Topics in Bioinformatics & Computational Biology (1-5 units)

Course Description: Special topics in Bioinformatics & Computational Biology.

Prerequisite(s): Consent of instructor.

Learning Activities: Lecture, Laboratory, Lecture/Lab.
Repeat Credit: May be repeated when topic differs.
Grade Mode: Letter.

ECS 190C — Research Group Conferences in Computer Science (1 unit)

Course Description: Research group conferences.

Prerequisite(s): Consent of instructor. Upper division standing in Computer Science or Computer Science and Engineering.

Learning Activities: Discussion 1 hour(s).
Repeat Credit: May be repeated.
Grade Mode: Pass/No Pass only.

ECS 190X — Senior Seminar (2 units)

Course Description: Examination of a special topic in a small group setting.

Prerequisite(s): Senior standing.