Breadcrumb

Graduate Course Descriptions

Description of graduate courses offered during this academic year. Please refer to the General Catalog for a comprehensive list of all Computer Science courses.

Course Course Title Description
CS 201 Compiler Construction 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 152. Covers theory of parsing and translation. Also addresses compiler construction including lexical analysis, syntax analysis, code generation, and optimization. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 202 Advanced Operating Systems 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 153. Examines recent developments in operating systems. Also covers multiprogramming, parallel programming, time sharing, scheduling and resource allocation, and selected topics. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 203 Advanced Computer Architecture 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 161. Covers contemporary computer systems architecture including pipelined CPU design, instruction level parallelism (ILP), memory hierarchy, thread level parallelism, introduction to multiprocessing, and evaluation of computer performance. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 204 Advanced Computer Networks 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 010C with a grade of C- or better, CS 164; graduate standing. Covers advanced topics in computer networks, layering, Integrated Services Digital Networks (ISDN), and high-speed networks. Also covers performance models and analysis, distributed systems and databases, and case studies. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 205 Artificial Intelligence 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 170; or equivalent; graduate standing. Examines knowledge representation and automated reasoning and their use in capturing common sense and expert knowledge. Also addresses predicate and nonmonotonic logics; resolution and term rewriting; reasoning under uncertainty; theorem provers; planning systems; and belief networks. Includes topics in natural language processing, perception, logic programming, expert systems, and deductive databases. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 206 Advanced Software Testing and Analysis 4 Units, Lecture, 3 hours; individual study, 3 hours. Prerequisite(s): CS 141, CS 150, or equivalents; graduate standing. Introduces techniques to verify that software runtime behavior meets its specifications. Topics include model checking (safety, liveness, temporal logics, and abstraction); static and dynamic analysis (data flow analysis, concept analysis, program slicing, and invariant detection); testing (test generation, prioritization, suite reduction, and regression); and automated debugging (fault location and visualization). May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 210 Scientific Computing 4 Units, Lecture, 4 hours. Prerequisite(s): CS 010B, MATH 010A; MATH 031 or equivalent; graduate standing; or consent of instructor. Utilizes scientific computing in a specific computer science research area. Provides a foundation for pursuit of further studies of special topics in scientific computing. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 211 High Performance Computing 4 Units, Lecture, 3 hours. Prerequisite(s): CS 161;graduate standing; or consent of instructor. Introduces performance optimization for sequential computer programs. Covers high performance computing on multicore shared memory computers and on distributed memory computing clusters. Also covers high performance scientific libraries and computing application development using pthreads, OpenMP, and Message Passing Interface (MPI)parallel file systems. May be taken Satisfactory(S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 213 Multiprocessor Architecture and Programming 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 203;graduate standing; or consent of instructor. Introduces multi-processing, multicore architectures, and CC-NuMA multiprocessors. Also covers heterogeneous multiprocessors and interconnection networks. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 214 Parallel Algorithms 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141; or equivalent; graduate standing. Covers basic concepts of parallel shared-memory algorithms such as theoretical models, scheduling, and concurrency. Addresses techniques for designing efficient parallel algorithms for computational problems in a variety of areas including sorting, searching, algebra, graph theory, data structures, computational geometry, and scheduling. Emphasizes correctness proofs and rigorous performance analysis. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 215 Theory of Computation 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 150. Covers phrase structure grammars and languages; turing machines; relation of languages to automata; solvable and unsolvable problems; and theoretical limitations of computers. Also examines algorithmic complexity theory; polynomial reducibility; the classes P and NP; and correctness proofs. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 216 Cryptography 4 Units, Lecture, 3 hours; written work, 3 hours. Prerequisite(s): CS 141, CS 150; or equivalents; graduate standing. Introduction to advanced cryptography. Covers formal models of security and applications including public key encryption, digital signatures, and secure protocols. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS/EE 217 GPU Architecture and Parallel Programming 4 Units, Lecture, 3 hours; consultation, 1 hour. Prerequisite(s): CS 160 with a grade of “C-” or better or consent of instructor. Introduces the popular CUDA based parallel programming environments based on Nvidia GPUs. Covers the basic CUDA memory/ threading models. Also covers the common data-parallel programming patterns needed to develop a high-performance parallel computing applications. Examines computational thinking; a broader range of parallel execution models; and parallel programming principles. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Cross-listed with EE 217.
CS 218 Design and Analysis of Algorithms 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141; graduate standing. Covers efficient algorithms and data structures for problems from a variety of areas such as sorting, searching, selection, linear algebra, graph theory, and combinatorial optimization. Focuses on techniques for algorithm design (greedy, divide-and-conquer, dynamic programming) and rigorous proofs of correctness and time- and space-complexity(amortized analysis, Master Theorem). May betaken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 219 Advanced Algorithms 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 218; or equivalent; graduate standing. Covers advanced techniques for the design and analysis of algorithms and data structures. Topics include linear and integer programming, randomized algorithms, approximation algorithms, online algorithms, parallel algorithms, and distributed algorithms. Emphasizes formal proofs of correctness and rigorous performance analysis. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 220 Synthesis of Digital Systems  4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141, CS 161. Covers the synthesis and simulation of digital systems. Topics include synthesis at the system, behavioral, register-transfer, and logic levels; application-specific processors; simulation; and emerging system-on-a-chip design methodologies. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 224 Fundamentals of Machine Learning 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 100, STAT 155, MATH 031; graduate standing. For the CS 224 online section: enrollment in the Online Master-in-Science in Engineering program; graduate standing. A study of generative and discriminative approaches to machine learning. Topics include probabilistic model fitting, gradient-based loss optimization, regularization, hyper-parameters, and generalization. Includes experience with data science programming environments, data from practice, and performance metrics. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 225 Spatial Data Modeling and Analysis 4 Units, Lecture, 3 hours; individualized study, 3 hours. Prerequisite(s): graduate standing; or consent of instructor. Introduction to the spatial computing technologies and techniques. Covers the fundamentals, the present, and the emerging use cases of spatial data analysis systems. Topics include spatial data modelling, spatial relationships, storage, indexing, query processing, and recent trends in the field. Includes a research-oriented project and handson experience on spatial technologies. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 226 Big-data Management 4 Units, Lecture, 3hours; term paper, 3 hours. Prerequisite(s): CS166 or CS 236; graduate standing. Introduction to the architecture and design of big data management systems. Covers the design of distributed file systems and high-throughput databases. Describes popular programming paradigms for big data including Map Reduce and Resilient Distributed Datasets. Includes a course project with hands-on experience on open-source big data systems. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS/EE 228 Deep Learning     4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 224 or EE 231 or EE 236 or EE 244 or CS 171 or EE 142; graduate standing; or consent of instructor. Explores fundamentals of deep neural networks and their applications in various machine learning tasks. Includes the fundamentals of perception, approximation, neural network architectures, loss functions, and generalization. Addresses optimization methods including backpropagation, automatic differentiation, and regularization. Covers non-standard problems including auto-encoders and probabilistic models. Presents applications in machine learning/computer vision. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Cross-listed with EE 228.
CS 229 Machine Learning 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 171 or EE 142 or CS 224; graduate standing. For the CS 229 online section; enrollment in the Online Master-in-Science in Engineering program; graduate standing. A study of supervised machine learning that emphasizes discriminative methods. Covers the areas of regression and classification. Topics include linear methods, instance-based learning, neural networks, kernel machines, and additive models. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Credit is awarded for one of the following CS 229 or EE 240.
CS 234 Computational Methods for Biomolecular Data 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 111; CS141 or CS 218; STAT 155 or STAT 160A; graduate standing. A study of computational and statistical methods aimed at automatically analyzing, clustering, and classifying biomolecular data. Includes combinatorial algorithms for pattern discovery; hidden Markov models for sequence analysis; analysis of expression data; and prediction of the three-dimensional structure of RNA and proteins. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Credit is awarded for one of the following CS 234 or CS 144
CS 235 Data Mining Techniques 4 Units,
Lecture,3 hours; term paper, 1.5 hours; activity,1.5 hours. Prerequisite(s): CS 141; CS 170is recommended. CS 235 online section: enrollment in the online Master of Science in Engineering program; graduate standing. Provides a broad background in the design and use of data mining algorithms and tools. Includes clustering, classification, association rules mining, time series clustering, and Web mining. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 236 Database Management Systems 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141; CS 166 recommended; graduate standing; or consent of instructor. Covers principles of file systems; architecture of database management systems; data models; and relational databases. Also examines logical and physical design of databases; hardware and software implementation of database systems; and distributed databases (e.g., query processing, concurrences, recovery). May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor
CS 238 Algorithmic Techniques in Computational Biology

4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141 or CS218; graduate standing. A study of fundamental algorithms for solving combinatorial or computational problems in molecular biology and genomics. Includes sequence alignment and multiple alignment; bio-database search; gene and regulatory signal recognition; DNA sequence assembly; physical mapping; and reconstruction of evolutionary trees. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Credit is awarded for one of the following CS 238 or CS 144.

CS 239 Performance Evaluation of Computer Networks     4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 164. Offers models and analytical techniques for evaluating the performance of computer networks. Covers basic and intermediate queuing theory and queuing networks and their application to practical systems. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 240 Network Routing 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141 or CS 204; CS 164. An in-depth study of routing in computer networks. Examines general principles and specific routing protocols and technologies. Topics include Internet, Asynchronous Transfer Mode (ATM), optical, wireless, and ad hoc networks. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 242 Informational Retrieval and Web Search 4 Units, Lecture, 3 hours; term paper, 1.5, hours; project, 1.5 hours. Prerequisite(s): CS 141, CS 166. CS 242 online section: enrollment in the online Master of Science in Engineering program. Introduces Information Retrieval (IR) principles and techniques for indexing and searching document collections with special emphasis on Web search. Includes text processing, ranking algorithms, search in social networks, search evaluation, and search engines scalability. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 246  Software Verification 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 111, CS 141, CS 150; or equivalents; graduate standing; or consent of instructor. A study of advanced techniques to specify and 264  | examine the correctness of complex systems and software. Focuses on concurrent and distributed behavior, formal description languages, temporal logics, model checking and symbolic model checking, partial order reduction, and the use of verification tools. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 247 Principles of Distributed Computing     4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 010C; graduate standing. Introduces the fundamental problems of distributed computing and the main algorithmic techniques used to solve these problems. Considers crashing processes and also malicious non-cooperating processes. Covers reliable broadcast, causal broadcast, total-order broadcast, distributed shared memory, consensus variants including blockchain consensus, atomic commit and terminating reliable broadcast, and replicated systems.
CS 250 Software Security 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 255; graduate standing; or consent of instructor. Discusses concepts, theories, and techniques in software security from both defensive and offensive perspectives. Topics include vulnerability and exploitation, malware, patching and hardening, reverse engineering, and forensics. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 251/EE 255 Real-Time Embedded Systems 4 Units, Lecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 120B or EE 120B; graduate standing. Covers fundamentals and principles of real-time embedded systems. Topics include uniprocessor and multiprocessor real-time scheduling, real-time operating systems, synchronization, resource reservation, memory management, and power management. Introduces mathematical techniques for real-time system analysis. Offers hands-on experience with designing, implementing, and evaluating real-time systems on embedded platforms. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Cross-listed with EE 255.
CS 253 Distributed Systems 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 153. Integrates the theory and practice of distributed systems with a focus on recent developments in distributed systems. Includes middleware architectures; distributed process management and real-time scheduling; dependability; and group communication protocols. Also covers distributed process management; replication; large-scale peer-to-peer systems; Internet content delivery; and Web caching. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 254 Network Security 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 165. Introduces the security problems in the networking domain, attacks and defenses, vulnerabilities in various network protocols. Topics include protocol security of DNS, TCP/ IP, SSL/TLS, applied cryptography, network side channel attacks, firewalls, censorship technology, internet measurement. Guides students to conduct small-scale research projects. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Course is repeatable.
CS 255 Computer Security 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 153 or CS 164 or CS 165. Discusses the theoretical and practical issues arising in the context of computer systems security and the principles underlying the design of secure computing environments. Topics include cryptography, security models, authentication protocols, network security, intrusion detection, attacks and their countermeasures, and secure systems design. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS/EE 277 Data-Centric Computer Architecture 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 161; graduate standing; or consent of instructor. Addresses the rapid growth of dataset size and the introduction of hardware accelerators, resulting in the data movement overhead becoming the major performance bottleneck. Includes system interconnects, I/O stacks, emerging non volatile memory technologies, near-data processing, and data flow architectures. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Cross-listed with EE 277.
CS 260 Seminar in Computer Science 4  Units, Seminar, 4 hours. Prerequisite(s): consent of instructor. Covers current research topics in computer science. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Course is repeatable to a maximum of 8 units.
CS 287 Colloquium in Computer Science 1 Unit, Colloquium, 1 hour. Prerequisite(s): graduate standing. Lecture on current research topics in computer science and topics relating to professional development presented by faculty members and visitors. Graded Satisfactory (S) or No Credit (NC). Course is repeatable.
CS 302 Apprentice Teaching 1 Unit, Activity, 3 hours. Prerequisite(s): enrollment limited to teaching assistants and associates in Computer Science Supervised teaching in upper- and lower-division Computer Science courses. Aids in the learning of effective teaching methods such as the handling of Computer Science discussion sections, preparation and grading of examinations, and student relations. Required each quarter of all Computer Science teaching assistants and associates. Graded Satisfactory (S) or No Credit (NC). Course is repeatable to a maximum of 15 units.
Let us help you with your search