Computer Science Engineering (ECS) College of Engineering

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): 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 017 — Data, Logic, & Computing (4 units)

This version has ended; see updated course, below.
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 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 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).
  • This course version is effective from, and including: Spring Quarter 2024.

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

This version has ended; see updated course, below.
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 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 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).
  • This course version is effective from, and including: Spring Quarter 2024.

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 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 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 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).

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)

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.

  • 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 036B — Software Development & Object-Oriented Programming in C++ (4 units)

This version has ended; see updated course, below.
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, 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 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).
  • This course version is effective from, and including: Winter Quarter 2024.

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

This version has ended; see updated course, below.
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 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).
  • This course version is effective from, and including: Spring Quarter 2024.

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 034 C- or better or ECS 036B 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 taken EEC 070.
  • Grade Mode: Letter.
  • General Education: Science & Engineering (SE).

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)

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).

  • 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).
  • This course version is effective from, and including: Fall Quarter 2023.

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 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).

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.

  • 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 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.

  • 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 117 — Algorithms for Data Science (4 units)

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

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

  • 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.

Prerequisite(s): ECS 116 or ECS 165A.

  • 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).
  • This course version is effective from, and including: Spring Quarter 2024.

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.

Prerequisite(s): (ECS 010 or ECS 032A or ECS 030 or ECS 036A or ENG 006); (STA 012 or STA 013 or STA 013Y or STA 032 or STA 100 or STA 131A or MAT 135A 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).
  • 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 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: Spring Quarter 2024.

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 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).

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 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).

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 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).

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.

Prerequisite(s): (ECS 040 or ECS 034 or ECS 036B); ECS 020; MAT 021C; (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); Quantitative Literacy (QL).

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 is 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).

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.

Prerequisite(s): ECS 140A.

  • 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)

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).

  • 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 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.

Prerequisite(s): ECS 150; (ECS 152A or EEC 173A).

  • 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.

Prerequisite(s): EEC 173A or ECS 152A.

  • 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.

Prerequisite(s): ECS 150; (ECS 152A or EEC 173A).

  • 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)

This version has ended; see updated course, below.
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.

