Computer Science; Letters & Science

(College of Letters and Science)

Matthew Farrens, Ph.D., Chairperson of the Department

Department Office. 2063 Kemper Hall; 530-752-7004; http://www.cs.ucdavis.edu

Faculty. http://www.cs.ucdavis.edu/people/faculty/

(College of Letters and Science)

Matthew Farrens, Ph.D., Chairperson of the Department

Department Office. 2063 Kemper Hall; 530-752-7004; http://www.cs.ucdavis.eduhttp://www.cs.ucdavis.edu

Faculty. http://www.cs.ucdavis.edu/people/faculty/

The Major Program

The Department of Computer Science administers two majors: Computer Science and Engineering (CSE), in the College of Engineering, and Computer Science (CS), in the College of Letters and Science. It also administers two minors: Computer Science, in the College of Letters and Science, and Computational Biology, in the College of Engineering. For information on the Computer Science and Engineering curriculum and the minor in Computational Biology, see Engineering: Computer Science, on page 290Engineering: Computer Science.

The primary differences between the CSE and CS majors are the extent of hardware coverage and curricular flexibility. The CSE major develops a solid understanding of the entire machine, including hands-on experience with its hardware components. The CS major teaches some hardware, at the digital-design level, on simulators. The CSE major has fewer free electives. The CS major's more generous electives make it easier to complete a minor or double major.

Students in the CS major receive a solid grounding in the fundamentals of computer languages, operating systems, computer architecture, and the mathematical abstractions underpinning computer science. Students are prepared for both industry and postgraduate study.

Major Advisors. M. Farrens, V. Filkov, D. Ghosal, P. Koehl, N. Matloff, M. Neff, P. Koehl, P. Rogaway

Graduate Study. See Graduate Studies.
Preparatory Requirements
Units: 17-20
Before declaring a major in Computer Science, students must complete the following courses with an overall UC Davis grade point average of at least 3.000; a grade of C- or better required in all courses:
 
MAT 021A
Calculus (Active)
4
MAT 021B
Calculus (Active)
4
ECS 020
Discrete Mathematics For Computer Science (Active)
4
Choose one option:
5-8
(a)
8
ECS 030
Programming and Problem Solving (Discontinued)
4
or
ECS 036A
Programming and Problem Solving (Active)
4
ECS 040
Software Development and Object-Oriented Programming (Discontinued)
4
or
ECS 036B
Software Development and Object-Oriented Programming in C++ (Active)
4
(b)
5
ECS 034
Software Development in UNIX and C/C++ (Active)
5
Preparatory Subject Matter
Units: 50-51
MAT 021A
Calculus (Active)
4
MAT 021B
Calculus (Active)
4
MAT 021C
Calculus (Active)
4
MAT 022A
Linear Algebra (Active)
3
or
MAT 067
Modern Linear Algebra (Active)
4
ECS 020
Discrete Mathematics For Computer Science (Active)
4
ECS 030
Programming and Problem Solving (Discontinued)
4
or
ECS 036A
Programming and Problem Solving (Active)
4
ECS 040
Software Development and Object-Oriented Programming (Discontinued)
4
or
ECS 036B
Software Development and Object-Oriented Programming in C++ (Active)
4
ECS 060
Data Structures and Programming (Discontinued)
4
or
ECS 036C
Data Structures, Algorithms, and Programming (Active)
4
ECS 050
Computer Organization and Machine-Dependent Programming (Active)
4
or
EEC 070
Computer Structure and Assembly Language (Discontinued)
4
Choose three from the following:
15
BIS 002A
Introduction to Biology: Essentials of Life on Earth (Active)
5
BIS 002B
Introduction to Biology: Principles of Ecology and Evolution (Active)
5
BIS 002C
Introduction to Biology: Biodiversity and the Tree of Life (Active)
5
CHE 002A
General Chemistry (Active)
5
CHE 002B
General Chemistry (Active)
5
CHE 002C
General Chemistry (Active)
5
CHE 002AH
Honors General Chemistry (Active)
5
CHE 002BH
Honors General Chemistry (Active)
5
CHE 002CH
Honors General Chemistry (Active)
5
PHY 009A
Classical Physics (Active)
5
PHY 009B
Classical Physics (Active)
5
PHY 009C
Classical Physics (Active)
5
Depth Subject Matter
Units: 50-55
ECS 122A
Algorithm Design and Analysis (Active)
4
ECS 120
Theory of Computation (Active)
4
or
ECS 122B
Algorithm Design and Analysis (Active)
4
ECS 140A
Programming Languages (Active)
4
ECS 150
Operating Systems and System Programming (Active)
4
ECS 154A
Computer Architecture (Active)
4
ECS 132
Probability and Statistical Modeling for Computer Science (Active)
4
or
MAT 135A
Probability (Active)
4
or
STA 131A
Introduction to Probability Theory (Active)
4
Computer Science electives:
26-31
Choose a minimum of seven courses, including at least one mathematics or statistics course:
 
ECS 120-189 inclusive; ECS 193AB (counts as one); one approved 3–5 units course from ECS 192 or 199; ECN 122; EEC 100, 171, 172, 180A, 180B; LIN 127, 177; MAT 100-189, excluding MAT 111; STA 131A, 131B, 141B, 141C; PSC 120.
 
No course can count as both a required course and a Computer Science elective.
 
Total: 100-106

(College of Letters and Science)

Matthew Farrens, Ph.D., Chairperson of the Department

Department Office. 2063 Kemper Hall; 530-752-7004; http://www.cs.ucdavis.edu

Faculty. http://www.cs.ucdavis.edu/people/faculty/

The Major Program

The Department of Computer Science administers two majors: Computer Science and Engineering (CSE), in the College of Engineering, and Computer Science (CS), in the College of Letters and Science. It also administers two minors: Computer Science, in the College of Letters and Science, and Computational Biology, in the College of Engineering. For information on the Computer Science and Engineering curriculum and the minor in Computational Biology, see Engineering: Computer Science.

The primary differences between the CSE and CS majors are the extent of hardware coverage and curricular flexibility. The CSE major develops a solid understanding of the entire machine, including hands-on experience with its hardware components. The CS major teaches some hardware, at the digital-design level, on simulators. The CSE major has fewer free electives. The CS major's more generous electives make it easier to complete a minor or double major.

