Updated February 24, 2026
This page serves the purpose of helping graduate students understand each graduate course offered during the 2025-2026 academic year. Please use this page as a guideline to help decide what courses to take.
***290 seminar courses and other seminar courses do not have course descriptions
***Please be aware that our website is currently undergoing updates, and as a result, some course descriptions may not be available. This process is a collaborative effort involving the enrollment coordinator and instructors. Collecting course descriptions may therefore take some time as responses are gathered. If the course is listed under the tentative offerings page, the course is still being offered.
CSE 200 - Computability and Complexity with Prof. Shachar Lovett
Course Description: Computability review, including halting problem, decidable sets, r.e. sets, many-one reductions; TIME(t(n)), SPACE(s(n)) and general relations between these classes; L, P, PSPACE, NP; NP—completeness; hierarchy theorems; RP, BPP.
Required Knowledge: CSE 105 or equivalent class.
Enforced Prerequisite: CSE 105
Recommended Preparation for Those Without Required Knowledge: Learn the material of CSE 105
Link to Past Course: https://cseweb.ucsd.edu/classes/fa21/cse200-a/
CSE 203A - Advanced Algorithms with Prof. Daniel Kane
Course Description: Modern advances in design and analysis of algorithms. Exact syllabus varies. Topics include approximation, randomized algorithms, probabilistic analysis, heuristics, online algorithms, competitive analysis, models of memory hierarchy, parallel algorithms, number-theoretic algorithms, cryptanalysis, computational geometry, computational biology, network algorithms, VLSI CAD algorithms. This quarter, we will be focusing on randomized algorithms. Topics will include: hashing and fingerprinting algorithms, random walks, concentration bounds, sampling and counting algorithms, and streaming algorithms.
Required Knowledge: Algorithms, basic probability
Enforced Prerequisite: CSE 202
Recommended Preparation for Those Without Required Knowledge: Read an introductory graduate level book on algorithms and an introductory book on probability.
Link to Past Course: https://cseweb.ucsd.edu/~dakane/CSE203A/
CSE 208 - Advanced Cryptography with Prof. Mihir Bellare
Course Description: Zero-knowledge, secure computation, session-key distribution, protocols, electronic payment, one-way functions, trapdoor permutations, pseudorandom bit generators, hardcore bits. Prerequisites: CSE 202, CSE 200, and CSE 207 or consent of instructor.
Required Knowledge: CSE 207A or equivalent, experience with proofs of security in cryptography.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Introduction to Modern Cryptography (3rd edition)
Jonathan Katz and Yehuda Lindell
Link to Past Course: https://cseweb.ucsd.edu/~mihir/cse208-Wi20/index.html
CSE 223B - Distributed Computing & Systems with Prof. Alex Snoeren
Description: CSE 223B is a 4-unit graduate subject with lectures, paper discussions, a midterm, a final, and a major term research project culminating in writing a research paper of your own. It will present abstractions and implementation techniques that facilitate the design of distributed systems–including both operating systems and sophisticated Internet servers–that can deal with the demands of real-world workloads. Topics will include efficient operating system primitives, high-performance network servers, load shedding, storage systems, security, and fault tolerance.
Required Knowledge: CSE 221 (or consent of instructor) and substantial programming experience for lab assignments and term project. Note that CSE 223A is not a prerequsite. However, those interested in the theoretical underpinnings of distributed computation are encouraged to take CSE223A as well. CSE223A and CSE223B may be taken in any order.
Enforced Prerequisite: Yes. CSE 221 or consent of instructor.
Recommended Preparation for Those Without Required Knowledge: CSE221 / CSE222A
Link to Past Course: https://cseweb.ucsd.edu//classes/sp22/cse223B-a/
CSE 227 - Computer Security with Prof. Kumar
Course Description: This course focuses on computer security, exploring a range of topics – including systems security, web security, edge security, and privacy – to illustrate some of the modern research challenges in the area and the standards for advancement. It is not designed to be a tutorial course, but rather to give students the context to understand current security research and evaluate their interest in the field. The course will examine both the defensive and offensive side of the field. The course will culminate in a presentation of a quarter-long research project that students will conduct in small groups.
Required Knowledge: Undergraduate understanding of data structures, algorithms, operating systems, security, networks, cryptography.
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: None
CSE 230 - Principles of Programming Languages with Prof. Loris D'Antoni
Course Description: Course Description: Unlike most engineering artifacts, Programming Languag
I will not manage my own enrollment. Automatically approve BS/MS and UG requests.
Required Knowledge: Introductory functional programming class like CSE130
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Familiarization with functional programming
Link to Past Course: https://ucsd-cse230-
CSE 231 - Compiler Construction with Prof. Ranjit Jhala
Course Description: The course will focus on runtime systems for programming languages, and will be project-focused. Students will work individually and in groups to construct and measure pragmatic approaches to compiler construction and program optimization. Topics may vary depending on the interests of the class and trajectory of projects. Likely topics are just-in-time (JIT) compilation, memory management, and compiling for the Web (e.g. WASM, JavaScript), along with standard ahead-of-time optimizations.
Required Knowledge: Preparation similar to CSE 131 (one offering: https://ucsd-cse131-f19.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: The materials for CSE 131 are available online; you can complete the first few assignments at your own pace as extra preparation (https://ucsd-cse131-f19.
Link to Past Course: N/A
CSE 232 - Principles/Data Base Systems with Prof. Alin Deutsch
Course Description: The course presents the main ideas at the foundation of current relational database technology. Topics covered include:
The standard database query language SQL; impact of Hardware on Query Execution; Indexing (including B-trees and Hashing); Failure Recovery; Concurrency Control; Transaction Processing; Data Integration and Materialized Views; Column Stores
Required Knowledge: None
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: None, it is behind the canvas firewall.
CSE 232B - Database System Implementation with Prof. Alin Deutsch
Course Description: The course explores the internal structure of database systems via a project that takes students from specification of the grammar and semantics of the query language to implementing an evaluation engine for it, then building in optimizations. We use as vehicle the W3C Standard XML query language XQuery.
Required Knowledge: Students should have taken an introductory course on principles of database systems (CSE 132A or CSE 232, or equivalent project experience with SQL databases). They should also be very comfortable programming in Java.
Enforced Prerequisite: Yes or No? If yes, what is the prerequisite? Yes. Java programming, introductory database course or equivalent experience with SQL databases.
Recommended Preparation for Those Without Required Knowledge: Online Java programming course and intro db course or db project.
Link to Past Course: https://cseweb.ucsd.edu/classes/sp16/cse232B-a/
CSE 234 - with Prof. Arun Kumar
Description: This is a research-based course on data-centric aspects of the AI lifecycle, spanning development, deployment, and maintenance of AI applications. It is at the intersection of the areas of ML/AI, data management, and software systems. AI has long been ubiquitous in domains such as enterprise analytics, recommendation systems, social media analytics, and domain sciences. The rise of LLMs has made AI chatbots, RAG, and agentic applications pervasive for consumers as well. Students will learn about the landscape and evolution of such systems, the latest research, and some major open questions. This is a lecture-driven course with learning evaluation based on written quizzes and exams, peer discussions on cutting edge research papers, and hands-on AI programming assignments. This course is aimed primarily at MS students interested in building real-world AI applications, as well as PhD students interested in research in this space.
Required Knowledge: A course on ML algorithms is absolutely required. Python programming knowhow is also required.
An introductory course on databases/data management and a course on NLP or LLMs specifically are also highly recommended but not strictly required.
Enforced Prerequisite: Yes. A full course on ML algorithms, either here at UCSD or elsewhere. Any course or module on Python programming.
Or industrial experience or substantial project experience with applied ML/AI and Python programming suffices instead of courses.
Recommended Preparation for Those Without Required Knowledge: Any reputed textbooks on ML algorithms, deep learning, and LLMs/generative AI.
Link to Past Course: https://cseweb.ucsd.edu/classes/wi24/cse234-a/
CSE 241A - Integr/Computing Circuitry with Prof. Andrew Kahng
Description: Design methodologies and tradeoffs in the physical ("netlist to layout") implementation of VLSI systems. Algorithm and optimization foundations for solution of interconnection, clustering, partitioning, placement, power-ground distribution, clocking, routing, performance estimation, timing closure and other fundamental VLSI physical design problem classes. AI/ML applications (to design optimizations and design methodologies) will also be covered. Computer -aided design and performance analysis algorithms and optimization frameworks ae studied in the context of lectures/homeworks, design exercises and mini-projects.
Textbook: Weste and Harris, CMOS VLSI Design: A Circuits and Systems Perspective, 4th edition. Also: Free materials at https://www.ifte.de/books/
Required knowledge: Layout (ECE 165 or ECE 260A) and logic design (CSE 140) are strongly recommended as background.
Enforced Prerequisite: ECE 260A, CSE 140, and permission of the instructor.
Recommended Preparation for Those Without Required Knowledge: Study of a VLSI Design book such as Weste/Harris (used in ECE 260A), and browsing of a VLSI physical design algorithms book such as Sherwani, reading of free material at https://www.ifte.de/books/
Link to Past Course: N/A
CSE 251B - Deep Learning with Prof. Rose Yu
Course Description: This course covers the fundamentals of deep learning at the graduate level. We introduce multi-layer perceptrons, back-propagation, and automatic differentiation. We will also discuss Convolutional Neural Networks, Recurrent Neural Networks, Transformers, and advanced topics in deep learning. The course will be a combination of lectures, presentations, and deep learning competitions.
Required Knowledge: CSE 151A/251A or equivalent
Enforced Prerequisite: CSE 151A/251A or equivalent.
Recommended Preparation for Those Without Required Knowledge: Coursera's Machine Learning course by Andrew Ng ( coursera.org) Deep learning online book by Chris Bishop (https://issuu.com/cmb321/docs/deep_learning_ebook)
Link to Past Course: https://sites.google.com/view/cse151b-251b
CSE 253/253R - Machine Learning for Music with Prof. Julian McAuley
Course description: This course will introduce students to the application of machine learning to understand and generate music. The course will cover data structures for music representation; predictive tasks and music information retrieval; and techniques for algorithmic music synthesis.
Required knowledge: Students should be comfortable with programming (all example code will be in Python), and with basic optimization and linear algebra. No background in music is required.
Enforced prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Follow references posted in introductory (weeks 1/2) course material
Link to Past Course: N/A
CSE 276B - Human Robot Interaction with Prof. Laurel Riek
Course Description: Robots are entering our world - in homes, hospitals, roadways, schools, and workplaces. How do we make them functional, useful, and acceptable? This course will explore key computational, scientific, and design concepts in human-robot interaction (HRI). We will review foundational and recent papers in the field, and engage in projects with physical robots.
Required Knowledge: Students should have a deep interest in human-focused research questions and human-centered technology development. Students should be comfortable reading and discussing scientific papers. Additionally, this class requires familiarity with programming, data structures, and basic software engineering (e.g., CSE 8A, CSE 100, CSE 110). Students should be comfortable decomposing a complex problem, selecting suitable algorithms, and implementing them. Prior exposure to robotics is helpful, but not required. Experience using unix-like operating systems is also a plus.
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 283 - Bioinf III:Functional Genomics with Prof. Vineet Bafna
Course Description: The goal of this course is to (a) introduce you to the data modalities common in OMICS (Genomics, proteomics, ...) data analysis, and (b) to understand the algorithms used to analyze these data. There are two parts to the course. In the first part, we learn how to preprocess OMICS data (mainly next-gen sequencing and mass spectrometry) to transform it into an abstract representation. In the second part, we look at algorithms that are used to query these abstract representations without worrying about the underlying biology. We focus on foundational work that will allow you to understand new tools that are continually being developed.
Required Knowledge: The student should be comfortable with algorithms (CSE202/CSE282/CSE101) and basic statistics.
Enforced Prerequisite: No enforced prerequisite
Recommended Preparation for Those Without Required Knowledge: A graduate (or senior undergraduate) algorithms class.
Link to Past Course: N/A
CSE 291A - Machine Learning Systems with Prof. Hao Zhang
Course Description: This is a research-based course on machine learning systems. Such systems power modern AI applications on large and complex datasets, including enterprise analytics, recommendation systems, chatgpt, agentic systems, and many other GenAI applications. Students will learn many up-to-date topics and developments in machine learning and systems. This is a lecture-driven course with learning evaluation based on quizzes, final exams, and required readings. This course is aimed primarily at MS students interested in the state of the art of machine learning systems, as well as PhD students interested in research in this space.
Required Knowledge: A course on ML algorithms is absolutely necessary. A course on operating systems or distributed systems, or networking is also necessary. These courses could have been taken at UCSD or elsewhere.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Read these 4 recommended textbooks for background/foundations on the respective component areas: "Machine Learning" (McGraw Hill), "Deep Learning" (MIT Press), "Operating Systems: Three Easy Pieces". Familarity with ML frameworks like PyTorch or TensorFlow. Proficiency in Python programming. Knowledge of deep learning and deep learning frameworks such as Tensor, PyTorch, HuggingFace.
Link to Past Course:
https://hao-ai-lab.github.io/cse234-w25/
https://hao-ai-lab.github.io/dsc291-s24/
https://hao-ai-lab.github.io/dsc204a-w24/
CSE 291B - Big Data Science & Knowledge with Prof. Nuno Bandeira
Course Description: Computational analysis of massive volumes of data holds the potential to transform society. However, the computational translation of data into knowledge requires more than just data analysis algorithms – it also requires proper matching of data to knowledge for interpretation of the data, testing pre-existing knowledge and detecting new discoveries.
This course will cover these data science concepts with a focus on the use of biomolecular big data to study human health and disease – the longest-running (and arguably most important) human quest for knowledge of vital importance. Building on the growing availability of hundreds of terabytes of data from a broad range of species and diseases, we will discuss various computational challenges arising from the need to match such data to related knowledge bases, with a special emphasis on investigations of cancer and infectious diseases (including the SARS-CoV-2/COVID19 pandemic). Finally, we will also cover data science aspects of how these algorithms are integrated with global big data repositories and how these support communities of experts in distributed collaborative annotation of biomolecular data.
Required Knowledge: N/A
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 291C - Topics on Numerical Methodswith Prof. CK Cheng
Course Description: We cover topics on numerical methods for dynamic system
analysis and optimization algorithms. Our scope aims at systems in high-
dimensional space with temporal behavior. We discuss techniques such as
integration methods, first-order methods, random matrix theory, and Gumbel
tricks.
Required Knowledge: Linear Algebra, Convex Optimization
Enforced Prerequisites: No
Recommended Preparation for Those Without Required Knowledge: The class
notes of CSE203B Convex Optimization
Link to Past Course: https://cseweb.ucsd.edu/classes/sp24/cse291-e/
CSE 291G - Physical Simulation Prof. Albert Chern
Course Description: The course covers advanced techniques for physics-based animation. A large portion of the course focuses on building the foundations of classical mechanics, including deriving the equations of motion from variational principles (least action principle, Hamiltonian formulation, and incremental potential formulation), giving rise to reduced order models as well as structure preserving discretizations. Specific physical systems include mechanical joints, rigid body, particle system, elasticity, and fluid dynamics. We will also cover the geometric language of differential forms and tensors for describing these physical systems. The students are expected to implement simulators for some of these physical systems, as well as writing mathematical derivations..
Required Knowledge: Multivariable calculus, linear algebra, programming with visualization.
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://cseweb.ucsd.edu/~
CSE 291P - Generative AI and Programming with Prof. Nadia Polikarpova
Course Description: Generative artificial intelligence (AI) tools that synthesize rich output from user-supplied prompts have enabled new kinds of programming. This includes both AI systems that edit source code (AI as agents that assist with coding), and AI systems that use API calls to an LLM to provide user-facing features (AI as API). In this course, we explore both of these with hands-on use of these tools to build applications, along with some background about how generative AI works (and when it fails to work) in this setting.
Required Knowledge: None.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 291P - Differentiable Programming with Prof. Tzu-Mao Li
Course Description: In this course, we will study an emerging field called “differentiable programming”, which is an interdisciplinary field that combines machine learning, programming languages, numerical computing, signal processing, robotics, computer vision and computer graphics.
Recent work on deep learning has revealed the power of derivative-based optimization. Instead of computing gradients of typical feedforward deep models, differentiable programming attempts to differentiate general “programs” and use them as our machine learning models. This leads to several challenges:
- How do we design machine learning models that are composed of general programs that leverage domain knowledge, instead of the typical neural network layers?
- How do we correctly and efficiently derive the derivatives of general numerical programs that can have control flows, discontinuities, and higher-order functions?
- How do we define/derive the derivatives of programs that have certain semantic meanings, such as sorting, satisfiability solvers, root solvers, differential equation solvers, or 3D rendering?
- Just like convolution exploits the translational invariance, how do we design models that have certain properties e.g., rotational invariance or permutation invariance?
- How do we build differentiable programming languages and systems, so that we can guarantee the correctness for rapid exploration, and efficiently compile them to modern hardware architectures?
The first half of the course will be focusing on building a C-like SIMD-based differentiable programming language. You will modify a compiler of a domain-specific language and add support for automatic differentiation. The second half of the course and the final project will be focusing on applying the programming language for different kinds of tasks, including differentiable simulation, image and signal processing, 3D rendering, etc.
Note that this course is different from, though related to, the seminar course CSE 290 on differentiable programming (https://docs.google.com/document/d/1Xh3Em10_YhbBnbf8e4mHEnUkoDu5BF5KnqBWAZ1OLGM/edit).
Required Knowledge: Python, machine learning, and multivariate calculus.
Ideally, you should have basic compiler and parallel programming knowledge, but we do not assume you know. Look at the past course link to see if the homeworks and course content are too foreign to you.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Read and fully understand this paper:
"Differentiable Programming for Image Processing and Deep Learning in Halide"
https://cseweb.ucsd.edu/~tzli/gradient_halide/
Link to Past Course: https://cseweb.ucsd.edu/~tzli/cse291/sp2025/
CSE 291T - Top/Computer Sci & Engineering with Prof. June Vuong
Course Description: Markov chains are fundamental randomized processes with wide-ranging applications in theoretical computer science, statistics, physics, and machine learning. This course develops the theory of Markov chains, focusing on rigorous analysis of their convergence properties, and explores applications of Markov chains and related stochastic processes. The course is suitable for graduate students and advanced undergraduates with a strong mathematical background.
Required Knowledge: Probability (MATH 180A), Linear algebra (MATH 18), Algorithms (CSE 101), or equivalent
Enforced Prerequisite: Yes.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to past course: N/A
CSE 291Y - Measuring Stuff with Prof. Stefan Savage
Course Description: This course focuses on empirical research methods, with the overall goal of the course to prepare students for performing research that relies upon measurement. We will focus on empirical research in the systems, networking, and security areas. As a result, we will cover various forms of network measurement, system measurement, and Internet crawling, and we will cover a wide variety of methods for data collection, cleaning, and analysis. The course entails reading papers, engaging in discussions, and performing a group project on a topic in the area.
Required Knowledge: Completion of undergraduate operating systems (similar to CSE 120), networking (similar to CSE 123/124), or security (similar to CSE 127) would be helpful, but not required.
Enforced Prerequisite: no enforced prerequisite, I will manage enrollment
Recommended Preparation for Those Without Required Knowledge: Review course material from undergraduate networking and operating systems courses.
Link to Past Course: https://cseweb.ucsd.edu/classes/wi25/cse291-c/