Prerequisite(s): ((ECS 032B or ECS 036C); (STA 032 or STA 131A or ECS 132); (MAT 022A or MAT 027A).

  • 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.
  • Prerequisite(s): (ECS 032B or ECS 036C); (STA 032 or STA 035B or STA 100 or STA 131A or MAT 135A or EEC 161 or ECS 132); (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; Pass Two open to undergraduate students only.
  • Grade Mode: Letter.
  • General Education: Science & Engineering (SE).
  • This course version is effective from, and including: Winter Quarter 2024.

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.

Prerequisite(s): (ECS 032B or ECS 036B or ECS 040); (ECS 132 or STA 130A or STA 131A or ECN 140); (MAT 022A or MAT 027A or MAT 067).

  • 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.

Prerequisite(s): ECS 175.

  • 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.

Prerequisite(s): ECS 175.

  • 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.
  • This course version is effective from, and including: Winter Quarter 2024.

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.

  • Learning Activities: Seminar 2 hour(s).
  • Grade Mode: Letter.

ECS 191 — Software Design Project (4 units)

Course Description: Student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. Project proposed and supervised by a faculty member.

Prerequisite(s): ECS 160.

  • Learning Activities: Lecture 2 hour(s), Lecture/Discussion 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 192 — Internship in Computer Science (1-5 units)

Course Description: Supervised work experience in computer science.

Prerequisite(s): Completion of a minimum of 84 units; project approval prior to period of internship.

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

ECS 193A — Capstone Project (3 units)

This version has ended; see updated course, below.
Course Description: Responding to real-life client design challenges, student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. Project supervised by a faculty member. Must take ECS 193A & ECS 193B to receive credit.

Prerequisite(s): ECS 160 (can be concurrent); upper division standing in Computer Science or Computer Science Engineering; or consent of instructor.

  • Learning Activities: Lecture/Discussion 3 hour(s).
  • Enrollment Restriction(s): Pass One restricted to Computer Science Engineering majors; Pass Two restricted to Computer Science Engineering and Computer Science majors.
  • Grade Mode: Letter.
  • General Education: Science & Engineering (SE).
  • ECS 193A — Capstone Project (3 units)
  • Course Description: Responding to real-life client design challenges, student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. Project supervised by a faculty member. Must take ECS 193A & ECS 193B to receive credit.
  • Prerequisite(s): ECS 160 (can be concurrent); ECS 150; upper division standing in Computer Science or Computer Science & Engineering; or consent of instructor.
  • Learning Activities: Lecture/Discussion 3 hour(s).
  • Enrollment Restriction(s): Pass One restricted to Computer Science Engineering majors; Pass Two restricted to Computer Science Engineering and Computer Science majors.
  • Grade Mode: Letter.
  • General Education: Science & Engineering (SE).
  • This course version is effective from, and including: Summer Session 1 2024.

ECS 193B — Capstone Project (3 units)

Course Description: Responding to real-life client design challenges, student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. Project supervised by a faculty member. Must take ECS 193A & ECS 193B to receive credit.

Prerequisite(s): ECS 193A IP or better.

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

ECS 197T — Tutoring in Computer Science (1-3 units)

Course Description: Tutoring in computer science courses, especially introductory courses.

Prerequisite(s): Consent of instructor.

  • Learning Activities: Discussion 1 hour(s), Discussion/Laboratory 3-6 hour(s).
  • Enrollment Restriction(s): Restricted to upper division standing.
  • Grade Mode: Pass/No Pass only.

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

Course Description: Directed group study.

Prerequisite(s): Consent of instructor.

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

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

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

Prerequisite(s): Consent of instructor.

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

ECS 199 — Special Study for Advanced Undergraduates (1-5 units)

Course Description: Special study for advanced undergraduates.

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

ECS 199FA — Student Facilitated Course Development (1-4 units)

Course Description: Under the supervision of a faculty member, an undergraduate student plans and develops the course they will offer under 098F/198F.

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

ECS 199FB — Student Facilitated Teaching (1-4 units)

Course Description: STU FAC. Under the supervision of a faculty member, an undergraduate student teaches a course under 098F/198F.

Prerequisite(s): ECS 199FA; consent of instructor.

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

ECS 201A — Advanced Computer Architecture (4 units)

Course Description: Modern research topics and methods in computer architecture. Design implications of memory latency and bandwidth limitations. Performance enhancement via within-processor and between-processor parallelism.

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

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Credit Limitation(s): One unit of credit if student has previously taken ECS 154B after Fall 2019.
  • Grade Mode: Letter.

ECS 201B — High-Performance Uniprocessing (4 units)

Course Description: Maximizing uniprocessor performance. Barriers to high performance; solutions to the problems; historical and current processor designs.

Prerequisite(s): ECS 201A.

  • Learning Activities: Lecture 3 hour(s), Term Paper.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Credit Limitation(s): Not open for credit to students who have completed ECS 250B.
  • Grade Mode: Letter.

ECS 201C — Parallel Architectures (4 units)

Course Description: Evolution of parallel architectures from special-purpose machines to commodity servers. Emphasis on recent machines and applications that drive them.

Prerequisite(s): ECS 201A.

  • Learning Activities: Lecture 3 hour(s), Project.
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Credit Limitation(s): Not open for credit to students who have completed ECS 250C.
  • Grade Mode: Letter.

ECS 203 — Novel Computing Technologies (4 units)

Course Description: Novel computing technologies that could revolutionize computer architecture. Quantum computing technologies, including algorithms, devices, and fault tolerance. A survey of other unconventional technologies including nanoscale electronics, MEMS devices, biological devices, and nanotechnology.

Prerequisite(s): ECS 201A.

  • Learning Activities: Lecture 3 hour(s), Project 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 220 — Theory of Computation (4 units)

Course Description: Time and space complexity classes. Reductions, completeness, and the role of randomness. Logic and undecidability.

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

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 221 — Computational Methods in Systems & Synthetic Biology (4 units)

Course Description: Computational methods related to systems and synthetic biology. An overview of machine learning techniques related to the analysis of biological data, biological networks. Predictive modeling and simulation of biological systems. Topics on biological circuit construction.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 222A — Design & Analysis of Algorithms (4 units)

Course Description: Techniques for designing efficient algorithms, analyzing their complexity and applying these algorithms to a broad range of applications. Methods for recognizing and dealing with difficult problems.

Prerequisite(s): ECS 122A; STA 031A recommended.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Pass One open to PhD students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 222B — Advanced Design & Analysis of Algorithms (4 units)

Course Description: Advanced topics in complexity theory. Problem classification. The classes P, NP, P-space, co-NP. Matching and network flow algorithms. Matrix multiplication. Approximation algorithms.

Prerequisite(s): ECS 222A.

  • Learning Activities: Lecture 3 hour(s), Project 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 223 — Parallel Algorithms (4 units)

Course Description: Models of parallel computer systems including PRAMs, loosely coupled systems and interconnection networks. Parallel algorithms for classical problems and general techniques for their design and analysis. Proving lower bounds on parallel computation in several settings.

Prerequisite(s): ECS 222A.

  • Learning Activities: Discussion/Laboratory 3 hour(s), Project 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 224 — String Algorithms & Applications in Computational Biology (4 units)

Course Description: Algorithms that operate on strings. Pattern matching, sets of patterns, regular expression pattern matching, suffix trees and applications, inexact similarity, parametric sequence alignment, applications to DNA sequencing and protein database searching.

Prerequisite(s): ECS 122A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 225 — Graph Theory (4 units)

Course Description: Fundamental concepts. Planar graphs: Kuratowski's theorem. Packings and coverings. Menger's theorem, representation of cuts, Hamilton graphs, rigid graphs, chordal graphs, graph coloring, graph isomorphism, applications and some algorithms.

Prerequisite(s): graduate standing in electrical engineering or computer science or consent of instructor.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 226 — Computational Geometry (4 units)

Course Description: Mathematics of unstructured data. Algorithms for data structures such as Voronoi diagrams, oct-trees, and arrangements. Applications in computer graphics, concentrating on problems in three-dimensions.

Prerequisite(s): ECS 175; ECS 222A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 227 — Modern Cryptography (4 units)

Course Description: Modern cryptography as a discipline emphasizing formal definitions and proofs of security. One-way functions, pseudo-randomness, encryption, digital signatures, zero-knowledge, secure protocols.

Prerequisite(s): ECS 220 or ECS 222A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 228 — Cryptograpy for E-Commerce (4 units)

Course Description: Cryptographic primitives and protocols of importance to e-commerce, present and future, including content distribution mechanisms, payment mechanisms, pricing mechanisms, anonymity and privacy mechanisms, fair exchange mechanisms.

Prerequisite(s): ECS 222A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 229 — Advanced Computational Structural Bioinformatics (4 units)

Course Description: Algorithmic problems in structural biology; protein structure classification; protein structure prediction (including comparative modeling and ab initio protein structure prediction); molecular simulations (molecular dynamics and Monte Carlo simulations).

Prerequisite(s): Graduate standing.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 230 — Applied Numerical Linear Algebra (4 units)

Course Description: Numerical linear algebra (NLA) with emphasis on applications in engineered systems; matrix factorizations; perturbation and rounding error analyses of fundamental NLA algorithms.

Prerequisite(s): ECS 130 or EAD 209 or MAT 167.

  • Learning Activities: Discussion/Laboratory 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 231 — Large-Scale Scientific Computation (4 units)

Course Description: Algorithms and techniques for large-scale scientific computation, including basics for high performance computing, iterative methods, discrete approximation, fast Fourier transform, Poisson solvers, particle methods, spectral graph partition and its applications.

Prerequisite(s): ECS 130.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 232 — Theory of Molecular Computation (4 units)

Course Description: Theory of chemical reaction networks, molecular circuits, DNA self-assembly, DNA sequence design and thermodynamic energy models, and connections to the field of distributed computing.

Prerequisite(s): ECS 120 or ECS 220 recommended; probability course recommended, for example ECS 132 or MAT 135A or STA 012 or STA 131A or MAT 131A; or consent of instructor.

  • Learning Activities: Lecture 3 hour(s), Project.
  • Enrollment Restriction(s): Pass One restricted to graduate students in Computer Science; Pass Two restricted to graduate students.
  • Grade Mode: Letter.

ECS 234 — Computational Functional Genomics (4 units)

Course Description: Bioinformatics methods for analysis and inference of functional relationships among genes using large-scale genomic data, including methods for integration of gene expression, promoter sequence, TF-DNA binding and other data, and approaches in modeling of biological networks.

Prerequisite(s): ECS 124; graduate standing in Computer Science or Life Sciences.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 235A — Computer & Information Security (4 units)

Course Description: Modern topics in computer security, including: protection, access control, operating systems security, network security, applied cryptography, cryptographic protocols, secure programming practices, safe languages, mobile code, malware, privacy and anonymity, and case studies from real-world systems.

Prerequisite(s): ECS 150; ECS 152A recommended.

  • Learning Activities: Lecture 3 hour(s), Project.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Credit Limitation(s): Not open for credit to students who have taken ECS 235.
  • Grade Mode: Letter.

ECS 235B — Foundations of Computer & Information Security (4 units)

Course Description: Theoretical foundations of methods used to protect data in computer and communication systems. Access control matrix and undecidability of security; policies; Bell-LaPadula, Biba, Chinese Wall models; non-interference and non-deducibility; information flow and the confinement problem.

Prerequisite(s): ECS 235A; ECS 120 and ECS 150 recommended.

  • Learning Activities: Lecture 3 hour(s), Project.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Credit Limitation(s): Not open for credit to students who have taken ECS 235.
  • Grade Mode: Letter.

ECS 236 — Computer Security: Intrusion Detection Based Approach (4 units)

Course Description: Concepts of intrusion detection, anomaly detection based on machine learning, signature-based detection using pattern matching, automated response to attacks using artificial intelligence planning, tracing intruders based on principal component analysis, security policy languages.

Prerequisite(s): ECS 150; ECS 153 recommended.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 240 — Programming Languages (4 units)

Course Description: Advanced topics in programming languages, including formal syntax and semantics, the relation between formal semantics and verification, an introduction to the lambda calculus. Additional topics will include language design principles, alternative programming languages, in-depth semantic theory and models of language implementation.

Prerequisite(s): ECS 140A; ECS 142.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 242 — Translation of Programming Languages (4 units)

Course Description: Lexical analysis, parsing, storage management, symbol table design, semantic analysis and code generation. LR, LALR grammars. Compilercompilers.

Prerequisite(s): ECS 240.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 243 — Code Generation & Optimization (4 units)

Course Description: Compiler optimizations for performance, code size and power reduction. Topics include control- and data-flow analysis, redundancy elimination, loop and cache optimizations, register allocation, local and global instruction scheduling, and modulo scheduling.

Prerequisite(s): ECS 201A or EEC 270.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 244 — Principles of Concurrent Programming (4 units)

Course Description: Fundamental concepts and applications of concurrent programs; concurrent program verification and derivation; synchronization mechanisms in programming languages; distributed programming techniques; case studies of languages.

Prerequisite(s): ECS 020; ECS 150.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 245 — Analysis of Software Artifacts (4 units)

Course Description: Techniques for the analysis of software artifacts, including source code, build processes, test suites, bug reports and documentation with a special emphasis on software correctness and performance in real-world settings.

Prerequisite(s): ECS 140A; ECS 142.

  • Learning Activities: Lecture 3 hour(s), Project.
  • Enrollment Restriction(s): Pass One restricted to PhD students in Computer Science; Pass Two restricted to Graduate Students in Computer Science.
  • Grade Mode: Letter.
  • This course version is effective from, and including: Fall Quarter 2023.

ECS 247 — Concurrent Programming Languages (4 units)

Course Description: Language design parameters. Models of parallel machines. Load balancing. Scalability. Portability. Efficiency measures. Design and implementation techniques for several classes of concurrent programming languages (such as object-oriented, functional, logic, and constraint programming languages).

Prerequisite(s): ECS 140A; ECS 150.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 251 — Operating Systems (4 units)

Course Description: Models, design, implementation, performance evaluation in operating systems. Algorithms, internal architectures for single processor OS and distributed systems. Concurrency control, recovery, security. OS kernel-level programming. Special topics embedded systems, real-time system, device driver, NPU (Network Processor Unit).

Prerequisite(s): ECS 150.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 252 — Computer Networks (4 units)

Course Description: Internet protocol based computer networks applications, transport, network layer protocols. High speed LAN technologies: Ethernet, Asynchronous Transfer Mode (ATM). Delay models in data networks: analysis of multiaccess techniques in polling, ring, random access networks. Multimedia applications requirements and design.

Prerequisite(s): ECS 152B.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 253 — Network Theory & Applications (4 units)

Course Description: Develops the mathematical theory underlying growth, structure and function of networks with applications to physical, social, biological and engineered systems. Topics include network growth, resilience, epidemiology, phase transitions, software and algorithms, routing and search control, cascading failures.

Prerequisite(s): MAT 022A; MAT 022B; (STA 013 or STA 013Y or STA 120); experience with computer software, or consent of instructor.

  • Learning Activities: Lecture/Discussion 4 hour(s).
  • Cross Listing: MAE 253.
  • Grade Mode: Letter.

ECS 255 — Resource Management in Wireless Communication Networks (4 units)

Course Description: Advanced research issues in wireless communication networks, including multi-user diversity and cross-layer optimization, basic network information theory, MIMO systems and the impact on networks, and dynamics spectrum management.

Prerequisite(s): ECS 252A recommended.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 256 — Probability Models for Computer Science (4 units)

Course Description: Probabilistic and statistical models useful in computer/data science. Applications to networks, bioinformatics, database management, machine learning, software engineering and image processing.

Prerequisite(s): A calculus-based course in probability, such as ECS132, STA 131A, or EEC 161; programming skills and familiarity with matrix algebra.

  • Learning Activities: Lecture 3 hour(s), Project, Extensive Problem Solving.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Credit Limitation(s): Not open for credit to students who have completed ECS 256A.
  • Grade Mode: Letter.

ECS 257 — Mobile & Wireless Networks (4 units)

Course Description: Fundamental techniques in design of second generation wireless networks: cellular network and protocols, medium access techniques, handoff control, signaling and mobility management, wireless data works, Internet mobility and Personal Communication Services (PCS). Third generation wideband systems, novel technologies, adhoc networks.

Prerequisite(s): ECS 252.

  • Learning Activities: Lecture 3 hour(s), Independent Study 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 259 — Optical Networks (4 units)

Course Description: Optical networks. Enabling technologies. Multiplexing techniques. WDM. Broadcast networks. Wavelength-routed networks. Network architectures. Protocols. Network algorithms. Device-network interface. Optimization problems.

Prerequisite(s): ECS 252.

  • Learning Activities: Lecture 3 hour(s), Independent Study 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 260 — Software Engineering (4 units)

Course Description: Advanced techniques for domain-specific software reuse.

Prerequisite(s): ECS 142; ECS 160 recommended.

  • Learning Activities: Lecture 3 hour(s), Project 3 hour(s).
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 261 — Program Verification (4 units)

Course Description: Methods of proving correctness of programs with respect to formal specifications, with attention to those suited for employing automated deduction.Logic background, symbolic execution, techniques suited to iterative programming, methods from denotational semantics, termination, dynamic logic and proofs of concurrent programs.

Prerequisite(s): PHI 112; or MAT 125 or familiarity with first-order logic; knowledge of an integrative and functional programming language.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 262 — Formal Specification (3 units)

Course Description: Formal specification of modules, and its relationship to topdown programming development and verification. Abstract data types, together with methods for specifying them. Implementations and proofs of implementation. Using specifications to reason about programs. Parameterized types. Constructing good formal specifications.

Prerequisite(s): ECS 261.

  • Learning Activities: Lecture 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 265 — Distributed Database Systems (4 units)

Course Description: Concepts of distributed database systems and architectures, distributed database design, distributed query processing and optimization, transaction management and concurrency control, heterogeneous and multidatabase systems.

Prerequisite(s): ECS 165A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 266 — Spatial Databases (4 units)

Course Description: Concepts, models, and architectures for spatial databases, spatial access methods, query processing, spatio-temporal data management, moving objects, spatial data mining.

Prerequisite(s): ECS 165A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 267 — Wide-Area Distributed Information Systems (4 units)

Course Description: Wide-area distributed information systems, data broadcast, multicast, publish/subscribe, service differentiation, information retrieval, Web caching.

Prerequisite(s): ECS 152B or ECS 165A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 268 — Scientific Data & Workflow Management (4 units)

Course Description: Scientific data integration, metadata, knowledge representation, ontologies, scientific workflow design and management.

Prerequisite(s): ECS 165A.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 269 — Visual Recognition (4 units)

Course Description: Graduate seminar course on computer vision with an emphasis on object recognition, activity recognition, and scene understanding.

Prerequisite(s): ECS 171 or ECS 174; or equivalent.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 270 — Artificial Intelligence (3 units)

Course Description: Concepts and techniques underlying the design and implementation of models of human performance on intelligent tasks. Representation of high-level knowledge structures. Models of memory and inference. Natural language and story understanding. Common sense planning and problem solving.

Prerequisite(s): ECS 140A; ECS 172 recommended.

  • Learning Activities: Lecture 3 hour(s).
  • Enrollment Restriction(s): Pass One open to Ph.D. students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 271 — Machine Learning & Discovery (4 units)

Course Description: Artificial intelligence techniques for knowledge acquisition by computers. Fundamental problems in machine learning and discovery. Systems that learn from examples, analogies, and solved problems. Systems that discover numerical laws and qualitative relationships. Projects centering on implementation and evaluation.

Prerequisite(s): ECS 170.

  • Learning Activities: Lecture 3 hour(s), Project 1 hour(s).
  • Enrollment Restriction(s): Pass One open to PhD students in Computer Science only and Pass Two open to graduate students in Computer Science only.
  • Grade Mode: Letter.

ECS 272 — Information Visualization (4 units)

Course Description: Advanced topics in information visualization: perceptually effective display methods, color design and selection, interaction models and techniques, focus-context techniques, distortion methods, large graph visualization techniques, visual data mining methods, and evaluation methods.

Prerequisite(s): ECS 163 or ECS 175 recommended.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 273 — Visual Analytics (4 units)

Course Description: Analytical reasoning using visual means, data and visual transformations, exploratory visualization, explanatory visualization, interactive intelligent systems, qualitative and quantitative evaluation.

Prerequisite(s): Graduate standing.

  • Learning Activities: Lecture 3 hour(s), Project.
  • Enrollment Restriction(s): Pass One restricted to graduate students in Computer Science only; Pass Two restricted to graduate students only.
  • Grade Mode: Letter.

ECS 274 — Automated Deduction (4 units)

Course Description: Techniques of mechanical theorem proving. Methods based on resolution and termrewriting. Decision procedures. Induction. Applications to program verification, question/answering and plan generation. Study existing mechanical theorem provers.

Prerequisite(s): PHI 112; or MAT 125 or familiarity with first order logic.

  • Learning Activities: Lecture 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 275A — Advanced Computer Graphics (4 units)

Course Description: Advanced topics in computer graphics. Hidden surface models, rendering of various surface types, subdivision methods, shading techniques, anti-aliasing, modeling techniques.

Prerequisite(s): ECS 175 or ECS 177 or ECS 178.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 275B — Advanced Computer Graphics (4 units)

Course Description: Advanced topics in computer graphics and geometric modeling. Topics taken from advanced research papers in computer graphics, image synthesis, visualization and geometric modeling. Discussion of current research in the field.

Prerequisite(s): ECS 175 or ECS 177 or ECS 178.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 276 — Advanced Volume Visualization (4 units)

Course Description: Applications, available tools and techniques, the challenges confronting the field of volume visualization, and some of the advanced topics in the field. Primary emphasis on advanced software and hardware techniques to achieve interactive visualization.

Prerequisite(s): ECS 177.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 277 — Advanced Visualization (4 units)

Course Description: Visualization of 3D data, including scalar fields, vector fields, and medical data.

Prerequisite(s): ECS 177.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 278 — Computer-Aided Geometric Design (4 units)

Course Description: Mathematical techniques for the definition and manipulation of curves and surfaces. Bezier curves and surfaces, B-spline curves and surfaces, subdivision surfaces, wavelets. Integration into various computer graphics rendering models, visualization systems and computer-aided design systems.

Prerequisite(s): ECS 175.

  • Learning Activities: Lecture 3 hour(s), Laboratory 3 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 279 — Computer Animation (4 units)

Course Description: Surveys current research and fundamental techniques that lie behind character animation tools. Emphasis on improving expressive aspects of movement and how physics, motion capture data, the arts and psychology literature, and interactive techniques can be used towards this goal.

Prerequisite(s): ECS 175; or ECS 275.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 280 — Virtual Reality Technology (4 units)

Course Description: Fundamentals and principles of Virtual Reality (VR) technology. Potential and limits for its useful application. Developing a complete virtual reality application.

Prerequisite(s): ECS 175.

  • Learning Activities: Lecture 3 hour(s), Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Letter.

ECS 289A — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289B — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289C — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289D — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289E — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

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

Course Description: Special topic in Databases.

Prerequisite(s): Consent of instructor.

  • Learning Activities: Lecture, Laboratory, Lecture/Lab.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289G — 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 Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289H — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289I — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289J — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289K — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 289L — 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.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

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

Course Description: Special topic in Security.

Prerequisite(s): Consent of instructor.

  • Learning Activities: Lecture, Laboratory, Lecture/Lab.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

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

Course Description: Special topic in Bioinformatics & Computational Biology.

Prerequisite(s): Consent of instructor.

  • Learning Activities: Lecture, Laboratory, Lecture/Lab.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated when topic differs.
  • Grade Mode: Letter.

ECS 290 — Seminar in Computer Science (1 unit)

Course Description: Participating seminar; discussion and presentation of current research and development in computer science.

  • Learning Activities: Seminar 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 290C — Graduate Research Group Conference (1 unit)

Course Description: Research problems, progress and techniques in computer science.

  • Learning Activities: Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 293A — Research in Computer Science (1 unit)

Course Description: Study of research topics in computer science, Ph.D. level research methodologies (experimental, applied and theoretical). Study skills necessary to successfully find/solve significant research problems. Finding and successful interacting with a research advisor. Ethical issues in research/collaborative work.

Prerequisite(s): Graduate standing in computer science.

  • Learning Activities: Lecture 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 293B — Research in Computer Science (1 unit)

Course Description: Study of Ph.D. level research methodologies (experimental, applied and theoretical), presenting research results for the computer science community. Study skills necessary to successfully find/solve significant research problems.

Prerequisite(s): Graduate standing in computer science; ECS 293A recommended.

  • Learning Activities: Lecture 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 298 — Group Study (1-5 units)

Course Description: Group study.

Prerequisite(s): Consent of instructor.

  • Learning Activities: Lecture, Laboratory, Lecture/Lab.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 299 — Research (1-12 units)

Course Description: Research.

  • Learning Activities: Variable.
  • Enrollment Restriction(s): Open to all Graduate Students.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 390 — The Teaching of Computer Science (1 unit)

Course Description: Participation as a teaching assistant or associate-in in a designated engineering course. Methods of leading discussion groups or laboratory sections, writing and grading quizzes, use of laboratory equipment, and grading laboratory reports.

Prerequisite(s): Meet qualifications for teaching assistant and/or associate-in in Computer Science.

  • Learning Activities: Discussion 1 hour(s).
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated.
  • Grade Mode: Satisfactory/Unsatisfactory only.

ECS 396 — Teaching Assistant Training Practicum (1-4 units)

Course Description: Teaching assistant training practicum.

Prerequisite(s): Graduate standing.

  • Learning Activities: Variable.
  • Enrollment Restriction(s): Open to Graduate Students in Computer Science only.
  • Repeat Credit: May be repeated.
  • Grade Mode: Pass/No Pass only.