Computer Science
143 courses · UC Irvine · 2026-2027 Catalog
Classes: Fall 2026
COMPSCI 103 Advanced Programming and Problem Solving with C++
- Units
- 4
- Prerequisite
- I&C SCI 45C
Advanced programming language concepts for more complex, higher performance software design. Builds depth of programming skills in C++ as a foundation for upper-division courses and projects. Focuses on strengthening programming, debugging, and problem solving skills.
COMPSCI 111 Digital Image Processing
- Units
- 4
- Prerequisite
- I&C SCI 46 with a minimum grade of C and I&C SCI 6D with a minimum grade of C and (MATH 3A with a minimum grade of C or I&C SCI 6N with a minimum grade of C)
Introduction to the fundamental concepts of digital signal and image processing as applicable in areas such as multimedia, graphics, AI, data mining, databases, vision, or video games. Topics include image representation, space- and frequency-domain transformations, filters, segmentation, and compression.
COMPSCI 112 Computer Graphics
- Units
- 4
- Prerequisite
- I&C SCI 46 with a minimum grade of C and (MATH 3A with a minimum grade of C or I&C SCI 6N with a minimum grade of C)
Introduction to the fundamental principles of 3D computer graphics including polygonal modeling, geometric transformations, visibility algorithms, illumination models, texturing, and rasterization. Use of an independently-learned 3D graphics API to implement these techniques.
COMPSCI 114 Projects in Advanced 3D Computer Graphics
- Units
- 4
- Prerequisite
- COMPSCI 112 and I&C SCI 45C with a minimum grade of C. Recommended: COMPSCI 161 or COMPSCI 164 or COMPSCI 165
Projects in advanced 3D graphics such as illumination, geometric modeling, visualization, and animation. Topics include physically based and global illumination, solid modeling, curved surfaces, multiresolution modeling, image-based rendering, basic concepts of animation, and scientific visualization.
COMPSCI 115 Computer Simulation
- Units
- 4
- Prerequisite
- I&C SCI 6B with a minimum grade of C and (I&C SCI 6N with a minimum grade of C or MATH 3A with a minimum grade of C) and (STATS 67 with a minimum grade of C or (STATS 7 with a minimum grade of C or AP Statistics with a minimum score of 3) and STATS 120A with a minimum grade of C) and I&C SCI 51 with a minimum grade of C and (SWE 43 with a minimum grade of C or IN4MATX 43 with a minimum grade of C)
Discrete event-driven simulation; continuous system simulation; basic probability as pertaining to input distributions and output analysis; stochastic and deterministic simulation; static and dynamic system simulation.
COMPSCI 116 Computational Photography and Vision
- Units
- 4
- Prerequisite
- I&C SCI 6D with a minimum grade of C and (MATH 3A with a minimum grade of C or I&C SCI 6N with a minimum grade of C) and (MATH 2B with a minimum grade of C or AP Calculus BC with a minimum score of 4 or AP Calculus AB with a minimum score of 4) and I&C SCI 46 with a minimum grade of C
Introduces the problems of computer vision through the application of computational photography. Specific topics include photo-editing (image warping, compositing, hole filling), panoramic image stitching, and face detection for digital photographs.
COMPSCI 117 Project in Computer Vision
- Units
- 4
- Prerequisite
- I&C SCI 6D with a minimum grade of C and (MATH 3A with a minimum grade of C or I&C SCI 6N with a minimum grade of C) and (MATH 2B with a minimum grade of C or AP Calculus BC with a minimum score of 4) and I&C SCI 46 with a minimum grade of C and (COMPSCI 112 or COMPSCI 116 or COMPSCI 171 or COMPSCI 178)
Students undertake construction of a computer vision system. Topics include automatically building 3D models from photographs, searching photo collections, robot navigation, and human motion tracking.
COMPSCI 118 Introduction to Virtual Reality
- Units
- 4
- Prerequisite
- (I&C SCI 6N or MATH 3A) and I&C SCI 33
Introduces virtual reality systems and software. Topics include computer graphics pipeline, human visual system and perception, head mounted displays, image formation, sensors and tracking, and 3D sound. Students use a popular cross-platform game engine to create VR environments.
COMPSCI 121 Information Retrieval
- Units
- 4
- Prerequisite
- (I&C SCI 45C with a minimum grade of C or I&C SCI 45J with a minimum grade of C) and (STATS 7 or STATS 67 or MGMT 7 or AP Statistics with a minimum score of 3)
An introduction to information retrieval including indexing, retrieval, classifying, and clustering text and multimedia documents.
COMPSCI 122A Introduction to Data Management
- Units
- 4
- Prerequisite
- I&C SCI 33 with a minimum grade of C or EECS 114
Introduction to the design of databases and the use of database management systems (DBMS) for applications. Topics include entity-relationship modeling for design, relational data model, relational algebra, relational design theory, and Structured Query Language (SQL) programming.
COMPSCI 122B Project in Databases and Web Applications
- Units
- 4
- Prerequisite
- (COMPSCI 122A or EECS 116) and (I&C SCI 45J or AP Computer Science A with a minimum score of 4)
Introduces students to advanced database technologies and web applications. Topics include database connectivity (ODBC/JDBC), extending databases using stored procedures, database administration, web servers, web programming languages (Java servlets, XML, Ajax, and mobile platforms).
COMPSCI 122C Principles of Data Management
- Units
- 4
- Prerequisite
- COMPSCI 122A and (I&C SCI 53 or COMPSCI 143A)
Covers fundamental principles underlying data management systems. Content includes key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.
COMPSCI 122D Beyond SQL Data Management
- Units
- 4
- Prerequisite
- I&C SCI 46 and (I&C SCI 51 or EECS 31) and (COMPSCI 122A or EECS 116)
Survey of modern data management and analysis technologies beyond relational (SQL) database management. Topics include semistructured data, NoSQL databases, big data analysis, and text search/query engines. Additional topics vary and may include data frames, streaming data, and/or time-series data.
COMPSCI 125 Next Generation Search Systems
- Units
- 4
- Prerequisite
- (I&C SCI 45C with a minimum grade of C or I&C SCI 45J with a minimum grade of C) and (STATS 7 or STATS 67 or AP Statistics with a minimum score of 3)
Discusses concepts and techniques related to all aspects of search systems. After considering basic search technology and the state-of-art systems, rapidly developing techniques for multimedia search, local search, event-search, and video-on-demand are explored.
COMPSCI 130 Introduction to Security and Privacy
- Units
- 4
- Prerequisite
- I&C SCI 46 with a minimum grade of C
Introductory course on security mindset and basic principles/practices of software and systems security. Covers the foundations of building, using, and managing secure systems. Topics include standard security principles, threats, and defenses for real-world systems, including web, mobile, and IoT security.
COMPSCI 131 Parallel and Distributed Computing
- Units
- 4
- Prerequisite
- I&C SCI 53 or COMPSCI 143A
Parallel and distributed computer systems. Parallel programming models. Common parallel and distributed programming issues. Specific topics include parallel programming, performance models, coordination and synchronization, consistency and replication, transactions, fault tolerance.
COMPSCI 132 Computer Networks
- Units
- 4
- Prerequisite
- EECS 55 or STATS 67
Computer network architectures, protocols, and applications. Internet congestion control, addressing, and routing. Local area networks. Multimedia networking.
COMPSCI 133 Advanced Computer Networks
- Units
- 4
- Prerequisite
- COMPSCI 132 or EECS 148
Fundamental principles in computer networks are applied to obtain practical experience and skills necessary for designing and implementing computer networks, protocols, and network applications. Various network design techniques, simulation techniques, and UNIX network programming are covered.
COMPSCI 134 Computer and Network Security
- Units
- 4
- Prerequisite
- COMPSCI 161 and I&C SCI 53
Overview of modern computer and networks security, attacks, and countermeasures. Authentication, identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Also covers secure e-commerce and applications of public key methods, digital certificates, and credentials.
COMPSCI 137 Internet Applications Engineering
- Units
- 4
- Prerequisite
- (COMPSCI 132 or EECS 148) and I&C SCI 45J
Concepts in Internet applications engineering with emphasis on the Web. Peer-to-Peer and Interoperability. Topics include HTTP and REST, Remote Procedure/Method Calls, Web Services, data representations, content distribution networks, identity management, relevant W3C/IETF standards, and relevant new large-scale computing styles.
COMPSCI 141 Concepts in Programming Languages
- Units
- 4
- Prerequisite
- (I&C SCI 51 with a minimum grade of C or EECS 31 with a minimum grade of C) and I&C SCI 46 with a minimum grade of C
In-depth study of several contemporary programming languages stressing variety in data structures, operations, notation, and control. Examination of different programming paradigms, such as logic programming, functional programming and object-oriented programming; implementation strategies, programming environments, and programming style.
COMPSCI 142A Compilers and Interpreters
- Units
- 4
- Prerequisite
- (I&C SCI 46 or EECS 114) and (I&C SCI 51 or EECS 31). Recommended: COMPSCI 141 or IN4MATX 101 or I&C SCI 45J or EECS 40
Introduction to the theory of programming language processors covering lexical analysis, syntax analysis, semantic analysis, intermediate representations, code generation, optimization, interpretation, and run-time support.
COMPSCI 142B Project in Compilers and Interpreters
- Units
- 4
- Prerequisite
- COMPSCI 142A
Project course which provides working laboratory experience in construction and behavior of compilers and interpreters. Students build actual language processors and perform experiments which reveal their behaviors.
COMPSCI 143A Principles of Operating Systems
- Units
- 4
- Prerequisite
- (I&C SCI 46 or CSE 46) and (I&C SCI 51 or EECS 31 or CSE 31)
Principles and concepts of process and resource management, especially as seen in operating systems. Processes, memory management, protection, scheduling, file systems, and I/O systems are covered. Concepts illustrated in the context of several well-known systems.
COMPSCI 143B Project in Operating System Organization
- Units
- 4
- Prerequisite
- COMPSCI 143A
Detailed specification and design of critical components of an actual operating system including a memory manager, a process server, and a file/IO subsystem. Hardware/software tradeoffs. Emphasis on logical organization of system and communication.
COMPSCI 145 Embedded Software
- Units
- 6
- Prerequisite
- I&C SCI 46 and (I&C SCI 51 or EECS 31)
Principles of embedded computing systems: embedded systems architecture, hardware/software components, system software and interfacing, real-time operating systems, hardware/software co-development, and communication issues. Examples of embedded computing in real-world application domains. Simple programming using an embedded systems development environment.
COMPSCI 146 Programming in Multitasking Operating Systems
- Units
- 4
- Prerequisite
- I&C SCI 46 with a minimum grade of C and I&C SCI 51 with a minimum grade of C. Recommended: COMPSCI 143A
User- and systems-level programming of modern Internet-connected, multi-user, multitasking operating systems. Shells, scripting, filters, pipelines, programmability, extensibility, concurrency, inter-process communication. Concrete examples of a modern operating system (such as, but not necessarily, Unix programmed in C) are used.
COMPSCI 147 Internet of Things (IoT) Software and Systems
- Units
- 4
- Prerequisite
- I&C SCI 33
Introduction to the Internet of Things (IoT) from a systems and software perspective. IoT ecosystem including sensors, embedded CPUs, networking protocols, software, cloud services, and security and privacy requirements. IoT use cases, system design, and programming project.
COMPSCI 151 Digital Logic Design
- Units
- 4
- Prerequisite
- I&C SCI 33 with a minimum grade of C and I&C SCI 51 with a minimum grade of C and I&C SCI 6B and I&C SCI 6D
Boolean algebra. Design/analysis of combinational and sequential systems using SSI/MSI/LSI modules. Number systems. Error detecting and correction codes. Arithmetic algorithms. Hardware/firmware implementation of algorithms.
COMPSCI 152 Computer Architecture
- Units
- 4
- Prerequisite
- I&C SCI 51
Design of computer elements; ALU, control unit, and arithmetic circuits. Memory hierarchy and organization. Caches. Function unit sharing and pipelining. I/O and interrupt processing. RTL and behavioral modeling using hardware description languages. Microprocessor organization and implementation techniques.
COMPSCI 154 Computer Design Laboratory
- Units
- 4
- Prerequisite
- COMPSCI 151 or COMPSCI 152
Underlying primitives of computer instruction sets. Principles of microprogramming. Microprogramming. Microprograms written for one or more systems. Typical microprogramming applications discussed and implemented or simulated.
COMPSCI 161 Design and Analysis of Algorithms
- Units
- 4
- Prerequisite
- I&C SCI 46 with a minimum grade of C and I&C SCI 6B and I&C SCI 6D and (MATH 2B or AP Calculus BC with a minimum score of 4)
Techniques for efficient algorithm design, including divide-and-conquer and dynamic programming, and time/space analysis. Fast algorithms for problems applicable to networks, computer games, and scientific computing, such as sorting, shortest paths, minimum spanning trees, network flow, and pattern matching.
COMPSCI 162 Formal Languages and Automata
- Units
- 4
- Prerequisite
- I&C SCI 46 with a minimum grade of C and (MATH 2B or AP Calculus BC with a minimum score of 4) and I&C SCI 6B and I&C SCI 6D
Formal aspects of describing and recognizing languages by grammars and automata. Parsing regular and context-free languages. Ambiguity, nondeterminism. Elements of computability; Turning machines, random access machines, undecidable problems, NP-completeness.
COMPSCI 163 Graph Algorithms
- Units
- 4
- Prerequisite
- COMPSCI 161
Algorithms for solving fundamental problems in graph theory. Graph representations, graph traversal, network flow, connectivity, graph layout, matching problems.
COMPSCI 164 Computational Geometry
- Units
- 4
- Prerequisite
- COMPSCI 161
Algorithms and data structures for computational geometry and geometric modeling, with applications to computer vision and graphics. Topics: convex hulls, Voronoi diagrams, algorithms for triangulation, motion planning, and data structures for geometric searching and modeling of 2D and 3D
COMPSCI 165 Project in Algorithms and Data Structures
- Units
- 4
- Prerequisite
- COMPSCI 161. Recommended: I&C SCI 45C
Design, implementation, execution, and analysis of algorithms for problems such as sorting, searching, data compression, and data encryption. Time-space-structure trade-offs.
COMPSCI 166 Quantum Computation and Information
- Units
- 4
- Prerequisite
- (I&C SCI 6N with a minimum grade of C+ or MATH 3A with a minimum grade of C+) and (COMPSCI 161 or PHYSICS 113A)
Basic models for quantum computation and their foundations in quantum mechanics. Quantum complexity classes and quantum algorithms, including algorithms for factoring and quantum simulation. Introduction to quantum information theory and quantum entanglement.
COMPSCI 167 Introduction to Applied Cryptography
- Units
- 4
- Prerequisite
- COMPSCI 161
An introduction to the essential aspects of applied cryptography, as it is used in practice. Topics include classical cryptography, block ciphers, stream ciphers, public-key cryptography, digital signatures, one-way hash functions, basic cryptographic protocols, and digital certificates and credentials.
COMPSCI 169 Introduction to Optimization
- Units
- 4
- Prerequisite
- (I&C SCI 6N or MATH 3A) and (MATH 2B or AP Calculus BC with a minimum score of 4) and COMPSCI 161
A broad introduction to optimization. Unconstrained and constrained optimization. Linear and integer programming. Combinatorial and geometric optimization. AI-assisted optimization and optimization applications to AI.
COMPSCI 171 Introduction to Artificial Intelligence
- Units
- 4
- Prerequisite
- I&C SCI 46 and (MATH 2B or AP Calculus BC with a minimum score of 4) and STATS 67 or ((STATS 7 or AP Statistics with a minimum score of 3) and STATS 120A)
Different means of representing knowledge and uses of representations in heuristic problem solving. Representations considered include predicate logic, semantic nets, procedural representations, natural language grammars, and search trees.
COMPSCI 172B Neural Networks and Deep Learning
- Units
- 4
- Prerequisite
- (STATS 120A and STATS 120B) or MATH 121A or COMPSCI 178 or COMPSCI 273A
Neural network and deep learning from multiple perspectives. Theory of parallel distributed processing systems, algorithmic approaches for learning from data in various manners, applications to difficult problems in AI from computer vision, to natural language understanding, to bioinformatics and chemoinformatics.
COMPSCI 172C Artificial Intelligence Frontiers: Technical, Ethical, and Societal
- Units
- 4
- Prerequisite
- COMPSCI 171 and COMPSCI 172B. Recommended: COMPSCI 178
Explores the frontiers of artificial intelligence and related technologies with a focus on the underlying ethical, legal, and societal challenges and opportunities they create. Encourages critical thinking about these issues.
COMPSCI 175 Project in Artificial Intelligence
- Units
- 4
- Prerequisite
- COMPSCI 171 and COMPSCI 178
Construction of a working artificial intelligence system. Evaluation of capabilities of the system including impact of knowledge representation.
COMPSCI 177 Applications of Probability in Computer Science
- Units
- 4
- Prerequisite
- (MATH 2B or AP Calculus BC with a minimum score of 4) and I&C SCI 6B and I&C SCI 6D and (MATH 3A or I&C SCI 6N) and STATS 67
Application of probability to real-world problems in computer science. Typical topics include analysis of algorithms and graphs, probabilistic language models, network traffic modeling, data compression, and reliability modeling.
COMPSCI 178 Machine Learning and Data-Mining
- Units
- 4
- Prerequisite
- I&C SCI 6B and I&C SCI 6D and (I&C SCI 6N or MATH 3A) and (MATH 2B or AP Calculus BC with a minimum score of 4) and STATS 67 or ((STATS 7 or AP Statistics with a minimum score of 3) and STATS 120A)
Introduction to principles of machine learning and data-mining applied to real-world datasets. Typical applications include spam filtering, object recognition, and credit scoring.
COMPSCI 179 Algorithms for Probabilistic and Deterministic Graphical Models
- Units
- 4
- Prerequisite
- COMPSCI 171
Graphical model techniques dealing with probabilistic and deterministic knowledge representations. Focuses on graphical models such as constraint networks, Bayesian networks, and Markov networks that have become a central paradigm for knowledge representation and reasoning in AI and general computer science.
COMPSCI 180A Project in Computer Science
- Units
- 4
- Prerequisite
- I&C SCI 46
Students to solve a substantial real-world problem with knowledge gained from many areas in computer science. Project has a focus on computer science but can overlap with neighbor disciplines.
COMPSCI 180B Project in Computer Science
- Units
- 4
- Prerequisite
- COMPSCI 180A. In Progress (IP) grade for COMPSCI 180A is also accepted
Students to solve a substantial real-world problem with knowledge gained from many areas in computer science. Project has a focus on computer science but can overlap with neighbor disciplines.
COMPSCI 183 Introduction to Computational Biology
- Units
- 4
- Prerequisite
- MATH 2D or MATH 3A or STATS 7 or STATS 8
The use of theories and methods based on computer science, mathematics, and physics in molecular biology and biochemistry. Basics in biomolecular modeling. Analysis of sequence and structural data of biomolecules. Analysis of biomolecular functions.
COMPSCI 184A Artificial Intelligence in Biology and Medicine
- Units
- 4
- Prerequisite
- I&C SCI 6N or MATH 3A
Introduction to computational methods in molecular biology, aimed at those interested in learning about this interdisciplinary area. Covers computational approaches to understanding and predicting the structure, function, interactions, and evolution of DNA, RNA, proteins, and related molecules and processes.
COMPSCI 184C Computational Systems Biology
- Units
- 4
- Prerequisite
- COMPSCI 184A
Computational inference and modeling of gene regulation networks, signal transduction pathways, and the effects of regulatory networks in cellular processes, development, and disease. Introduction of required mathematical, computational, and data handling tools.
COMPSCI 189 Project in Bioinformatics
- Units
- 4
- Prerequisite
- COMPSCI 184A with a minimum grade of C
Teaches problem definition and analysis, data representation, algorithm design, component integration, solution validation, and testability with teams specifying, designing, building, and testing a solution to a bioinformatics problem. Lectures include engineering values, discussions, and ethical ramifications of biomedical computing issues.
COMPSCI 190 Special Topics in Information and Computer Science
- Units
- 4
- Prerequisite
- Prerequisites vary
Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.
COMPSCI H198 Honors Research
- Units
- 4
Directed independent research in computer science for honors students.
COMPSCI 199 Individual Study
- Units
- 2-5
Individual research or investigation with Computer Science faculty.
COMPSCI 200S Seminar in Computer Science Research
- Units
- 1
Graduate colloquium series. Includes weekly talks by notable computer scientists.
COMPSCI 201 Foundations of Cryptographic Protocols
- Units
- 4
- Prerequisite
- COMPSCI 260 with a minimum grade of B- or COMPSCI 263 with a minimum grade of B-
Explores fundamental cryptographic tools, including encryption, signatures, and identification schemes. Students are introduced to the provable security paradigm of modern cryptography, focusing on understanding of security properties provided by cryptographic tools, and on proving security (or insecurity) of cryptographic constructions.
COMPSCI 201P Computer Security
- Units
- 4
- Prerequisite
- Knowledge of Python or C++ programming is required
Introduction to computer security, including systems, technology, and management. Topics include authorization, authentication, data integrity, malware, operating systems security, network security, web security, and basic cryptography.
COMPSCI 202 Applied Cryptography
- Units
- 4
- Prerequisite
- COMPSCI 260 with a minimum grade of B- and COMPSCI 263 with a minimum grade of B-
Design and analysis of algorithms for applied cryptography. Topics include symmetric and asymmetric key encryption, digital signatures, one-way hash functions, digital certificates and credentials, and techniques for authorization, non-repudiation, authentication, identification, data integrity, proofs of knowledge, and access control.
COMPSCI 203 Network and Distributed Systems Security
- Units
- 4
- Prerequisite
- EECS 148 or COMPSCI 132
Modern computer and networks security: attacks and countermeasures, authentication, identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Group communication and multicast security techniques. Covers secure e-commerce and applications of public key methods, digital certificates, and credentials.
COMPSCI 203P Network Security
- Units
- 4
- Prerequisite
- COMPSCI 201P with a minimum grade of B- or COMPSCI 202P with a minimum grade of B-
Introduction to network security, including network threats and attacks, as well as defenses against such attacks. Topics include network infrastructure security, mobile and Wi-Fi security, spam, phishing, firewalls, anonymity, secure email, secure and private cloud computing, and web security.
COMPSCI 204 Usable Security and Privacy
- Units
- 4
Examines how to design for security and privacy from a user-centered perspective by combining insights from computer systems and human-centered computing. Explores several challenges in integrating usability into core security and privacy systems design.
COMPSCI 205 Computer and Systems Security
- Units
- 4
- Prerequisite
- COMPSCI 134 and COMPSCI 142A and COMPSCI 143A
Lecture and discuss latest security research in software, OS, protocols, mobile devices, machine learning, sensors, and emerging IoT/CPS systems such as smart home and smart transportation. Students perform research projects and gain hands-on experience evaluating and designing secure systems.
COMPSCI 206 Principles of Scientific Computing
- Units
- 4
- Prerequisite
- Basic courses in multivariate calculus, linear algebra, and probability
Overview of widely used principles and methods of numerical and scientific computing, including basic concepts and computational methods in linear algebra, optimization, and probability.
COMPSCI 211A Visual Computing
- Units
- 4
Fundamentals of image processing (convolution, linear filters, spectral analysis), vision geometry (projective geometry, camera models and calibration, stereo reconstruction), radiometry (color, shading, illumination, BRDF), and visual content synthesis (graphics pipeline, texture- bump-, mip-mapping, hidden surface removal, anti-aliasing).
COMPSCI 211B Computer Graphics and Visualization
- Units
- 4
- Prerequisite
- COMPSCI 211A with a minimum grade of B-
Interactive 3D graphics rendering pipeline, illumination and shading, ray tracing, texture-, bump-, mip-mapping, hidden surface removal, anti-aliasing, multiresolution representations, volume rendering techniques, iso-surface extraction.
COMPSCI 216 Image Understanding
- Units
- 4
- Prerequisite
- I&C SCI 6D and (I&C SCI 6N or MATH 6G or MATH 3A) and MATH 2B and I&C SCI 46
The goal of image understanding is to extract useful semantic information from image data. Course covers low-level image and video processing techniques, feature descriptors, segmentation, objection recognition, and tracking.
COMPSCI 217 Light and Geometry in Computer Vision
- Units
- 4
- Prerequisite
- I&C SCI 6D and (I&C SCI 6N or MATH 6G or MATH 3A) and MATH 2B and I&C SCI 46 and COMPSCI 211A with a minimum grade of B-
Examines the issues of light transport and multiview geometry in computer vision. Applications include camera calibration, 3D understanding, stereo reconstruction, and illumination estimation.
COMPSCI 219S Seminar in Graphics and Visualization
- Units
- 2
Current research and research trends in computer graphics, visualization, virtual/augmented reality, and other visual computing topics.
COMPSCI 220P Databases and Data Management
- Units
- 4
Introduction to the design of databases and the use of database management systems (DBMS) for managing and utilizing data. Topics include entity-relationship modeling for design, relational data model, relational algebra, relational schema design, and use of SQL (Structured Query Language).
COMPSCI 221 Information Retrieval, Filtering, and Classification
- Units
- 4
- Prerequisite
- COMPSCI 161 and COMPSCI 171 and (I&C SCI 6N or MATH 3A or MATH 6G)
Algorithms for the storage, retrieval, filtering, and classification of textual and multimedia data. The vector space model, Boolean and probabilistic queries, and relevance feedback. Latent semantic indexing; collaborative filtering; and relationship to machine learning methods.
COMPSCI 222 Principles of Data Management
- Units
- 4
- Prerequisite
- COMPSCI 122A and (I&C SCI 53 or COMPSCI 143A)
Covers fundamental principles underlying data management systems. Content includes key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.
COMPSCI 222P Principles of Data Management
- Units
- 4
- Prerequisite
- Required: C++ programming skills, understanding of data structures and algorithms
Covers fundamental principles underlying data management systems. Understanding and implementation of key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.
COMPSCI 223 Transaction Processing and Distributed Data Management
- Units
- 4
Covers fundamental principles underlying transaction processing including database consistency, concurrency control, database recovery, and fault-tolerance. Includes transaction processing in centralized, distributed, parallel, and client-server environments.
COMPSCI 223P Transaction Processing and Distributed Data Management
- Units
- 4
- Prerequisite
- Recommended: Knowledge of basic concepts of databases such as entity-relation diagram, relational model, relational algebra, and SQL, record storage, and indexing
Introduction to fundamental principles underlying transaction processing systems including database consistency, atomicity, concurrency control, database recovery, replication, commit protocols, and fault-tolerance. Includes transaction processing in centralized, distributed, parallel, and client-server environments.
COMPSCI 224P Big Data Systems
- Units
- 4
- Prerequisite
- Knowledge of fundamental database concepts and data management techniques
Focuses on Big Data management frameworks such as Hadoop and Spark. Also covers relational and non-relational database technologies, including document (“NoSQL”) databases as well as emerging cloud data management solutions.
COMPSCI 230 Distributed Computer Systems
- Units
- 4
Principles of distributed computing systems. Topics covered include message-passing, remote procedure calls, distributed shared memory synchronization, resource and process/thread management, distributed file systems, naming and security.
COMPSCI 231P Parallel and Distributed Computing for Professionals
- Units
- 4
Covers a wide variety of concepts related to the design and application of high-performance concurrent computing systems, including architectural features, communications networks and models, parallel program development for numerical and non-numerical applications, programming models, and more.
COMPSCI 232 Computer and Communication Networks
- Units
- 4
- Prerequisite
- EECS 148 or COMPSCI 132
Network architecture of the Internet, telephone networks, cable networks, and cell phone networks. Network performance models. Network performance models. Advanced concepts and implementations of flow and congestion control, addressing, internetworking, forwarding, routing, multiple access, streaming, and quality-of-service.
COMPSCI 232P Computer and Communication Networks
- Units
- 4
Internet architecture, protocols, and services. Advanced concepts of IP and TCP, including addressing, internetworking, forwarding, routing, and implementations of flow and congestion control. Internet services such as Network Address Translation and Domain Name Servers. Overview of Local Area Networks.
COMPSCI 233 Networking Laboratory
- Units
- 4
- Prerequisite
- EECS 148 or COMPSCI 132
A laboratory-based introduction to basic networking concepts such as addressing, sub-netting, bridging, ARP, and routing. Network simulation and design. Structured around weekly readings and laboratory assignments.
COMPSCI 234 Advanced Networks
- Units
- 4
- Prerequisite
- NET SYS 201 with a minimum grade of B- or COMPSCI 232 with a minimum grade of B- or EECS 248A with a minimum grade of B-
Design principles of networked systems, advanced routing and congestion control algorithms, network algorithms, network measurement, management, security, Internet economics, and emerging networks.
COMPSCI 236 Wireless and Mobile Networking
- Units
- 4
- Prerequisite
- EECS 148 or COMPSCI 132
Introduction to wireless networking. The focus is on layers 2 and 3 of the OSI reference model, design, performance analysis, and protocols. Topics covered include: an introduction to wireless networking, digital cellular, next generation cellular, wireless LANs, and mobile IP.
COMPSCI 237 Middleware for Networked and Distributed Systems
- Units
- 4
- Prerequisite
- An undergraduate-level course in operating systems and networks
Discusses concepts, techniques, and issues in developing distributed systems middleware that provides high performance and Quality of Service for emerging applications. Also covers existing standards (e.g., CORBA, DCOM, Jini, Espeak) and their relative advantages and shortcomings.
COMPSCI 238 Advanced Operating Systems
- Units
- 4
- Prerequisite
- COMPSCI 143A
Focuses on advanced and graduate-level topics in operating systems. Presents important recent developments in operating systems, topics not covered in undergraduate operating systems courses. This includes novel operating system designs and techniques to improve existing ones.
COMPSCI 238P Operating Systems
- Units
- 4
- Prerequisite
- Working knowledge of C and the Linux environment
In-depth organization of the core operating system abstraction and its implementation (virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, inter-process communication, hardware interface, etc.) and a range of recent developments in de-facto industry standard operating systems.
COMPSCI 241 Advanced Compiler Construction
- Units
- 4
- Prerequisite
- COMPSCI 142A
Advanced study of programming language implementation techniques: optimizations such as common sub-expression elimination, register allocation, and instruction scheduling. Implementation of language features such as type-directed dispatch, garbage collection, dynamic linking, and just-in-time code generation.
COMPSCI 242 Parallel Computing
- Units
- 4
Definition of parallel processing systems. Theory and application of arrays, trees, and hypercubes. Computational models, applications: sorting, integer arithmetic, matrix operations, Fast Fourier Transform, and others. Interconnection networks: a framework for the description, analysis, and construction of hypercube-derived networks.
COMPSCI 244 Introduction to Embedded and Ubiquitous Systems
- Units
- 4
- Prerequisite
- I&C SCI 51 and COMPSCI 152 and COMPSCI 161 and (I&C SCI 6N or MATH 3A or MATH 6G or I&C SCI 6D). B.S. degree in Computer Science is also accepted
Embedded and ubiquitous system technologies including processors, DSP, memory, and software. System interfacing basics; communication strategies; sensors and actuators, mobile and wireless technology. Using pre-designed hardware and software components. Design case studies in wireless, multimedia, and/or networking domains.
COMPSCI 244P Internet of Things
- Units
- 4
- Prerequisite
- Undergraduate-level familiarity with fundamentals of integrated circuit blocks, processors, optimization/algorithm design, and some programming experience
Develops a comprehensive understanding of the hardware and software technology, the communication protocols, and the security and privacy requirements underlying the Internet of Things ecosystem, particularly those using computing elements (processors, DSPs/ ASIPs), sensors, and accessing cloud services.
COMPSCI 247 Complex Software Systems: Project Course
- Units
- 4
- Prerequisite
- COMPSCI 222 (may be taken concurrently) with a minimum grade of B- or COMPSCI 238 (may be taken concurrently) with a minimum grade of B- or COMPSCI 241 (may be taken concurrently) with a minimum grade of B-
Building complex systems software systems, such as Database Management Systems, Operating Systems, and Optimizing Compilers. Such systems often involve low-level programming and intricate performance optimizations. Students learn how to build such a system.
COMPSCI 248A Introduction to Ubiquitous Computing
- Units
- 4
The "disappearing computer" paradigm. Differences to the desktop computing model: applications, interaction in augmented environments, security, alternate media, small operating systems, sensors, and embedded systems design. Evaluation by project work and class participation.
COMPSCI 250A Computer Systems Architecture
- Units
- 4
- Prerequisite
- COMPSCI 152
Study of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.
COMPSCI 250B Modern Computer Systems
- Units
- 4
- Prerequisite
- Required: Undergraduate-level understanding of computer architecture concepts
Fundamental concepts and recent advances in computer systems architecture necessary to achieve high performance and efficiency on systems available today. Topics span modern processor features, accelerators, storage and network architectures, as well as architecture-optimized software.
COMPSCI 250P Computer Systems Architecture
- Units
- 4
- Prerequisite
- Undergraduate-level familiarity with fundamentals of integrated circuit blocks, processors, and optimization/algorithm design, and some programming experience
Study of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.
COMPSCI 253 Analysis of Programming Languages
- Units
- 4
Concepts in modern programming languages, their interaction, and the relationship between programming languages and methods for large-scale, extensible software development. Empirical analysis of programming language usage.
COMPSCI 253P Advanced Programming and Problem Solving
- Units
- 4
- Corequisite
- COMPSCI 260P
Provides in-depth preparation for industry interviews requiring demonstration of problem solving and programming skills. Emphasis is on understanding problem statements, considering edge cases, developing effective test cases, designing correct solutions, explaining these clearly, and implementing a solution correctly.
COMPSCI 256 Systems and Machine Learning
- Units
- 4
- Prerequisite
- Recommended: An undergraduate machine-learning course and an undergraduate course in one of the following areas: networking, distributed systems, or operating systems
Course is divided into two parts. The first half covers recent research in systems for machine learning (ML) that enabled rapid progress in ML/AI. The second half revolves around application of machine learning in systems.
COMPSCI 257 Brain-Inspired Learning Systems
- Units
- 4
Introduces the latest developments in machine learning and cognitive computing algorithms inspired by the human brain. Includes examining various neural coding approaches for data representation and developing classification and reasoning algorithms that model human cognitive behavior.
COMPSCI 259S Seminar in Design Science
- Units
- 2
Current research and research trends in design science. Forum for presentation and criticism by students of research work in progress.
COMPSCI 260 Fundamentals of the Design and Analysis of Algorithms
- Units
- 4
- Prerequisite
- COMPSCI 161
Covers fundamental concepts in the design and analysis of algorithms and is geared toward non-specialists in theoretical computer science. Topics include: deterministic and randomized graph algorithms, fundamental algorithmic techniques like divide-and-conquer strategies and dynamic programming, and NP-completeness.
COMPSCI 260P Algorithms with Applications
- Units
- 4
Covers fundamental concepts in the design and analysis of algorithms and is geared toward practical application and implementation. Topics include greedy algorithms, deterministic and randomized graph algorithms, models of network flow, fundamental algorithmic techniques, and NP-completeness.
COMPSCI 261 Data Structures
- Units
- 4
- Prerequisite
- I&C SCI 46 and COMPSCI 161
An in-depth treatment of data structures and their associated management algorithms including resource complexity analysis.
COMPSCI 261P Data Structures with Applications
- Units
- 4
Data structures and their associated management algorithms, including their applications and analysis.
COMPSCI 262P Text Processing and Information Retrieval
- Units
- 4
Techniques for text pattern matching and algorithms for the storage, retrieval, and classification of textual and multimedia data. Topics include string searching, string data structures, document and website retrieval, and search engines.
COMPSCI 263 Analysis of Algorithms
- Units
- 4
- Prerequisite
- COMPSCI 161 and COMPSCI 261 with a minimum grade of B-
Analysis of correctness and complexity of various efficient algorithms; discussion of problems for which no efficient solutions are known.
COMPSCI 265 Graph Algorithms
- Units
- 4
- Prerequisite
- Recommended: COMPSCI 161, COMPSCI 260, or equivalent
Graph definitions, representation methods, graph problems, algorithms, approximation methods, and applications.
COMPSCI 266 Computational Geometry
- Units
- 4
- Prerequisite
- COMPSCI 161 or COMPSCI 260 with a minimum grade of B-
The design and analysis of algorithms and data structures for computational geometry, with applications to machine learning, computer vision, and graphics. Topics: convex hulls, Voronoi diagrams, Delaunay triangulations, geometric arrangements, polygon triangulation, and data structures for geometric searching and modeling.
COMPSCI 268 Introduction to Optimization
- Units
- 4
A broad introduction to optimization. Unconstrained and constrained optimization. Linear and integer programming. Combinatorial and geometric optimization. AI-assisted optimization and optimization applications to AI.
COMPSCI 271 Introduction to Artificial Intelligence
- Units
- 4
The study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental subdisciplines of artificial intelligence including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.
COMPSCI 271P Artificial Intelligence
- Units
- 4
The study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental sub-disciplines of artificial intelligence, including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.
COMPSCI 272 Statistical Natural Language Processing
- Units
- 4
- Prerequisite
- COMPSCI 171 and COMPSCI 178
Statistical models, machine learning algorithms, and computational tasks involved in natural language processing. Focuses on approaches that learn these models from data, and covers applications such as information extraction, dialog systems, machine translation, and question answering.
COMPSCI 273A Machine Learning
- Units
- 4
- Prerequisite
- COMPSCI 271 with a minimum grade of B- and COMPSCI 206 with a minimum grade of B-
Computational approaches to learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes.
COMPSCI 273P Machine Learning and Data Mining
- Units
- 4
- Prerequisite
- Required: Python programming knowledge
Introduction to principles of machine learning and data-mining. Learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes.
COMPSCI 274A Probabilistic Learning: Theory and Algorithms
- Units
- 4
- Prerequisite
- COMPSCI 206 with a minimum grade of B-
An introduction to probabilistic and statistical techniques for learning from data, including parameter estimation, density estimation, regression, classification, and mixture modeling.
COMPSCI 274B Learning in Graphical Models
- Units
- 4
- Prerequisite
- COMPSCI 274A with a minimum grade of B-
Models for data analysis are presented in the unifying framework of graphical models. The emphasis is on learning from data but inference is also covered. Real world examples are used to illustrate the material.
COMPSCI 274C Neural Networks and Deep Learning
- Units
- 4
- Prerequisite
- (STATS 120A and STATS 120B) or MATH 121A or COMPSCI 178 or COMPSCI 273A with a minimum grade of B-
Neural network and deep learning from multiple perspectives. Theory of parallel distributed processing systems, algorithmic approaches for learning from data in various manners, applications to difficult problems in AI from computer vision, to natural language understanding, to bioinformatics and chemoinformatics.
COMPSCI 274D Artificial Intelligence Frontiers: Technical, Ethical, and Societal
- Units
- 4
- Prerequisite
- Recommended: COMPSCI 172B and COMPSCI 178
Explores the frontiers of artificial intelligence and related technologies with a focus on the underlying ethical, legal, and societal challenges and opportunities they create. Encourages critical thinking about these issues.
COMPSCI 274E Deep Generative Models
- Units
- 4
- Prerequisite
- COMPSCI 178 or COMPSCI 273A with a minimum grade of B- or STATS 120B. Recommended: Advanced machine learning or graphical models courses such as COMPSCI 274A or COMPSCI 274B or COMPSCI 273C or COMPSCI 276
Discusses probabilistic approaches to deep learning such as generative models and their applications in computer vision, NLP, the natural sciences, and other fields. Coursework may include both homework and project components.
COMPSCI 274P AI Foundations: Neural Networks and Deep Learning
- Units
- 4
- Prerequisite
- COMPSCI 271P with a minimum grade of B. Required: Knowledge of Python programming
Introduction to principles of machine learning and neural networks. Architecture design. Feedforward and recurrent networks. Learning models and algorithms. Applications to data analysis and prediction problems in areas such as machine vision, natural language processing, biomed, and finance.
COMPSCI 275 Network-Based Reasoning/Constraint Networks
- Units
- 4
- Prerequisite
- Basic course in algorithm design and analysis
Study of the theory and techniques of constraint network model. Covers techniques for solving constraint satisfaction problems: backtracking techniques, consistency algorithms, and structure-based techniques. Tractable subclasses. Extensions into applications such as temporal reasoning, diagnosis, and scheduling.
COMPSCI 275P Graphical Models and Statistical Learning
- Units
- 4
- Prerequisite
- COMPSCI 273P with a minimum grade of B. Required: Python programming experience
Introduction to principles of statistical machine learning with probabilistic graphical models. Studies efficient inference algorithms based on optimization-based variational methods, and simulation-based Monte Carlo methods. Several approaches to learning from data are covered.
COMPSCI 276 Causal and Probabilistic Reasoning with Graphical Models
- Units
- 4
- Prerequisite
- Recommended: A basic course in probability
Provides in-depth exposition of causal reasoning and probabilistic graphical models theory and algorithms within Structural Causal Models and Bayesian Networks. Covers algorithms for Bayesian networks and central concepts (e.g., identifiability, the do-calculous, counterfactuals)
COMPSCI 277 Control and Reinforcement Learning
- Units
- 4
- Prerequisite
- COMPSCI 178 or COMPSCI 273A with a minimum grade of B-. Recommended: COMPSCI 274A and COMPSCI 275B and COMPSCI 275C and COMPSCI 276
Introduction to learning agents that make sequences of decisions to interact with a system and control it. The main focus is reinforcement learning from a reward signal, with emphasis on algorithms that can learn differentiable policy parametrizations (Deep Reinforcement Learning).
COMPSCI 278 Probability Models
- Units
- 4
- Prerequisite
- STATS 120A
Advanced probability, discrete time Markov chains, Poisson processes, continuous time Markov chains. Queuing or simulation as time permits.
COMPSCI 279 Foundations of Multi-Agent Systems
- Units
- 4
- Prerequisite
- Recommended: (COMPSCI 161 or CSE 161) and COMPSCI 171. Knowledge of Python
Introduction to the fundamental principles of multi-agent systems. Techniques for centralized/decentralized planning for cooperative/competitive agents. Examples include robotic warehousing and homeland security.
COMPSCI 280 Algorithmic Game Theory
- Units
- 4
Cover topics at the interface of theoretical computer science and economics: zero sum games and LP duality, mechanism design, voting and impossibility theorems, "price of anarchy". Algorithms and complexity theory for learning and computing Nash equilibria.
COMPSCI 284A Artificial Intelligence in Biology and Medicine
- Units
- 4
- Prerequisite
- A Basic course in algorithms or a basic course in molecular biology
Introduction to computational methods in molecular biology, aimed at those interested in learning about this interdisciplinary area. Covers computational approaches to understanding and predicting the structure, function, interactions, and evolution of DNA, RNA, proteins, and related molecules and processes.
COMPSCI 284C Computational Systems Biology
- Units
- 4
- Prerequisite
- COMPSCI 284A with a minimum grade of B- or (BIO SCI 99 and MATH 2D)
Computational inference and modeling of gene regulation networks, signal transduction pathways, and the effects of regulatory networks in cellular processes, development, and disease. Introduction of required mathematical, computational, and data handling tools.
COMPSCI 287 Approximation Algorithms
- Units
- 4
- Prerequisite
- COMPSCI 161 (may be taken concurrently) with a minimum grade of B-. Required: A course on Linear Programming or working knowledge of LP-duality theory and working knowledge of complexity theory and NP-completeness
Most optimization problems arising in practice turn out to be NP-hard and therefore intractable. A pragmatic recourse is the design of polynomial time algorithms which find near-optimal solutions. This idea has led to a deep theory to address such problems.
COMPSCI 288 Algorithms for Matching Markets
- Units
- 4
- Prerequisite
- Recommended: COMPSCI 263 and COMPSCI 295 (when the topic title is Game Theory), or a course on linear programming, or working knowledge of LP-duality theory
Discusses algorithms underlying matching markets, drawing ideas from CS theory, economics, and game-theory. Topics include Gale-Shapley stable-matching algorithm, its incentive compatibility and LP formulation; online bipartite matching and Adwords market; one-sided matching markets; and market equilibria.
COMPSCI 290 Research Seminar
- Units
- 2
Forum for presentation and criticism by students of research work in progress. Presentation of problem areas and related work. Specific goals and progress of research.
COMPSCI 290P Special Topics in Information and Computer Science
- Units
- 4
Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.
COMPSCI 291P Professional Development for Computer Science Careers
- Units
- 0.5
Prepares students for career success through workshops, coaching, experiential learning, building skills in job search, networking, interviewing, and negotiation while developing professional identity and long-term career management strategies.
COMPSCI 295 Special Topics in Information and Computer Science
- Units
- 4
Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.
COMPSCI 295P Keystone Project for Computer Science
- Units
- 4
Design and development of a software system or a hardware component of a system based on knowledge of advanced computer science principles. Students implement at least a working prototype and test this using relevant input data.
COMPSCI 297AP Capstone Project I
- Units
- 4
Design and development of a software system or a hardware component of a system based on knowledge of advanced computer science principles. Students implement at least a working prototype and test this using relevant input data.
COMPSCI 297BP Capstone Project II
- Units
- 4
Design and development of app, software system, or hardware component of system based on students' prior knowledge of advanced computer science principles. Implement at least a working prototype and test this using relevant use cases and/or input data.
COMPSCI 297P Capstone Design Project for Computer Science
- Units
- 4
Design and development of app, software system, or hardware component of system based on students' prior knowledge of advanced computer science principles. Implement at least a working prototype and test this using relevant use cases and/or input data.
COMPSCI 298 Thesis Supervision
- Units
- 2-12
Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.
COMPSCI 298P Computer Science Practicum
- Units
- 1-4
Internship in which students work individually at an outside organization to gain experience with the challenges involved in technology-related work.
COMPSCI 299 Individual Study
- Units
- 1-12
Individual research or investigation with Computer Science faculty.
COMPSCI 299P Individual Study
- Units
- 1-4
Supervised individual study in computer science.