Updated November 24th, 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.
Winter 2026 Graduate Course Information
CSE 202 - Algorithm Design and Analysis with Prof. Russell Impagliazzo
Course Description: This course is intended primarily for non-theory computer science graduate students who will need to formalize computational problems, and design and implement or use existing efficient algorithms for these problems. The emphasis is on methods that can be used for a wide variety of cutting-edge applications, as in genomics, data mining, or VLSI design. This course presents general techniques and paradigms for designing and analyzing algorithms for a variety of computational problems. Techniques include reductions between problems, graph search, greedy algorithms, divide and conquer, backtracking, dynamic programming, and hill-climbing. For each technique, we will see a variety of applications of the technique, starting with relatively straightforward applications and then going on to look at applications or settings that stretch the uses of the technique. These examples will be presented in class, in independent reading in the text, and discovered by students in assignments. A course project will be on formalizing computational problems and inventing algorithms for them.
Required Knowledge: We assume some undergraduate exposure to discrete mathematics, and to algorithms and their analysis, and the ability to read, recognize, and write valid proofs. For example, CSE 20, CSE 21, and CSE 101 cover the prerequisite material. We will cover many of the same topics from undergraduate algorithms courses. However, after a quick review of the basics, we will move on to related advanced material for each topic. If your background in these areas is weak, you may need to do some extra work to catch up. Please talk to me about this. Students without prerequisites will be admitted at their own risk.
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: See above
Link to Past Course: https://cseweb.ucsd.edu/classes/wi14/cse202-a/
CSE 203B - Convex Optimization with Prof. CK Cheng
Course Description: We study the formulations and algorithms solving convex optimization
problems. The topics include convex sets, functions, optimality conditions, and duality concepts.
If time permits, we will talk about convex optimization algorithms. The objective of the course is
to provide students with the background and techniques for scientific computing and system
optimization.
Required Knowledge: Linear algebra.
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: Recommended
Preparation for Those Without Required Knowledge: Study the Appendix
(Mathematical background, Numerical linear algebra) of the textbook before the quarter starts.
Link to Past Course: https://cseweb.ucsd.edu/classes/wi23/cse203B-a/
CSE 207A - Cryptography&Network Security with Prof. Mihir Bellare
Course Description: This course is an introduction to modern cryptography. Cryptography, broadly speaking, is about communicating or computing in the presence of an adversary. Core goals include preservation of privacy and integrity of communicated data. We will cover symmetric (aka.~private key) and asymmetric (aka.~public key) cryptography, including block ciphers, symmetric encryption, hash functions, message authentication, authenticated encryption, asymmetric encryption, digital signatures, RSA and discrete-logarithm-based systems, certificates, public-key infrastructure, key distribution, and various applications and protocols including commitment and secure computation. The course will introduce the ``provable security'' approach, giving rigorous mathematical definitions of security goals and reduction-based proofs that schemes meet them. As part of this we will cover the random-oracle model and proofs within it. The emphasis of the assignments will be on doing security proofs. We adopt a ``theory brought to practice'' viewpoint, focusing on cryptographic primitives that are used in practice.
Required Knowledge: CSE 201 & 200 or equivalent
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: See CSE 201, 200
Link to Past Course: https://cseweb.ucsd.edu/~mihir/cse207/index.html
CSE 210 - Principle/Software Engineering with Prof. Michael Coblenz
Course Description: Software engineering is about creating and maintaining large software projects over time that meet quality goals and satisfy users’ needs. Effective software engineering requires a combination of social and technical skills. In this course, students will learn how to be successful software engineers who work together to create high-quality software products. In the context of an open-ended team software project, we will study software processes, requirements analysis, risk management, architectural design, and testing methods.
Required Knowledge: An undergraduate degree in computer science (or equivalent) is a prerequisite, but an undergraduate software engineering class is not.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: CSE 12 and CSE 100.
Link to Past Course: https://mcoblenz.github.io/CSE210/
CSE 220 - Operating Systems Principles with Prof. Alex Snoeren
Course Description: Introduces operating systems concepts, including processes, synchronization, scheduling, memory management, virtual memory, file systems, and protection. Not recommended for PhD students in systems/networking concentrations. This course is intended for MS students who have not taken an undergraduate operating systems course.
Required Knowledge: An undergraduate-level understanding of computer architecture. Experience with imperative programming languages.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: CSE 29, 30, 100, and 101.
Link to Past Course: https://cseweb.ucsd.edu/classes/wi25/cse220-a/
CSE 222C - Wireless Networks with Prof. Aaron Schulman (Shalev) TBA
CSE 227 - Computer Security with Prof. Imani Munyaka
Course Description: Please use the course description from the catalog . I will not manage my own enrollment.
Required Knowledge: n/a
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: n/a
Link to Past Course: https://kumarde.com/cse227-wi25/
CSE 230 - Principles of Programming Languages with Prof. Ranjit Jhala
Course Description: Unlike most engineering artifacts, Programming Languages and Programs are mathematical objects whose properties can be formalized. The goal of this course is to introduce students to fundamental intellectual and mechanical tools required to rigorously analyze Languages and Programs and to expose them to recent developments in and applications of these techniques. We shall study operational and axiomatic semantics, two different ways of precisely capturing the meaning of programs by characterizing their executions. We will see how the lambda calculus can be used to distill the essence of computation into a few powerful constructs. We use that as a launching pad to study expressive type systems useful for analyzing the behavior of programs at compile-time and then, how to derive expressive program analyses using Abstract Interpretation. We will study all of the above in the context of LEAN, an interactive proof assistant that will help us precisely formalize and verify our intuitions about languages and their semantics. Students will be evaluated on the basis of 4-6 programming (proving) assignments, and a final exam.
Required Knowledge: Basic functional programming e.g. as taught in CSE 130 Haskell, OCaml, Scala, Rust, and discrete mathematics (logic, sets, relations).
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge: UCSD CSE 130 Lectures / assignments
Link to Past Course: https://github.com/ucsd-progsys/230-wi19-web/wiki
CSE 240A - Princ/Computer Architecture with Prof. Alex Orailoglu
Course Description: (Formerly CSE 240.) 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, and multiprocessor architecture issues. Restricted to students within the CS75, CS78, CS89, CS88, CS77, CS80, CS81, CS83, and CS76 majors. All other students will be allowed as space permits.
Required Knowledge: N/A
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: No.
Link to Past Course: No.
CSE 240B - Advanced Computer Architecture with Prof. Jishen Zhao
Course Description: This course builds on basic knowledge of computer architecture and explores various architectural concepts around parallel machines. Topic covered include but not limited to: multiprocessor cache coherency, data consistency and data ordering models, synchronization mechanisms, heterogeneous systems, distributed shared memory computer systems, programming models, accelerators, data center architectures.
Required Knowledge: Background in computer architecture. Some knowledge of C programming is helpful but not essential. 240A or equivalent.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: See instructor.
Link to Past Course: N/A
CSE 251A - Principles of ML: Learning Algorithms with Prof. Taylor Berg-Kirkpatrick
Course Description: (Formerly CSE 250B.) Algorithms for supervised and unsupervised learning from data. Content may include maximum likelihood; log-linear models, including logistic regression and conditional random fields; nearest neighbor methods; kernel methods; decision trees; ensemble methods; optimization algorithms; topic models; neural networks; and backpropagation. Renumbered from CSE 250B. Students may not receive credit for CSE 251A and CSE 250B. Course may be coscheduled with CSE 151A.
Required Knowledge:
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://canvas.ucsd.edu/courses/53501
CSE 251U - Unsupervised Learning with Prof. Sanjoy Dasgupta
Course Description: This course presents a broad view of unsupervised learning. Topics covered will include: descriptive statistics; clustering; projection, singular value decomposition, and spectral embedding; common probability distributions; density estimation; latent variable modeling; sparse coding and dictionary learning; autoencoders; diffusion models; and self-supervised learning.
Required Knowledge: There are no enforced prerequisites. The ideal preparation is a combination of CSE 250A (probabilistic AI) and either CSE 251A (machine learning) or CSE 258 (data mining); but at the very least, an undergraduate-level background in probability, linear algebra, and algorithms will be indispensable. Students are also expected to be proficient in Python and in NumPy.
Enforced Prerequisite: Yes or No? If yes, what is the prerequisite? No
Recommended Preparation for Those Without Required Knowledge:
Link to Past Course: N/A
CSE 252B - Computer Vision II with Prof. Ben Ochoa
Course Description: This course covers topics in imaging geometry using techniques from computer vision, photogrammetry, and projective geometry. These topics include methods for projecting a 3D scene to a 2D image, reconstructing a 3D scene from 2D images, and camera parameter estimation. Upon completion of this course, students will have an understanding of single and multiple view geometry, and the algorithms used in practice.
Required Knowledge: Linear algebra, calculus, and probability and statistics. Python or other programming experience.
Enforced Prerequisite: None. CSE 252A is not a prerequisite to CSE 252B.
Recommended Preparation for Those Without Required Knowledge: Undergraduate courses and textbooks.
Link to Past Course: https://cseweb.ucsd.edu/classe
CSE 256 - Statistical Natural Lang Proc with Prof. Ndapandula Nakashole
Course Description: Natural language processing (NLP) is a field of AI which aims to equip computers with the ability to intelligently process natural language. This course will explore deep learning techniques for the automatic analysis of natural language data. Topics covered include: large language models, text classification, and question answering, and machine translation.
Required Knowledge: Will be covered in class.
Enforced Prerequisite: NO
Recommended Preparation for Those Without Required Knowledge: Will be covered in class
Link to Past Course: On Canvas
CSE 257 - Search and Optimization with Prof. Sicun Gao
Course Description: The course will cover various important algorithmic ideas for hard search and optimization problems. The goal is to develop in-depth understanding of the analytic, probabilistic, and algebraic perspectives on the universal challenge of the curse of dimensionality. Topics include numerical optimization, stochastic search, sequential decision making, and constraint programming.
Required Knowledge: Multivariate calculus, linear algebra, probability and statistics.
Enforced Prerequisite: None, but CSE 250A is recommended.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: http://scungao.github.io/ucsd-f21/index.html
CSE 261- Adv. Data-Driven Text Mining with Prof. Jingbo Shang
Course Description: This course mainly focuses on introducing current methods and models that are useful in analyzing and mining real-world text data. It will put emphasis on unsupervised, weakly supervised, and distantly supervised methods for text mining problems, including information retrieval, open-domain information extraction, text summarization (both extractive and generative), and knowledge graph construction. Bootstrapping, comparative analysis, learning from seed words and existing knowledge bases, synthesizing data from large language models will be the key methodologies.
Required Knowledge: Knowledge about Machine Learning and Data Mining; Comfortable coding using Python, C/C++, or Java; Math and Stat skills.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: CSE 151A and DSC 148 are great preparations.
CSE 272 - Advanced Image Synthesis with Prof. Tzu-Mao Li
Course Description: This course discusses modern physically-based rendering techniques. Given a 3D scene description including the geometry, how surfaces and volumes reflect lights, the light source emission profiles, and the pose of a camera, physically-based rendering simulates the interactions between photons, surfaces, and volumes and produces an image. Physically-based rendering is central to computer graphics, and is becoming ever more crucial to domains outside of graphics such as computer vision, computational imaging, machine learning, and robotics, with applications in autonomous driving, training artificial intelligence agents, biomedical imaging, photography, and more. We will go through how we model the appearance of scenes (e.g., how do hair reflect lights? do objects change appearance when they become wet?), how we simulate light transport of surfaces and volumes efficiently, and how we invert the light transport process via differentiation. Throughout the course, we will build a renderer with the capability of rendering layered materials, volumes, and more with modern rendering algorithms. If you have taken CSE 168 and want more -- you should come! If not, make sure you are familiar with the content in the Required Knowledge.
Required Knowledge: Vector calculus and C++ programming. Ideally you should be familiar with how a path tracer works. If not, go through the Ray Tracing in a Weekend series (https://raytracing.github.io/).
Enforced Prerequisite: Not enforced, but understanding most content of CSE 168 would be great.
Recommended Preparation for Those Without Required Knowledge: Familiarize yourself with all three books in "Ray Tracing in a Weekend" series https://raytracing.github.io/
Take a look at CSE 168 https://cseweb.ucsd.edu/~tzli/cse168/sp2023/
Link to Past Course: https://cseweb.ucsd.edu/~tzli/cse272/wi2025/
CSE 274 - Selected Topics in Graphics with Prof. Ravi Ramamoorthi
Course Description: CSE 274 is for selected topics in computer graphics, covering advanced topics at the frontiers of the field. Content changes from year to year and the current version covers Image-Based Rendering. The concept of Image-Based Rendering (IBR) was introduced in the early 1990s to refer to a new paradigm in computer graphics image synthesis. Instead of using traditional geometric models and material properties fed in as inputs to a rendering system (much like what you would do in CSE 167 or 168), one goes directly from input images (photorealistic by definition if taken from real photographs) to new images. The original problem is often called view synthesis today, where we take a number of input images and enable synthesis of new views from different directions. There are numerous applications in e-commerce, scene acquisition and virtual reality. The original image-based rendering papers kicked off a great deal of interest in computer vision and graphics, providing many new directions for the field. This course seeks to provide a comprehensive overview of image-based rendering from relevant background to the early seminal papers, to the exciting new developments currently ongoing, and bring students up to the frontiers of the field.
Required Knowledge: A knowledge of computer graphics, at least at the level of CSE 167 or equivalent is required. Knowledge of computer vision or computer graphics rendering (CSE 168) is helpful but will not be required.
Enforced Prerequisite: Yes, CSE 167 or equivalent. For undergraduates or students who were undergrad/grad at UCSD, check CSE 167. For graduate students who have not taken CSE 167 at UCSD, I will presumably have to determine equivalent preparation from the Google Form.
Recommended Preparation for Those Without Required Knowledge: Take my online CSE 167 on edX (including the raytracing part) and send me a link to the full feedback URL for the OpenGL and Raytracing Assignments.
Link to Past Course: https://cseweb.ucsd.edu/~
CSE 280A - Algorithms and Computational Biology with Prof. Vineet Bafna
Course Description:
This course describes algorithmic and statistical methods used to analyze population genetic data. On the population genetics side, we will cover:
- Why DNA and Basic terminology
- Key population genetics principles
- Sources of Genetic variation
- Analyzing variation (Basic) including HW equilibrium, Linkage & Linkage Disequilibrium, Coalescent theory, Recombination/Ancestral Recombination Graphs.
- Detecting Variation including
- Small nucleotide variation, Structural variations, Extrachromosomal DNA, and complex SVs, and (Possible) Tandem Repeats
- Analyzing variation (advanced), including
- Selection
- Haplotypes/Haplotype phasing
- Population sub-structure
- Tandem repeat analysis
- Cancer genomics
On the algorithmic side, we will cover:
- Perfect Phylogeny
- Coalescent simulation algorithms
- (Integer) Linear programming
- Stochastic iteration
- Graph algorithms & Flow
- Markov Chain Monte Carlo
- Algorithms for selection
- Principle Component Analysis
- Statistical Hypothesis testing
- Deep Learning for Genomics (possibly)
Required Knowledge: A course in algorithms. For example CSE202, CSE281 or equivalent and senior level undergraduate classes.
Enforced Prerequisite: Yes.
Recommended Preparation for Those Without Required Knowledge: A course in algorithms. For example CSE202, CSE281 or equivalent and senior level undergraduate classes.
Link to Past Course: N/A
CSE 282 - Bioinf II: Seq & Struct Analys with Prof. Pavel Pevzner
Course Description: Introduction to Bioinformatics Algorithms. This is a self-contained course that does not assume any prerequisites in biology except for high-school level background in genetics. It assumes that students have covered an equivalent of CSE 101 (Introduction to Algorithms)
Required Knowledge: Knowledge of algorithms (equivalent of CSE 101) is required.
Enforced Prerequisite: No. This course DOES NOT enforce PHARM 201 as a prerequisite
Recommended Preparation for Those Without Required Knowledge: Online course equivalent to CSE 101 such as "Data Structures and Algorithms" from UCSd on Coursera.
Link to Past Course: This is the link to the textbook used for this class: https://www.bioinformaticsalgorithms.org/
CSE 284 - Personal Genomics/Bioinformats with Prof. Melissa Ann Gymrek
Course Description: Genome-sequencing is quickly becoming a commodity, and millions of people have already analyzed their own genomes through direct-to-consumer companies. This course provides an introduction to current bioinformatics techniques for analyzing and interpreting human genomes. We will learn how to interpret a single genome in the context of an entire population. Topics covered include an introduction to human medical and population genetics, human ancestry, finding and interpreting disease-causing variants, genome-wide association studies, genetic risk prediction, analyzing next generation sequencing data, and how to scale current genomics techniques to analyze hundreds of thousands of genomes. We will also discuss the social impact of the personal genomics revolution. This course is designed for students with a quantitative background and some programming experience who are interested in human genetics and bioinformatics research.
Required Knowledge: Basic UNIX skills, Python programming experience, interest in human genetics
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: An introductory Python course.
Link to Past Course: https://canvas.ucsd.edu/courses/12840 and http://gymreklab.com/teaching/personal_genomics/personal_genomics_2017.html
CSE 291A- AI Agents with Prof. Prithviraj Ammanabrolu
Course Description: This course will cover the basics of (1) what LLM-based AI Agents actually are; (2) where they can be useful (and where they are not); and (3) how to safely train and deploy an agent for a given virtual domain.
Required Knowledge: Students should be familiar with basic CS concepts such as Search (A*, Monte Carlo Tree Search) and Deep Learning concepts such as Transformers (how self-attention works) and the basics of how Large Language Models are (pre-)trained. Students are expected to come into the class with the ability to implement these concepts from scratch (in Python/numpy) and also be able to use popular libraries such as Huggingface. Basic knowledge of Reinforcement Learning (what is a Markov Decision Process, differences between online and offline RL, RL from Human Feedback) is a plus but not required.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Undergrad Intro to AI/RL, and grad level Intro to Deep Learning / NLP types of courses are highly recommended
Link to Past Course: N/A
CSE 291G - Medical Image Computing with Prof. Marc Niethammer
Course Description: This course will provide an introduction to image processing and analysis motivated by and used in medical image processing and analysis. Starting with an overview of imaging modalities, we will explore simple methods for image preprocessing and feature extraction, methods for general image segmentation and for image registration. We will also touch on more modern approaches to image analysis making use of machine learning / deep learning.
Required Knowledge: Multivariable calculus, linear algebra, introduction to probability theory
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Review of basic concepts in probability theory. Review of matrix computations: e.g., rank, eigenvectors, eigenvalues, eigendecomposition. Review of gradient computations and norms.
Link to Past Course: n/a
CSE 291I - Antisocial Computing with Prof. Kristen Vaccaro
Course Description: ‘The internet is a trash fire,’ according to some experts. What has gone wrong? And how can we fix it? This course will explore many of the problems of social media: disinformation, bias, extremism, surveillance, among others. Students will learn 1) how design choices (in interfaces and algorithms) can impact the function and style of online communities, 2) how aspects of human psychology drive the problems that arise, and 3) understand how these same topics have been explored in art, fiction, and film. Using these theoretical understandings, students will explore how to design better social computing systems.
Required Knowledge: N/A
Enforced Prerequisite: N/A
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://urldefense.com/v3/__https://kristenvaccaro.github.io/antisocial-computing/__;!!Mih3wA!BpJBjBKScX7IzUeFq4LSVSgfuC3_N0TDYN__7dt3K9W4JGqksJhSs-MJ79T3dg9dKl5FP_OawRkOOWDludfTqEZ8WsbK$
CSE 291I - Intro Comp Education Research with Prof. Leo Porter
Course Description: Computer science as a major has high societal demand. In addition, computer programming is a skill increasingly important for all students, not just computer science majors. However, computer science remains a challenging field for students to learn. This course examines what we know about key questions in computer science education: Why is learning to program so challenging? What pedagogical choices are known to help students? How do those interested in Computing Education Research (CER) study and answer pressing research questions? What role does GenAI play in changing how students learn?
This course surveys the key findings and research directions in CER and applications of those findings for secondary and post-secondary teaching contexts. We study the development of the field, current modes of inquiry, the role of technology in computing, student representation, research-based pedagogical approaches, and important open research questions. An important part of the course engages students in the design phases of a CER study and asks students to complete a significant project (e.g., a review of an area of CSER research, prototyping of a software system to aid student learning).
Required Knowledge: None
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: None
Link to Past Course: N/A
CSE 291P - Programmers are People Too with Prof. Michael J Coblenz
Course Description: Programmers of all kinds express their ideas using programming languages. Unfortunately, languages can be hard to use correctly, resulting in lengthy development times and buggy software. How can these languages be designed to make programmers as effective as possible? In this course, we will learn research methods for analyzing and improving the usability of programming languages. Students will apply these techniques to languages of current and historical interest, and in the process, expand their knowledge of different ways to design languages. This course is intended as preparation for conducting independent research on the usability of programming languages. The first part of the course will emphasize research methods from human-computer interaction research, with examples drawn from programming languages and development environments. The second part of the course will focus on reading research papers that describe key results from the field. The course will include homework assignments as well as a group research project.
Required Knowledge: Significant experience programming in several different languages.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://cseweb.ucsd.edu/~mcoblenz/teaching/291B00_fall2024/
CSE 291P - LLM System Optimization with Prof. Yufei Ding
Course Description: This course offers a deep, integrated study of LLM fundamentals (including Attention, LayerNorm, MoE, and Positional Encoding) and the system optimizations critical for production deployment. We will explore the full optimization stack, ranging from high-speed serving on individual GPUs to large-scale distributed training and efficient data parallelism. The curriculum features hands-on GPU kernel optimization techniques, notably using Triton, to directly enhance model latency and throughput. Finally, we'll cover advanced topics like LLM Multi-Agent systems, equipping students with the expertise to build high-performance, future-ready AI applications.
Required Knowledge: Solid proficiency in Python programming, Familiarity with deep learning frameworks such as PyTorch, and Strong foundation in linear algebra and calculus.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Students are encouraged to review fundamental deep learning principles and distributed computing concepts prior to the start of the course.
Link to Past Course: First time offering, N/A.
CSE 291P - Language-based security with Prof. Deian Stefan
Course Description: This is a graduate course on language-based security. Most software we
rely upon is plagued by security vulnerabilities — the common
occurrence of large-scale private data theft alone serves to highlight
the magnitude of the problem. Yet the rise of new application domains
and platforms is making software ever more integral to daily life. It
is prudent for us to build more secure software systems.
One promising approach to building secure systems is to leverage ideas
from the programming languages community. The recent industry trend of
adopting new languages, type systems, and verification tools also
makes this approach very timely.
This research course explores the use of various programming
languages, program analysis, and program verification techniques to
(1) enforce security, and (2) to rigorously specify and reason about
security. We will study secure runtime systems (e.g., operating
systems, web servers, hardware architectures) and the underlying
techniques used to make them secure (e.g., language-level information
flow control, capabilities, static checkers, symbolic execution, and
refinement types).
This is a research-oriented class: students are expected to read
papers in depth, pickup the background on their won, and work on a
relatively large research project.
Required Knowledge: CSE 130/230 or equivalent, CSE 127/227 or equivalent
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Read the "Types and Programming Languages" book
Link to Past Course: https://cseweb.ucsd.edu/~dstef
CSE 291T - Top/Computer Sci & Engineering with Prof. Qipeng Liu
Course Description: This is a graduate-level course but no prior knowledge of quantum mechanics or quantum computation is needed. In this course, we will together explore how quantum computers significantly change the landscape of modern cryptography but also how cryptography helps find and forward many important concepts in quantum computing. These include but are not limited to breaking the famous RSA cryptosystem, proof of quantumness, quantum money, position verification and many others. We will spend half of the quarter on quantum basics and the second half on quantum cryptography.
Required knowledge: complex number, linear algebra, theory of computation (CSE105)
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: NA
Link to Past Course: https://www.qip-liu.
CSE 291T - Communication Complexity with Prof. Schachar Lovett
Course Description:
Communication complexity is a computational model which captures communication bottlenecks in algorithm design. The model consists of two or more players, each having their own input. The goal is to accomplish some distributed task based on the inputs, while minimizing communication. This model captures many real-life scenarios, such as time-space tradeoffs for data structures, streaming algorithms, sketching algorithms, sub-linear time algorithms, and many more. This class will cover both the theory of communication complexity, as well as some of the applications of it.
Required Knowledge:
Basic combinatorics, linear algebra, general mathematical maturity
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge:
There are several good books on the topic:
* Communication Complexity: And Applications, by Yehudayoff and Rao
* Communication Complexity (for Algorithm Designers), by Roughgarden
* Communication Complexity, by Kushilevitz and Nisan
Link to Past Course: https://cseweb.ucsd.edu/
CSE 291Y - Faults In Security Metaphors with Prof. Alex Grantman
Course Description: Computer security discourse makes heavy use of metaphors. We make casual references to fields from biology (e.g., coevolution of attack and defense) to economics (e.g., security debt), and everything in-between. These metaphors are meant to facilitate understanding of abstract concepts by mapping them to supposedly similar and more familiar concepts in other domains. But just how valid are these rhetorical shortcuts? As technologists, how much do we really understand about these concepts in ecology, law, economics, etc.? In this interdisciplinary course we will examine in depth some of the influential cybersecurity metaphors. We will read sources from respective domains to understand how the commonly understood lay meaning of the metaphor may differ from its technical meaning in its original context. We will discuss the validity of typical conclusions made when applying the metaphor and what additional lessons can be drawn from a more informed understanding of the metaphor’s subject domain.
Required Knowledge: None.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: None.
Link to Past Course: N/A