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 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 222 Natural Language Processing 4 Units, Lecture, 3 hours; individual study, 3 hours. Prerequisite(s): CS 171 or CS 172 or CS 173; CS 224 or CS 228 or CS 229; or equivalent.; graduate standing; or consent of instructor. Introduces Natural Language Processing (NLP), the study of computing systems that understand or communicate with human language. Covers both historical and contemporary NLP tasks and the fundamental methods of NLP "particularly deep learning-based approaches. " Topics include basic classification techniques, feedforward neural networks, attention mechanisms, and pre-trained neural models. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 224/ EE 242a 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 hands on 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/EE 242b 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 230 Computer Graphics 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 141 or CS 218; MATH 031 or MATH 131; graduate standing or consent of instructor. Covers advanced topics related to graphics and necessary fundamentals. Includes geometry representations; affine and perspective transforms; rendering with global illumination and other light models; shading and texture mapping; rasterization and anti-aliasing techniques; and hierarchical and keyframe animation. Also includes projects and/or in-depth programming assignments. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
CS 231 Computer Animation 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 130 or CS 230. Covers topics in computer animation including motion capture, inverse kinematics, and dynamic simulation. Also examines deformable systems and other natural phenomena, facial animation, high-level behavior control, creature evolution, and procedural techniques. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
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 241 Advanced Topics in Network Measurements and Security 4 Units, Lecture, 3 hours; research, 3 hours. Prerequisite(s): CS 164 or equivalent. Introduces measuring and building real network systems. Includes hands on measurement studies and tools. Covers fundamental mathematical and statistical tools; exposure to implementation studies and techniques; principles of network architectures; and challenges in building testbeds and conducting measurements. Explores measurements and modeling of wireline, ad hoc, sensor, and cellular networks. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Course is repeatable as content changes to a maximum of 8 units.
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 249 Advanced Program Analysis 4 Units, Lecture, 3 hours; individual study, 3 hours. Prerequisite(s): CS 201, CS 206; restricted to major(s) ; graduate standing; or consent of instructor. Introduces the key concepts behind modern program analysis techniques focusing on static analysis. Topics include type inference, dataflow analysis, interprocedural analysis, control-flow analysis, and pointer analysis. Provides a foundation for applying program analysis in other domains or researching new analysis techniques. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor.
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 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 258/ EE 256 Introduction to Reinforcement Learning 4 Units, Lecture, 3 hours; discussion, 1 hour. Prerequisite(s): EE 215 or EE 244 or CS 224 or EE 228 or CS 228 or EE 251B or CS 252B; graduate standing; or consent of instructor. This course introduces key ideas and algorithms of reinforcement learning (RL). Key topics covered include finite Markov Decision Process (MDP), dynamic programming, Monte Carlo methods, temporal-difference learning, policy gradient methods, safety-constrained RL, batch-constrained RL, multi-agent RL, multi-armed bandits, and imitation learning. May be taken Satisfactory (S) or No Credit (NC) with consent of instructor and graduate advisor. Cross-listed with EE 227.
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