Students in the CS major receive a solid grounding in the fundamentals of computer languages, operating systems, computer architecture, and the mathematical abstractions underpinning computer science. Students are prepared for both industry and postgraduate study.

Computer Science
Units: 19-22
Choose any three upper-division Computer Science Engineering courses; a single approved course of three to five units from ECS 192 or 199 is allowed.
11-12
Choose any two upper division courses including any upper division Computer Science and Engineering courses or any upper division course in MAT (excluding MAT 111), EEC 100, 171, 172, 180A, 180B; ECN 122; STA 131A, 131B, 141B, 141C; PSC 120 or LIN 127, 177.
8-10
Total: 19-22
Courses in ECS:
ECS 010Introduction to Programming (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Two years of high school algebra. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, Electrical Engineering Majors only. Hands-on introduction to computation, through programming and problem solving. Two units of credit for students who have taken course 12 or Engineering 6. Not open to students who have completed course 30. (Letter.) GE credit: QL, SE, SL. Effective: 2016 Fall Quarter.
ECS 010Introduction to Programming (4) Review all entries Discontinued
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Two years of high school algebra. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, Electrical Engineering Majors only. Hands-on introduction to computation, through programming and problem solving. Two units of credit for students who have taken course 12 or Engineering 6. Not open to students who have completed course 30. (Letter.) GE credit: QL, SE, SL. Effective: 2018 Fall Quarter.
ECS 012Introduction to Media Computation (4) Active
Lecture—3 hour(s); Discussion/Laboratory—1 hour(s). 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. Two units of credit for students that have taken ECS 010 or ECS 030 or ENG 006. (Same course as CTS 012.) (Letter.) GE credit: AH, SE, VL. Effective: 2015 Spring Quarter.
ECS 015Introduction to Computers (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Computer uses in modern society. Emphasis on uses in non-scientific disciplines. Includes word processing, spreadsheets, web-page creation, elementary programming, basic computer organization, the Internet, the uses of computers and their influence on society. Course not intended for CS or CSE majors. Only two units of credit allowed to students who have completed PLS 021; not open for credit to students who have completed ECS 030. (Letter.) GE credit: QL, SE, WE. Effective: 2013 Fall Quarter.
ECS 020Discrete Mathematics For Computer Science (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): MAT 016A C- or better or MAT 017A C- or better or MAT 021A C- or better. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. 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. (Letter.) GE credit: QL, SE. Effective: 2017 Winter Quarter.
ECS 030Programming and Problem Solving (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): MAT 016A (can be concurrent) or MAT 017A (can be concurrent) or MAT 021A (can be concurrent); Prior experience with basic programming concepts (variable, loops, conditional statements) recommended. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science Majors only. Introduction to computers and computer programming, algorithm design, and debugging. Elements of good programming style. Programming in the C language. Use of basic UNIX tools. (Letter.) GE credit: QL, SE. Effective: 2017 Spring Quarter.
ECS 030Programming and Problem Solving (4) Review all entries Discontinued
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): MAT 016A (can be concurrent) or MAT 017A (can be concurrent) or MAT 021A (can be concurrent); Prior experience with basic programming concepts (variable, loops, conditional statements) recommended. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science Majors only. Introduction to computers and computer programming, algorithm design, and debugging. Elements of good programming style. Programming in the C language. Use of basic UNIX tools. (Letter.) GE credit: QL, SE. Effective: 2018 Fall Quarter.
ECS 032AIntroduction to Programming (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Not open to students who have completed ECS 036A. Introduction to programming and problem solving in Python. Aimed primarily at non-major students. No credit to students who completed previous ECS 010, ECS 030 or higher. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 032BIntroduction to Data Structures (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). 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. Design and analysis of data structures using Python; trees, heaps, searching, sorting, and graphs. No credit to students who completed ECS 036C or ECS 060 or higher. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 034Software Development in UNIX and C/C++ (5) Active
Lecture—3 hour(s); Discussion—1 hour(s); Extensive Problem Solving. Prerequisite(s): ECS 032B C- or better; or Consent of Instructor. UNIX Operating system tools and programming environment. Methods for debugging and verification. Principles of C and object-oriented programming in C++. Extensive programming. Only three units of credit for students who have previously taken ECS 036B. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 036AProgramming and Problem Solving (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Prior experience with basic programming concepts (variable, loops, conditional statements) required; must satisfy computer science placement exam, or C- or better in ECS 32A. Pass One restricted to Computer Science, Computer Science and Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science majors only. Computers and computer programming for students with some prior experience, algorithm design, and debugging. Good programming style. Use of basic UNIX tools. Two units if completed ECS 032A; no credit for students who have completed ECS 032B or previous course ECS 030. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 036AProgramming and Problem Solving (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Prior experience with basic programming concepts (variable, loops, conditional statements) required; must satisfy computer science placement exam, or C- or better in ECS 32A or ECS 10. Pass One restricted to Computer Science, Computer Science and Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science majors only. Computers and computer programming for students with some prior experience, algorithm design, and debugging. Good programming style. Use of basic UNIX tools. Two units if completed ECS 032A; no credit for students who have completed ECS 032B or previous course ECS 030. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 036BSoftware Development and Object-Oriented Programming in C++ (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 030 C- or better or ECS 036A C- or better. Pass One restricted to Computer Science, Computer Science and Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science majors only. Object-oriented programming in C++. Basic data structures and their use. Writing good programs of increased complexity and efficiency. Methods for debugging and verification. Not open for credit to students who have taken ECS 034, previous course ECS 040 or ECS 060. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 036CData Structures, Algorithms, and Programming (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040 C- or better or ECS 036B C- or better. Pass One restricted to Computer Science, Computer Science and Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science majors only. Design and analysis of data structures for a variety of applications; trees, heaps, searching, sorting, hashing, and graphs. Extensive programming. Not open for credit to students who have taken ECS 032B or previous ECS 060. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 036CData Structures, Algorithms, and Programming (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 040 C- or better or ECS 036B C- or better); ECS 020 C- or better. Pass One restricted to Computer Science, Computer Science and Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science majors only. Design and analysis of data structures for a variety of applications; trees, heaps, searching, sorting, hashing, and graphs. Extensive programming. Not open for credit to students who have taken ECS 032B or previous ECS 060. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 040 Software Development and Object-Oriented Programming (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 030 C- or better; Or equivalent. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science Majors only. Elements of program design, style, documentation, efficiency. Methods for debugging and verification. Operating system tools. Principles and use of object-oriented programming in C++. Basic data structures and their use. (Letter.) GE credit: SE. Effective: 2018 Winter Quarter.
ECS 040 Software Development and Object-Oriented Programming (4) Review all entries Discontinued
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 030 C- or better; Or equivalent. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, Electrical Engineering, and Cognitive Science Majors only. Elements of program design, style, documentation, efficiency. Methods for debugging and verification. Operating system tools. Principles and use of object-oriented programming in C++. Basic data structures and their use. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 050Computer Organization and Machine-Dependent Programming (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040 C- or better. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. 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. Only one unit of credit allowed for students who have taken EEC 070. (Letter.) GE credit: SE. Effective: 2017 Winter Quarter.
ECS 050Computer Organization and Machine-Dependent Programming (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040 C- or better or ECS 032B C- or better or ECS 036B C- or better. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. 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. Only one unit of credit allowed for students who have taken EEC 070. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 060Data Structures and Programming (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040 C- or better. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. Design and analysis of data structures for a variety of applications. Trees, heaps, searching, sorting, hashing, graphs. Extensive programming. (Letter.) GE credit: QL, SE. Effective: 2017 Spring Quarter.
ECS 060Data Structures and Programming (4) Review all entries Discontinued
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040 C- or better. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. Design and analysis of data structures for a variety of applications. Trees, heaps, searching, sorting, hashing, graphs. Extensive programming. (Letter.) GE credit: QL, SE. Effective: 2018 Fall Quarter.
ECS 089ASpecial Topics in Computer Science; Computer Science Theory (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Computer Science Theory. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089BSpecial Topics in Computer Science; Architecture (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Architecture. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089CSpecial Topics in Computer Science; Programming Languages and Compilers (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Programming Languages and Compilers. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089DSpecial Topics in Computer Science; Operating Systems (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Operating Systems. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089ESpecial Topics in Computer Science; Software Engineering (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Software Engineering. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089FSpecial Topics in Computer Science; Databases (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Databases. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089GSpecial Topics in Computer Science; Artificial Intelligence (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Artificial Intelligence. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089HSpecial Topics in Computer Science; Computer Graphics (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Computer Graphics. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089ISpecial Topics in Computer Science; Networks (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Networks. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089JSpecial Topics in Computer Science; Computer-Aided Design (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Computer-Aided Design. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089KSpecial Topics in Computer Science; Scientific Computing (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Scientific Computing. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 089LSpecial Topics in Computer Science; Computer Science (1-5) Active
Lecture; Laboratory. Prerequisite(s): Consent of Instructor. Special topics in Computer Science. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 092Internship in Computer Science (1-5) Active
Internship. Prerequisite(s): Lower division standing; project approval prior to period of internship. Supervised work experience in computer science. May be repeated for credit. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 098Directed Group Study (1-5) Active
Variable. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 098FStudent Facilitated Course (1-4) Active
Variable—1-4 hour(s). Prerequisite(s): Consent of Instructor. Student facilitated course intended primarily for lower division students. (P/NP grading only.) Effective: 2016 Winter Quarter.
ECS 099Special Study for Lower Division Students (1-5) Active
Variable. Prerequisite(s): Consent of Instructor. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 113Computer Security for Non-Majors (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Programming skill at the level of ECS 015. 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. Course not intended for CS or CSE majors. No credit allowed to students who have completed ECS 153 or ECS 155. (Letter.) GE credit: SE. Effective: 2018 Winter Quarter.
ECS 113Computer Security for Non-Majors (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 010 or ECS 030 or ECS 032A or ECS 036A. 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. Course not intended for CS or CSE majors. No credit allowed to students who have completed ECS 153 or ECS 155. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 120Theory of Computation (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 020 or MAT 108. Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. Fundamental ideas in the theory of computation, including formal languages, computability and complexity. Reducibility among computational problems. (Letter.) GE credit: QL, SE. Effective: 2016 Fall Quarter.
ECS 120Theory of Computation (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 020 or MAT 108); (ECS 32B or ECS 36C Recommended). Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. Fundamental ideas in the theory of computation, including formal languages, computability and complexity. Reducibility among computational problems. (Letter.) GE credit: QL, SE. Effective: 2019 Winter Quarter.
ECS 122AAlgorithm Design and Analysis (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 020; ECS 060. Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 122AAlgorithm Design and Analysis (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 020; (ECS 060 or ECS 032B or ECS 036C). Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 122BAlgorithm Design and Analysis (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 122A. Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. 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. (Letter.) GE credit: QL, SE. Effective: 2016 Fall Quarter.
ECS 122BAlgorithm Design and Analysis (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 122A; (ECS 060 or ECS 034 or ECS 036C). Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. 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. (Letter.) GE credit: QL, SE. Effective: 2019 Winter Quarter.
ECS 124Theory and Practice of Bioinformatics (4) Review all entries Historical
Lecture—3 hour(s); Laboratory—1 hour(s). Prerequisite(s): (ECS 010 or ECS 030 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). Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only. 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. (Letter.) GE credit: SE. Effective: 2018 Spring Quarter.
ECS 124Theory and Practice of Bioinformatics (4) Review all entries Active
Lecture—3 hour(s); Laboratory—1 hour(s). 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). Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 127Cryptography (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 020 or MAT 108. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: QL, SE, SL. Effective: 2016 Fall Quarter.
ECS 127Cryptography (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 020 or MAT 108); (ECS 010 or ECS 032A or ECS 030 or ECS 036A). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: QL, SE, SL. Effective: 2019 Winter Quarter.
ECS 129Computational Structural Bioinformatics (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): BIS 002A or MCB 010; College level programming course. Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only. 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. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 129Computational Structural Bioinformatics (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (BIS 002A or MCB 010); (ECS 010 or ECS 032A or ECS 036A). Pass One open to Computer Science, Computer Science Engineering, and Biotechnology majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 130Scientific Computation (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 030 or ENG 006); (MAT 022A or MAT 067). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 130Scientific Computation (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 030 or ENG 006 or ECS 032A or ECS 010 or ECS 036A); (MAT 022A or MAT 067). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 132Probability and Statistical Modeling for Computer Science (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040; (ECS 050 or EEC 070); MAT 021C; (MAT 022A or MAT 067). Pass One open to Computer Science and Computer Science Engineering Majors only. Univariate and multivariate distributions. Estimation and model building. Markov/Hidden Markov models. Applications to data mining, networks, security, software engineering and bioinformatics. (Letter.) GE credit: QL, SE. Effective: 2016 Fall Quarter.
ECS 132Probability and Statistical Modeling for Computer Science (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 040 or ECS 034 or ECS 036B); ECS 050; MAT 021C; (MAT 022A or MAT 067). Pass One open to Computer Science and Computer Science Engineering Majors only. Univariate and multivariate distributions. Estimation and model building. Markov/Hidden Markov models. Applications to data mining, networks, security, software engineering and bioinformatics. (Letter.) GE credit: QL, SE. Effective: 2019 Winter Quarter.
ECS 140AProgramming Languages (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 050 or EEC 070; ECS 060. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. 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. (Letter.) GE credit: SE. Effective: 2017 Winter Quarter.
ECS 140AProgramming Languages (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 050; (ECS 060 or ECS 032B or ECS 036C); ECS 020. Pass One open to Computer Science, Computer Science Engineering, Computer Engineering, and Cognitive Science Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 140BProgramming Languages (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 140A. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 142Compilers (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 020; ECS 140A; ECS 120 recommended. Pass One open to Computer Science and Computer Science Engineering Majors only. Principles and techniques of lexical analysis, parsing, semantic analysis, code generation, and code optimization. Implementation of compilers. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 142Compilers (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 140A; ECS 120; ECS 122A recommended. Pass One open to Computer Science and Computer Science Engineering Majors only. Principles and techniques of lexical analysis, parsing, semantic analysis, code generation, and code optimization. Implementation of compilers. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 145Scripting Languages and Their Applications (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Programming skill at the level of ECS 060. Pass One open to Computer Science and Computer Science Engineering Majors only. 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). (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 145Scripting Languages and Their Applications (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 034 or ECS 036C or ECS 060; or Consent of Instructor. Pass One open to Computer Science and Computer Science Engineering Majors only. 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). (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 150Operating Systems and System Programming (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 040; (ECS 050 or EEC 070 or EEC 170). Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2017 Fall Quarter.
ECS 150Operating Systems and System Programming (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 034 or ECS 036C or ECS 060); (ECS 154A or EEC 170). Pass One open to Computer Science, Computer Science Engineering, and Computer Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 152AComputer Networks (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060; (ECS 132 or EEC 161 or MAT 135A or STA 131A or STA 120 or STA 032). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. Only 2 units of credit for students who have taken ECS 157. (Same course as EEC 173A.) (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 152AComputer Networks (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). 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). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. Only 2 units of credit for students who have taken ECS 157. (Same course as EEC 173A.) (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 152BComputer Networks (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 152A or EEC 173A. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 152BComputer Networks (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 150; (ECS 152A or EEC 173A). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 152CAdvanced Topics in Computer Networks (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): EEC 173A or ECS 152A. 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. (Same course as EEC 173B.) (Letter.) GE credit: SE. Effective: 2014 Fall Quarter.
ECS 153Computer Security (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 150; ECS 152A. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. Not open for credit to students who have completed course 155. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 153Computer Security (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 150; (ECS 152A or EEC 173A). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. Not open for credit to students who have completed ECS 155. (Letter.) GE credit: SE. Effective: 2018 Fall Quarter.
ECS 154AComputer Architecture (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 050 or EEC 070. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. Only one unit of credit allowed for students who have taken EEC 170. (Letter.) GE credit: SE. Effective: 2017 Winter Quarter.
ECS 154BComputer Architecture (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 154A or (EEC 170, EEC 180A). Pass One open to Computer Science and Computer Science Engineering Majors only. Hardwired and microprogrammed CPU design. Memory hierarchies. Uniprocessor performance analysis under varying program mixes. Introduction to pipelining and multiprocessors. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 158Programming on Parallel Architectures (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 150; ECS 154B recommended. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2018 Winter Quarter.
ECS 160 Software Engineering (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 140A. Pass One open to Computer Science and Computer Science Engineering Majors only. Requirements, specification, design, implementation, testing, and verification of large software systems. Study and use of software engineering methodologies. Team programming. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 160 Software Engineering (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 140A; extensive programming experience recommended. Pass One open to Computer Science and Computer Science Engineering Majors only. Requirements, specification, design, implementation, testing, and verification of large software systems. Study and use of software engineering methodologies. Team programming. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 161Modern Programming Tools (4) Review all entries Historical
Lecture—2 hour(s); Laboratory—2 hour(s). Prerequisite(s): ECS 040; or equivalent. Pass One open to Computer Science and Computer Science Engineering Majors only. Concepts and practice of collaborative software development using modern software tools. (Letter.) GE credit: SE. Effective: 2017 Fall Quarter.
ECS 161Modern Programming Tools (4) Review all entries Active
Lecture—2 hour(s); Laboratory—2 hour(s). Prerequisite(s): (ECS 040 or ECS 032B or ECS 036B). Pass One open to Computer Science and Computer Science Engineering Majors only. Concepts and practice of collaborative software development using modern software tools. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 162Web Programming (4) Review all entries Historical
Lecture—3 hour(s); Laboratory—1 hour(s). Prerequisite(s): ECS 030; Or equivalent programming experience in C and the Unix environment. Pass One open to Computer Science and Computer Science Engineering Majors only. Technical aspects of building websites, including both server-side and client-side software development. (Letter.) GE credit: SE, VL. Effective: 2017 Fall Quarter.
ECS 162Web Programming (4) Review all entries Active
Lecture—3 hour(s); Laboratory—1 hour(s). Prerequisite(s): ECS 030 or ECS 034 or ECS 036B; or equivalent programming experience in C and the Unix environment. Pass One open to Computer Science and Computer Science Engineering Majors only. Technical aspects of building websites, including both server-side and client-side software development. (Letter.) GE credit: SE, VL. Effective: 2019 Winter Quarter.
ECS 163Information Interfaces (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE, VL. Effective: 2016 Fall Quarter.
ECS 163Information Interfaces (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060 or ECS 032B or ECS 036C. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE, VL. Effective: 2019 Winter Quarter.
ECS 165ADatabase Systems (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060. Pass One open to Computer Science and Computer Science Engineering Majors only. Database modeling and design (E/R model, relational model), relational algebra, query languages (SQL), file and index structures, query processing, transaction management. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 165ADatabase Systems (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060 or ECS 032B or ECS 036C. Pass One open to Computer Science and Computer Science Engineering Majors only. Database modeling and design (E/R model, relational model), relational algebra, query languages (SQL), file and index structures, query processing, transaction management. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 165BDatabase Systems (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 165A. Pass One open to Computer Science and Computer Science Engineering Majors only. 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). (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 165BDatabase Systems (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 165A; (ECS 060 or ECS 034 or ECS 036C). Pass One open to Computer Science and Computer Science Engineering Majors only. 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). (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 170Introduction to Artificial Intelligence (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060. Pass One open to Computer Science and Computer Science Engineering Majors only. Design and implementation of intelligent computer systems. Knowledge representation and organization. Memory and inference. Problem solving. Natural language processing. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 170Introduction to Artificial Intelligence (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060 or ECS 032B or ECS 036C. Pass One open to Computer Science and Computer Science Engineering Majors only. Design and implementation of intelligent computer systems. Knowledge representation and organization. Memory and inference. Problem solving. Natural language processing. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 171Machine Learning (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Pass One open to Computer Science and Computer Science Engineering Majors only. Introduction to machine learning. Supervised and unsupervised learning, including classification, dimensionality reduction, regression and clustering using modern machine learning methods. Applications of machine learning to other fields. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 171Machine Learning (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060 or ECS 032B or ECS 036C; or Consent of Instructor. Probability equivalent to STA 032 or STA 131A or ECS 132 recommended; linear algebra equivalent to MAT 22A recommended. Pass One open to Computer Science and Computer Science Engineering Majors only. Introduction to machine learning. Supervised and unsupervised learning, including classification, dimensionality reduction, regression and clustering using modern machine learning methods. Applications of machine learning to other fields. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 173Image Processing and Analysis (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (MAT 067 or MAT 022A C- or better); ECS 060. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2016 Fall Quarter.
ECS 173Image Processing and Analysis (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (MAT 067 C- or better or MAT 022A C- or better); (ECS 060 or ECS 032B or ECS 036C). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 174Computer Vision (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060; (STA 032 or STA 131A or MAT 135A or EEC 161 or ECS 132) recommended; (MAT 022A or MAT 067) recommended. Pass One open to Computer Science and Computer Science and Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2018 Spring Quarter.
ECS 174Computer Vision (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 060 or ECS 032B or ECS 036C); (STA 032 or STA 131A or MAT 135A or EEC 161 or ECS 132 recommended); (MAT 022A or MAT 067 recommended). Pass One open to Computer Science and Computer Science and Engineering Majors only. 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. (Letter.) GE credit: SE. Effective: 2019 Winter Quarter.
ECS 175Computer Graphics (4) Review all entries Historical
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 060; (MAT 022A or MAT 067). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE, VL. Effective: 2016 Fall Quarter.
ECS 175Computer Graphics (4) Review all entries Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): (ECS 060 or ECS 034 or ECS 036C); (MAT 022A or MAT 067). Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE, VL. Effective: 2019 Winter Quarter.
ECS 177Scientific Visualization (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 175. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SE, VL. Effective: 2016 Fall Quarter.
ECS 178Geometric Modeling (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 175. Pass One open to Computer Science and Computer Science Engineering Majors only. Interactive graphics techniques for defining and manipulating geometrical shapes used in computer animation, car body design, aircraft design, and architectural design. (Letter.) GE credit: SE, VL. Effective: 2016 Fall Quarter.
ECS 188Ethics in an Age of Technology (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Upper division standing. Pass One open to Computer Science and Computer Science Engineering Majors only. 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. (Letter.) GE credit: SL, SS, WE. Effective: 2018 Winter Quarter.
ECS 189ASpecial Topics in Computer Science; Computer Science Theory (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer Science Theory. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189BSpecial Topics in Computer Science; Architecture (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Architecture. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189CSpecial Topics in Computer Science; Programming Languages and Compilers (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Programming Languages and Compilers. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189DSpecial Topics in Computer Science; Operating Systems (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Operating Systems. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189ESpecial Topics in Computer Science; Software Engineering (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Software Engineering May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189FSpecial Topics in Computer Science; Databases (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic Databases. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189GSpecial Topics in Computer Science; Artificial Intelligence (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Artificial Intelligence. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189HSpecial Topics in Computer Science; Computer Graphics (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer Graphics. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189ISpecial Topics in Computer Science; Networks (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Networks. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189JSpecial Topics in Computer Science; Computer-Aided Design (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer-Aided Design. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189KSpecial Topics in Computer Science; Scientific Computing (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Scientific Computing. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189LSpecial Topics in Computer Science; Computer Science (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer Science. May be repeated for credit when topic differs. (Letter.) GE credit: SE. Effective: 1997 Winter Quarter.
ECS 189MSpecial Topics in Computer Security; Computer Security (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Computer Security. May be repeated for credit when topic differs. (Letter.) Effective: 2009 Spring Quarter.
ECS 189NSpecial Topics in Bioinformatics and Computational Biology (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topics in Bioinformatics and Computational Biology. May be repeated for credit when topic differs. (Letter.) Effective: 2009 Spring Quarter.
ECS 190CResearch Group Conferences in Computer Science (1) Review all entries Historical
Discussion—1 hour(s). Prerequisite(s): Consent of Instructor. Upper division standing in Computer Science and Engineering. Research group conferences. May be repeated for credit. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 190CResearch Group Conferences in Computer Science (1) Review all entries Active
Discussion—1 hour(s). Prerequisite(s): Consent of Instructor. Upper division standing in Computer Science or Computer Science and Engineering. Research group conferences. May be repeated for credit. (P/NP grading only.) Effective: 2019 Winter Quarter.
ECS 190XSenior Seminar (2) Active
Seminar—2 hour(s). Prerequisite(s): Senior standing. Examination of a special topic in a small group setting. (Letter.) Effective: 1997 Winter Quarter.
ECS 192Internship in Computer Science (1-5) Active
Internship. Prerequisite(s): Completion of a minimum of 84 units; project approval prior to period of internship. Supervised work experience in computer science. May be repeated for credit. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 193ASenior Design Project (3) Active
Lecture/Discussion—3 hour(s). Prerequisite(s): ECS 160 (can be concurrent); Senior standing in Computer Science or Computer Science and Engineering or consent of instructor. Pass One open to Computer Science Engineering Majors only; Pass Two open to Computer Science and Computer Science Engineering Majors only. Responding to real-life client design challenges, student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. The project is supervised by a faculty member. Students must take course 193A and 193B to receive credit. (Letter.) GE credit: SE. Effective: 2017 Winter Quarter.
ECS 193BSenior Design Project (3) Active
Lecture/Discussion—3 hour(s). Prerequisite(s): ECS 193A IP or better. Pass One open to Computer Science Engineering Majors only; Pass Two open to Computer Science and Computer Science Engineering Majors only. Responding to real-life client design challenges, student teams plan, implement, and evaluate large-scale projects involving computer and computational systems. The project is supervised by a faculty member. Students must take course 193A and 193B to receive credit. (Letter.) GE credit: SE. Effective: 2017 Spring Quarter.
ECS 197TTutoring in Computer Science (1-3) Active
Discussion—1 hour(s); Discussion/Laboratory—3-6 hour(s). Prerequisite(s): Consent of Instructor. Restricted to upper-division standing. Tutoring in computer science courses, especially introductory courses. (P/NP grading only.) Effective: 2014 Fall Quarter.
ECS 198Directed Group Study (1-5) Active
Variable. Prerequisite(s): Consent of Instructor. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 198FStudent Facilitated Course (1-4) Active
Variable—1-4 hour(s). Prerequisite(s): Consent of Instructor. Student facilitated course intended primarily for upper division students. (P/NP grading only.) Effective: 2016 Winter Quarter.
ECS 199Special Study for Advanced Undergraduates (1-5) Active
Variable. (P/NP grading only.) Effective: 1997 Winter Quarter.
ECS 199FAStudent Facilitated Course Development (1-4) Active
Variable—1-4 hour(s). Under the supervision of a faculty member, an undergraduate student plans and develops the course they will offer under 98F/198F. (P/NP grading only.) Effective: 2016 Winter Quarter.
ECS 199FBStudent Facilitated Teaching (1-4) Active
Variable—1-4 hour(s). Prerequisite(s): ECS 199FA; Consent of Instructor. STU FAC. Under the supervision of a faculty member, an undergraduate student teaches a course under 98F/198F. (P/NP grading only.) Effective: 2016 Winter Quarter.
ECS 201AAdvanced Computer Architecture (4) Active
Lecture—3 hour(s); Term Paper. Prerequisite(s): (ECS 154B or EEC 170); ECS 150. Pass 1 and Pass 2 open to Graduate Students in Computer Science only. 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. Term project involving student-proposed extensions/modifications of work in the research literature. Not open for credit to students who have completed ECS 250A. (Letter.) Effective: 2016 Spring Quarter.
ECS 201BHigh-Performance Uniprocessing (4) Active
Lecture—3 hour(s); Term Paper. Prerequisite(s): ECS 201A. Pass 1 and Pass 2 open to Graduate Students in Computer Science only. Maximizing uniprocessor performance. Barriers to high performance; solutions to the problems; historical and current processor designs. Not open for credit to students who have completed ECS 250B. (Letter.) Effective: 2016 Spring Quarter.
ECS 201CParallel Architectures (4) Active
Lecture—3 hour(s); Project (Term Project). Prerequisite(s): ECS 201A. Evolution of parallel architectures from special-purpose machines to commodity servers. Emphasis on recent machines and applications that drive them. Not open for credit to students who have completed ECS 250C. (Letter.) Effective: 2003 Spring Quarter.
ECS 203Novel Computing Technologies (4) Active
Lecture—3 hour(s); Project (Term Project)—1 hour(s). Prerequisite(s): ECS 201A. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 220Theory of Computation (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 120; ECS 122A. Pass 1 and Pass 2 open to Graduate Students in Computer Science only. Time and space complexity classes. Reductions, completeness, and the role of randomness. Logic and undecidability. (Letter.) Effective: 2016 Spring Quarter.
ECS 221Computational Methods in Systems and Synthetic Biology (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Pass 1 and Pass 2 open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 222ADesign and Analysis of Algorithms (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 122A; STA 031A recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 222BAdvanced Design and Analysis of Algorithms (4) Active
Lecture—3 hour(s); Project (Term Project)—1 hour(s). Prerequisite(s): ECS 222A. Pass One and Pass Two open to Graduate Students in Computer Science only. Advanced topics in complexity theory. Problem classification. The classes P, NP, P-space, co-NP. Matching and network flow algorithms. Matrix multiplication. Approximation algorithms. (Letter.) Effective: 2016 Spring Quarter.
ECS 223Parallel Algorithms (4) Active
Discussion/Laboratory—3 hour(s); Project (Term Project)—1 hour(s). Prerequisite(s): ECS 222A. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 224String Algorithms and Applications in Computational Biology (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 122A. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 225Graph Theory (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Graduate standing in electrical engineering or computer science or consent of instructor. Open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2018 Winter Quarter.
ECS 226Computational Geometry (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 175; ECS 222A. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 227Modern Cryptography (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 220 or ECS 222A. Pass One and Pass Two open to Graduate Students in Computer Science only. Modern cryptography as a discipline emphasizing formal definitions and proofs of security. One-way functions, pseudo-randomness, encryption, digital signatures, zero-knowledge, secure protocols. (Letter.) Effective: 2016 Spring Quarter.
ECS 228Cryptograpy for E-Commerce (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 222A. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 229Advanced Computational Structural Bioinformatics (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): Graduate standing. Pass One and Pass Two open to Graduate Students in Computer Science only. 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). (Letter.) Effective: 2016 Spring Quarter.
ECS 230Applied Numerical Linear Algebra (4) Active
Discussion/Laboratory—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 130 or EAD 209 or MAT 167. Pass One and Pass Two open to Graduate Students in Computer Science only. Numerical linear algebra (NLA) with emphasis on applications in engineered systems; matrix factorizations; perturbation and rounding error analyses of fundamental NLA algorithms. (Letter.) Effective: 2016 Spring Quarter.
ECS 231Large-Scale Scientific Computation (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 130. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 234Computational Functional Genomics (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 124; Graduate standing in Computer Science or Life Sciences. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 235AComputer and Information Security (4) Active
Lecture—3 hour(s); Project (Term Project). Prerequisite(s): ECS 150; ECS 152A recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. Not open for credit to students who have taken ECS 235. (Letter.) Effective: 2016 Fall Quarter.
ECS 235BFoundations of Computer and Information Security (4) Active
Lecture—3 hour(s); Project (Term Project). Prerequisite(s): ECS 235A; (ECS 120 and ECS 150 recommended.). Pass One and Pass Two open to Graduate Students in Computer Science only. 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. Not open for credit to students who have taken ECS 235. (Letter.) Effective: 2016 Fall Quarter.
ECS 236Computer Security: Intrusion Detection Based Approach (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 150; ECS 153 recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 240Programming Languages (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 140A; ECS 142. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 242Translation of Programming Languages (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 240. Pass One and Pass Two open to Graduate Students in Computer Science only. Lexical analysis, parsing, storage management, symbol table design, semantic analysis and code generation. LR, LALR grammars. Compilercompilers. (Letter.) Effective: 2016 Spring Quarter.
ECS 243Code Generation and Optimization (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 201A or EEC 270. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 244Principles of Concurrent Programming (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 020; ECS 150. Pass One and Pass Two open to Graduate Students in Computer Science only. Fundamental concepts and applications of concurrent programs; concurrent program verification and derivation; synchronization mechanisms in programming languages; distributed programming techniques; case studies of languages. (Letter.) Effective: 2016 Spring Quarter.
ECS 247Concurrent Programming Languages (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 140A; ECS 150. Pass One and Pass Two open to Graduate Students in Computer Science only. 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). (Letter.) Effective: 2016 Fall Quarter.
ECS 251Operating Systems (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 150. Pass One and Pass Two open to Graduate Students in Computer Science only. 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). (Letter.) Effective: 2016 Spring Quarter.
ECS 252Computer Networks (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 152B. Pass 1 and Pass 2 open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 253Network Theory and Applications (4) Review all entries Historical
Lecture/Discussion—4 hour(s). Prerequisite(s): MAT 022A; MAT 022B; (STA 013 or STA 013Y or STA 120); Experience with computer software, or consent of instructor. Pass One and Pass Two open to Graduate Students in Mechanical and Aerospace Engineering and Computer Science only. 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. (Same course as Mechanical & Aeronautical Engineering 253.) (Letter.) Effective: 2018 Spring Quarter.
ECS 253Network Theory and Applications (4) Review all entries Active
Lecture/Discussion—4 hour(s). Prerequisite(s): MAT 022A; MAT 022B; (STA 013 or STA 013Y or STA 120); Experience with computer software, or consent of instructor. 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. (Same course as MAE 253.) (Letter.) Effective: 2018 Fall Quarter.
ECS 255Resource Management in Wireless Communication Networks (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 252A. 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. (Letter.) Effective: 2009 Winter Quarter.
ECS 256Performance Evaluation (4) Active
Lecture—3 hour(s); Project (Term Project)—1 hour(s). Prerequisite(s): ECS 020; ECS 152A; STA 131A; (EEC 170 or (ECS 154A, ECS 154B)); ECS 150 recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. Use of simulation and queueing theory in computer and communication system design. Applications to processor scheduling, memory hierarchies; I/O systems; packet and circuit switched networks; fault-tolerance; computer networks applications. Not open for credit to students who have completed ECS 256A. (Letter.) Effective: 2016 Fall Quarter.
ECS 257Mobile and Wireless Networks (4) Active
Lecture—3 hour(s); Independent Study—1 hour(s). Prerequisite(s): ECS 252. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 258Networking Architecture and Resource Management (4) Active
Lecture—3 hour(s); Project (Term Project). Prerequisite(s): ECS 152A or EEC 173A. Pass One and Pass Two open to Graduate Students in Computer Science and Electrical and Computer Engineering only. Concepts and design principles of computer networks. Network architectures, protocol mechanisms and implementation principles (transport/network/data-link layers), network algorithms, router mechanisms, design requirements of applications, network simulation, modeling and performance analysis. (Same course as EEC 273.) (Letter.) Effective: 2016 Fall Quarter.
ECS 259Optical Networks (4) Active
Lecture—3 hour(s); Independent Study—1 hour(s). Prerequisite(s): ECS 252. Pass One and Pass Two open to Graduate Students in Computer Science only. Optical networks. Enabling technologies. Multiplexing techniques. WDM. Broadcast networks. Wavelength-routed networks. Network architectures. Protocols. Network algorithms. Device-network interface. Optimization problems. (Letter.) Effective: 2016 Fall Quarter.
ECS 260Software Engineering (4) Active
Lecture—3 hour(s); Project (Term Project)—3 hour(s). Prerequisite(s): ECS 142; ECS 160 recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. Advanced techniques for domain-specific software reuse. (Letter.) Effective: 2016 Fall Quarter.
ECS 261Program Verification (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): PHI 112; or MAT 125 or familiarity with first-order logic; knowledge of an integrative and functional programming language. 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. (Letter.) Effective: 1997 Fall Quarter.
ECS 262Formal Specification (3) Active
Lecture—3 hour(s). Prerequisite(s): ECS 261. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 265Distributed Database Systems (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 165A. Pass One and Pass Two open to Graduate Students in Computer Science only. Concepts of distributed database systems and architectures, distributed database design, distributed query processing and optimization, transaction management and concurrency control, heterogeneous and multidatabase systems. (Letter.) Effective: 2016 Fall Quarter.
ECS 266Spatial Databases (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 165A. Concepts, models, and architectures for spatial databases, spatial access methods, query processing, spatio-temporal data management, moving objects, spatial data mining.

(Letter.) Effective: 2008 Winter Quarter.

ECS 267Wide-Area Distributed Information Systems (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 152B or ECS 165A. Pass One and Pass Two open to Graduate Students in Computer Science only. Wide-area distributed information systems, data broadcast, multicast, publish/subscribe, service differentiation, information retrieval, Web caching. (Letter.) Effective: 2016 Fall Quarter.
ECS 268Scientific Data And Workflow Management

(4) Active

Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 165A. Scientific data integration, metadata, knowledge representation, ontologies, scientific workflow design and management.

(Letter.) Effective: 2008 Winter Quarter.

ECS 269Visual Recognition (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 171 or ECS 174; or equivalent. Graduate seminar course on computer vision with an emphasis on object recognition, activity recognition, and scene understanding. (Letter.) Effective: 2018 Fall Quarter.
ECS 270Artificial Intelligence (3) Active
Lecture—3 hour(s). Prerequisite(s): ECS 140A; ECS 172. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 271Machine Learning and Discovery (4) Active
Lecture—3 hour(s); Project (Term Project)—1 hour(s). Prerequisite(s): ECS 170. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 272Information Visualization (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 163 or ECS 175 recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 273Applied Visual Computing (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): Graduate standing. Visual computing paradigms, current visualization technologies, principles of 3-d graphics, user interface designs, and exploratory visualization. (Letter.) Effective: 2002 Winter Quarter.
ECS 274Automated Deduction (4) Active
Lecture—3 hour(s). Prerequisite(s): PHI 112; or MAT 125 or familiarity with first order logic. 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. (Letter.) Effective: 1997 Fall Quarter.
ECS 275AAdvanced Computer Graphics (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 175 or ECS 177 or ECS 178. Pass One and Pass Two open to Graduate Students in Computer Science only. Advanced topics in computer graphics. Hidden surface models, rendering of various surface types, subdivision methods, shading techniques, anti-aliasing, modeling techniques. (Letter.) Effective: 2016 Fall Quarter.
ECS 275BAdvanced Computer Graphics (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 175 or ECS 177 or ECS 178. Pass 1 and Pass 2 open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Spring Quarter.
ECS 276Advanced Volume Visualization (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 177. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 277Advanced Visualization (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 177. Visualization of 3D data, including scalar fields, vector fields, and medical data. (Letter.) Effective: 2000 Fall Quarter.
ECS 278Computer-Aided Geometric Design (4) Active
Lecture—3 hour(s); Laboratory—3 hour(s). Prerequisite(s): ECS 175. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 279Computer Animation (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 175; or ECS 275. Pass One and Pass Two open to Graduate Students in Computer Science only. Course 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. (Letter.) Effective: 2016 Fall Quarter.
ECS 280Virtual Reality Technology (4) Active
Lecture—3 hour(s); Discussion—1 hour(s). Prerequisite(s): ECS 175. Pass One and Pass Two open to Graduate Students in Computer Science only. Fundamentals and principles of Virtual Reality (VR) technology. Potential and limits for its useful application. Developing a complete virtual reality application. (Letter.) Effective: 2016 Spring Quarter.
ECS 289ASpecial Topics in Computer Science; Computer Science Theory (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer Science Theory. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289BSpecial Topics in Computer Science; Architecture (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Architecture. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289CSpecial Topics in Computer Science; Programming Languages and Compilers (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Programming Languages and Compilers. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289DSpecial Topics in Computer Science; Operating Systems (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Operating Systems. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289ESpecial Topics in Computer Science; Software Engineering (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Software Engineering. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289FSpecial Topics in Computer Science; Databases (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Databases. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289GSpecial Topics in Computer Science (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Artificial Intelligence. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289HSpecial Topics in Computer Science; Computer Graphics (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer Graphics. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289ISpecial Topics in Computer Science (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Networks. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289JSpecial Topics in Computer Science; Computer-Aided Design (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer-Aided Design. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289KSpecial Topics in Computer Science; Scientific Computing (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Scientific Computing. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289LSpecial Topics in Computer Science; Computer Science (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Computer Science. May be repeated for credit when topic differs. (Letter.) Effective: 1997 Winter Quarter.
ECS 289MSpecial Topics in Computer Science; Security (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Security. May be repeated for credit when topic differs. (Letter.) Effective: 2001 Winter Quarter.
ECS 289NSpecial Topics in Bioinformatics and Computational Biology (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. Special topic in Bioinformatics and Computational Biology. May be repeated for credit when topic differs. (Letter.) Effective: 2009 Spring Quarter.
ECS 290Seminar in Computer Science (1) Active
Seminar—1 hour(s). Participating seminar; discussion and presentation of current research and development in computer science. (S/U grading only.) Effective: 1997 Winter Quarter.
ECS 290CGraduate Research Group Conference (1) Active
Discussion—1 hour(s). Research problems, progress and techniques in computer science. May be repeated for credit. (S/U grading only.) Effective: 1997 Winter Quarter.
ECS 293AResearch in Computer Science (1) Active
Lecture—1 hour(s). Prerequisite(s): Graduate standing in computer science. Pass One and Pass Two open to Graduate Students in Computer Science only. Study of research topics in computer science, PhD 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. (S/U grading only.) Effective: 2016 Fall Quarter.
ECS 293BResearch in Computer Science (1) Active
Lecture—1 hour(s). Prerequisite(s): Graduate standing in computer science; ECS 293A recommended. Pass One and Pass Two open to Graduate Students in Computer Science only. Study of PhD 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. (S/U grading only.) Effective: 2016 Fall Quarter.
ECS 298Group Study (1-5) Active
Lecture; Laboratory; Lecture/Lab. Prerequisite(s): Consent of Instructor. (S/U grading only.) Effective: 1997 Winter Quarter.
ECS 299Research (1-12) Active
Variable. (S/U grading only.) Effective: 1997 Winter Quarter.
ECS 390The Teaching of Computer Science (1) Active
Discussion—1 hour(s). Prerequisite(s): Meet qualifications for teaching assistant and/or associate-in in Computer Science. Pass One and Pass Two open to Graduate Students in Computer Science only. 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. May be repeated for credit. (S/U grading only.) Effective: 2016 Spring Quarter.
ECS 396Teaching Assistant Training Practicum (1-4) Active
Variable. Prerequisite(s): Graduate standing. May be repeated for credit. (P/NP grading only.) Effective: 1997 Winter Quarter.