Updated July 2nd, 2025
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. TBA, means the course is still being offered.
FALL 2025 Graduate Course Information
CSE 202 - Algorithm Design and Analysis with Prof. Qipeng Liu
Course Description: The course will cover the basic techniques for the design and analysis of algorithms. For example, divide-and-conquer, greedy algorithm, dynamic programming, data structures, graph search, algebraic problems, randomized algorithms, lower bounds, probabilistic analysis etc.
Required Knowledge: CSE 20, 21, 101 or equivalent
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://sites.google.
CSE 206A - LATTICE ALGORITHMS & APPLICATIONS WITH PROF. DANIELE MICCIANCIO
Course Description: Point lattices are powerful mathematical objects that can be used to efficiently solve many important problems in computer science, most notably in the areas of cryptography and combinatorial optimization. This course gives a general introduction to the theory of point lattices, their algorithms, computational complexity, mathematical techniques, and applications to cryptography.
Required Knowledge: The main prerequisites for the course are general mathematical maturity, knowledge of basic mathematics (good linear algebra and probability theory, basic abstract algebra, and a little bit of calculus) and introductory level algorithms and complexity theory (mathematical models of computation, analysis of algorithms, polynomial time solvability, NP-hardness, etc.) Some prior knowledge of cryptography is useful, but not strictly required. No prior knowledge of advanced complexity theory, Fourier analysis, or algebraic number theory is assumed, but you should be prepared to learn a bit about all this through the course.
Enforced Prerequisite: None, but students are expected to have already taken CSE 200 and CSE 201 or equivalent and have the implied prerequisites (i.e. good discrete math, linear algebra, probability).
Recommended Preparation for Those Without Required Knowledge: CSE 200
Link to Past Course: http://cseweb.ucsd.edu/classes/fa19/cse206A-a/
CSE 210 - Principle/Software Engineering With Prof. Thomas Allan Powell
Course Description: Building a high-quality software system is often not as predictable as it should be, given how long software has been built. Today, software development is both more accessible with low-code tooling and LLMs and simultaneously more challenging due to growing complexity. In short, creating software may have become easier to build, but quality is becoming more critical than ever as software permeates our daily lives. This course is designed to equip students with the necessary skills and knowledge to navigate these challenges as pragmatic software engineers.
This course serves both as an introduction to classical best practices and an exploration of current trends in software engineering practices. Readings and case studies include the textbook Modern Software Engineering by Dave Farley, augmented by various other materials from classical and modern papers, presentations, and excerpts from other works by McConnell, Brooks, Beck, Spolsky, and others. Additionally, the course features a practical group project that utilizes standard web technologies to help develop engineering and collaborative skills within a small team setting.
The course lecture component will require students to read materials and prepare to interact with the instructor and fellow students in a written and oral fashion. The course project component will have weekly milestones and ceremonies that adhere to typical Agile practices, so students should prepare for a more consistent engagement than occasional large work bursts. Project presentation and retrospective activities are required at the end of the course.
Required Knowledge: An undergraduate degree in computer science (or equivalent) is a prerequisite, but an undergraduate software engineering class is not.
Enforced Prerequisite: N/A
Recommended Preparation for Those Without Required Knowledge: These courses would provide adequate preparation: CSE 100 and one of CSE 134B or CSE 110.
Link to Past Course: N/A
CSE 216 - Human-Computer Interaction with Prof. Imani Munyaka
Course Description: Prepares students to conduct original HCI research by reading and discussing seminal and cutting-edge research papers. Topics include design, social software, input techniques, mobile, and ubiquitous computing. Student pairs perform a quarter-long mini research project that leverages campus research efforts. Cross-listed with COGS 230.
Required Knowledge: N/A.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 221 - OPERATING SYSTEMS WITH PROF. AMY OUSTERHOUT
Course Description: The purpose of this course is to learn about a wide variety of operating system design and implementation principles and techniques, examining their usage in the context of both important historical systems as well as modern systems. In addition, students learn how to read research papers in a critical manner, how to articulate an understanding of and insights into material described in research papers, and how to synthesize research themes and topics across multiple systems. The topics covered include operating system structures, synchronization, virtual memory, distribution, interaction of architecture and systems, scheduling, communication, file systems, multicore scalability, and virtual machine monitors.
Required Knowledge: Undergraduate operating systems.
Enforced Prerequisite: Yes. CSE 120 or equivalent.
Recommended Preparation for Those Without Required Knowledge: Take CSE 120 or CSE 220
Link to Past Course: https://amyousterhout.com/
CSE 227 - Computer Security with Prof. Earlence Fernandes
Course Description: This course focuses on computer security, exploring a range of topics – from systems security, to 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. At the conclusion of the course, the students will have the foundation to conduct research in computer security and to apply the latest security research to a particular area of practice.
Required Knowledge: Undergraduate understanding of data structures, algorithms, operating systems, security, networks, cryptography.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Undergraduate courses in the above topics
Link to Past Course: https://cseweb.ucsd.edu/~efernandes/teaching/cse227fa23/cse227.html
CSE 229A - Tops/Seminar/Computer Systems with Prof. Alex Snoeren
Course Description: Discussion on problems of current research interest in computer systems built around past, present and future research at UCSD. Possible areas of focus include: networking, operating systems, security, storage systems, programming systems. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit.
(ONLY TAKE FOR ONE UNIT)
Required Knowledge: No.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 229C - Tops/Seminar in Computer Security with Prof. Earlence Fernandes
Course Description: The security research seminar discusses the latest topics in computer security. Course is intended for grad students actively engaged in research with security faculty.
Required Knowledge: grad student in the CSE program actively working with a professor from the security group.
Enforced Prerequisite: PhD or MS student actively working with a security faculty member
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 239B - Topics/Seminar in Programming Languages with Prof. Loris D'Antoni
Course Description: ProgSys research seminar in programming languages
Required Knowledge: Actively doing research with a progsys faculty
Enforced Prerequisite: Yes
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 240A - Princ/Computer Architecture with Prof. Dean Tullsen
Course Description: This course will cover fundamental concepts in computer architecture. Topics include instruction set architecture, pipelining, pipeline hazards, bypassing, dynamic scheduling, branch prediction, superscalar issue, memory-hierarchy design, advanced cache architectures, multiprocessor and multithreaded architectures, power, and secure architectures.
Required Knowledge: an undergrad computer architecture course
Enforced Prerequisite: there will be a pretest, distributed on first day of class
Recommended Preparation for Those Without Required Knowledge: CSE 141
Link to Past Course: https://cseweb.ucsd.edu/
CSE 249E - with Prof. Pat Pannuto
-N/A
CSE 250A - Principles of AI: Prob Reasoning and Learning with Prof. Trevor Bonjour
Course Description: Probabilistic methods for reasoning and decision-making under uncertainty. Topics include: inference and learning in directed probabilistic graphical models; prediction and planning in Markov decision processes; applications to computer vision, robotics, speech recognition, natural language processing, and information retrieval.
Required Knowledge: The course is aimed broadly at graduate students in mathematics, science, and engineering. Prerequisites are probability theory, multivariable calculus, linear algebra, and programming ability.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Review probability theory (conditional independence, Bayes' rule), multivariable calculus (computing gradients of multivariate functions, gradient descent), linear algebra (eigen decomposition), and basic data science programming (e.g. loading datasets, writing outputs, representing data as matrices).
Link to Past Course: N/A
CSE 252A - Computer Vision I with Prof. Ben Ochoa
Course Description: This course provides a comprehensive introduction to computer vision providing broad coverage including low-level vision (image formation, photometry, color, image features), inferring 3D properties from images (shape-from-shading, stereo vision, motion interpretation) and object recognition.
Required Knowledge: Linear algebra, calculus, data structures, and probability and statistics. Programming assignments will be in Python.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Undergraduate courses and textbooks.
Link to Past Course: https://cseweb.ucsd.edu/classe
CSE 258/258R - Recommender Sys&Web Mining with Prof. Julian Mcauley
Course Description: CSE 258 is a graduate course devoted to current methods for recommender systems, data mining, and predictive analytics.
Required Knowledge: Students should be comfortable with programming (all example code will be in Python), and with basic optimization and linear algebra.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: Follow the chapter references for the first three weeks of the course for background material on each of the introductory topics covered.
Link to Past Course: https://cseweb.ucsd.edu/
CSE 259 - Seminar/Artificial Intelligence with Prof. Prithviraj Ammanabrolu
Course Description: The course will feature weekly talks from researchers in industry and academia on the latest AI research with a special focus on LLMs and embodied AI.
Required Knowledge: N/A
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 260 - Parallel Computation with Prof. Bryan Chin
Course Description: Exploration of programming for parallel computing systems such as shared memory systems, message passing systems and highly parallel accelerators (like GPUs). The course will cover the principles of parallel programming by exploring algorithm design and how those design choices are affected by the machine architecture.
Required Knowledge: This is a graduate-level course. Students should have strong programming ability in C (and familiarity with C++).
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: Class in programming which requires the use of C or strong programming skills in similar languages. Review computer architecture - especially memory system design (e.g. cache hierarchy). Contact the instructor for more help or advice.
Link to Past Course: https://sites.google.
CSE 270 Discrete Differential Geometry with Prof. Albert Chern
Course Description: The course provides an introduction to discrete differential geome
Required Knowledge: Linear algebra, multivariable calculus.
Enforced Prerequisite: No, (just be aware of the required knowledge).
Recommended Preparation for Those Without Required Knowledge: Similar class at CMU with youtube playlist https://www.youtube.c
Link to Past Course: https://cseweb.ucsd.edu/~alche
CSE 276A - Introduction to Robotics with Prof. Henrik Christensen
Course Description: The course covers fundamental problems and leading solutions in robot modeling, perception, planning, and control. Topics are approached primarily from the point of view of autonomous robot systems -- what and how can we model basic robots systems, how can the robot perceive the world, and how can it use that information to move effectively?
Required Knowledge: Basic programming and mathematics such as linear algebra
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Programming in Python and linear algebra
Link to Past Course: https://hichristensen.com/
CSE 291A - Generative AI with Prof. Rose Yu
Course Description: Generative AI are unsupervised machine learning methods that can create a wide variety of data, such as images, videos, audio, text, and 3D models. Deep generative models are the fundamental tools behind generative AI. They combine the generality of probabilistic reasoning with the scalability of deep learning. This course will study the probabilistic foundations and learning algorithms in generative AI, including variational autoencoders, generative adversarial networks, autoregressive models, normalizing flow, and diffusion models. This is a graduate-level course with an emphasis on mathematical principles as well as practical know-how. The course will be a combination of lectures, student presentations, and team projects.
Required Knowledge: Deep Learning (CSE 151B/251B or equivalent)
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Deep Learning: Foundations and Concepts
Link to Past Course: https://sites.google.com/
291A (B00) - Topics in AI with Prof. Nadir Weibel
TBA
CSE 291A - AI & Society with Prof. Imani Munyaka
Course Description: This course explores the challenges of diversity, equity, and inclusion (DEI) in computing and technology through an introduction to and analysis of various social constructs and their impact on not only computing-related organizations, but also the technologies developed and the people affected by them. This course also introduces students to cultural competence in teh context of computing. We explore the impact of social constructs through a review of AI history and current technology.
Required Knowledge: N/A
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 291A - Systems for LLMs and AI Agents with Prof. Yiying Zhang
Course Description: This course introduces various software system infrastructure for large-language models and AI agents, including distributed training, model inference and serving, AI agent frameworks and optimization, etc. Lectures will primarily be based on paper reading.
Required Knowledge: Basic understanding of generative AI, large language models, GPU, and distributed systems
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Read related materials online or with the help of AI
Link to Past Course: N/A
CSE 291P - Program Synthesis with Prof. Loris D'Antoni
Course Description: This course is a comprehensive introduction to program synthesis: an emerging area that sits at the intersection of programming systems, formal methods, and artificial intelligence. The goal of program synthesis is to generate programs automatically from high-level, possibly incomplete descriptions. The course will cover a wide variety of recent synthesis techniques that differ in the kind of program description they start with (from input-output examples to formal correctness specifications), the search strategy they employ (enumerative, stochastic, symbolic, or LLM-based search), and the kind of information they use to guide the search (counter-example guided synthesis, type-driven synthesis, synthesis with machine learning). The course will involve a project, as well as reading and reviewing research papers.
Required Knowledge: Programming Languages (CSE 230 or equivalent)
Enforced Prerequisite: None, but CSE 230 is recommended.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://github.com/lorisdanto/
CSE 291P - Topics in PL, Compilers & SE with Prof. Yufei Ding
Course Description: This course delves into advanced aspects of quantum computer systems design. Initially, we'll lay a solid foundation in the mathematical principles underlying quantum computation and information. Following this, we'll delve into hardware and software aspects of quantum computers. Students will gain hands-on experience using software tools such as IBM's Qiskit and Xanadu's PennyLane, learning to craft quantum programs and run them on quantum hardware accessible via the cloud.
Required Knowledge: This course delves into advanced aspects of quantum computer systems design. Initially, we'll lay a solid foundation in the mathematical principles underlying quantum computation and information. Following this, we'll delve into hardware and software aspects of quantum computers. Students will gain hands-on experience using software tools such as IBM's Qiskit and Xanadu's PennyLane, learning to craft quantum programs and run them on quantum hardware accessible via the cloud.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Nielsen, M. A., & Chuang, I. L. (2010). Quantum Computation and Quantum Information: 10th Anniversary Edition. Cambridge University Press.
Link to Course: https://cseweb.ucsd.
CSE 291T - Quantum Complexity Theory CS with Prof. Daniel Grier
Course Description: This is a graduate-level course that will use tools from complexity theory to understand the fundamental differences between quantum and classical computers. After an introduction to the basics of quantum computation, the course will explore several settings in which quantum computers provably outperform their classical counterparts. This will take us to the forefront of quantum computing research, where we'll look at the complexity-theoretic foundations of recent quantum computing experiments.
Most of the course will be lecture-based. During the course, students will choose some aspect of quantum complexity theory to explore in greater depth, culminating in a written project report and presentation.
Required Knowledge: A previous course in complexity theory (CSE 200 or equivalent) is highly recommended. No prerequisite knowledge of physics or quantum computation is required. That said, this is an advanced research-level course and is not intended as an introduction to quantum computation and information.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: Reading complexity textbook (Online version: http://theory.cs.princeton.edu/complexity/book.pdf)
Link to Past Course: N/A
CSE 291T - Topics in Theoretical CS with Prof. Nadia Heninger
TBA
CSE 291Y - Topic in Comp Sys & Security with Prof. Earlence Fernandes
Course Description: Research-heavy course on the security properties of LLMs and LLM-based Agents. We will study what security properties need to be enforced. Techniques for attacks and defenses will be explored. Course evaluation is based on a quarter-long research project LLM security.
Required Knowledge: Machine Learning and computer security at the undergraduate level.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Take 127 and more undergraduate ML course.
Link to Past Course: None.
CSE 291Y - Building Secure Sys with Rust with Prof. Deian Stefan
Course Description: This course will explore how using a language like Rust with a powerful type system and strong safety guarantees affects the design of secure systems. Do the safety guarantees provided by Rust (e.g., memory safety) make it easier to provide stronger guarantees using techniques like verification? What classes of vulnerabilities can we
completely eliminate by cleverly taking advantage of Rust's type system? Where and how do Rust's safety guarantees break down when applied to low-level systems code? To (start to) answer these questions, students will read, present, and discuss recent research papers in the field and conduct a relevant quarter-long research project in small groups.
Required Knowledge: Some experience writing programs in Rust is helpful. Undergrad/grad
security, programming languages, and operating systems.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Read The Rust Book.
Link to Past Course: https://urldefense.com/v3/__https://plsyssec.github.io/cse291k-fall24/__;!!Mih3wA!FJoEQaV7AKZyllQtfSg7itKZqBp2yMT4n94dWo8FwjtfmSZXtbGTbL87BIDhaOiYEltaeUeSpCgKU6ID5CT9KRMz33M$