Updated October 2024
This page serves the purpose of helping graduate students understand each graduate course offered during the 2024-2025 academic year. Please use this page as a guideline to help decide what courses to take.
***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 2024 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: N/A
CSE 207B - APPLIED CRYPTOGRAPHY WITH PROF. NADIA HENINGER
Course Description: This is a course on applied cryptography, with a significant focus on cryptanalysis. Topics to be covered include:
Random number generation, stream ciphers, block ciphers, hash functions, modes of operation, RSA, Diffie-Hellman, DSA, ECDSA, Algorithmic techniques in cryptanalysis and computational number theory, secure channels, TLS, and cryptography in practice
Required Knowledge: CSE 202 or CSE 107 or equivalent
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://cseweb.ucsd.edu//classes/sp22/cse207B-a/
CSE 209A - Theory seminar with Prof. Shachar Lovett
Course Description: Weekly seminars on topics in theoretical computer science. Students are expected to attend talks and write short reflections.
Required Knowledge: A general undergraduate background in theory will be assumed.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: None
Link to Past Course: https://cse.ucsd.edu/
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 and importance. In short, creating software is becoming easier to build, often poorly, 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 software engineers in industry.
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 from McConnell, Brooks, Beck, Spolsky, and others. In addition, the course has a practical group project employing standard web technologies to help develop engineering and collaborative skills in a small team situation.
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 218 - ADVANCED TOPICS IN SOFTWARE ENGINEERING WITH PROF. NADIR WEIBEL
Course Description: This course will apply basic Software Engineering concepts to real world problems. This is a project-based course, and students will build a working system based on a range of Ubiquitous Computing technology, and CSE 218 students will lead a team of undergraduate students throughout an accelerated agile development cycle. After learning the principles of agile scrum, students will investigate a number of technologies such as sensors, wearables, cameras, AR/VR headsets, and then apply the scrum methodology to develop a working system by the end of the quarter. Projects will culminate in a demonstration of the ubiquitous computing projects.
Required Knowledge: Knowledge in Software Engineering and Human-Computer Interaction, good development experience in a range of programming languages, experience or willingness to learn physical computing.
Enforced Prerequisite: Yes. CSE 210 and CSE 216, or equivalent HCI experience
Recommended Preparation for Those Without Required Knowledge: Online Advanced Software Engineering Course, https://www.coursera.org/specializations/interaction-design
Link to Past Course: https://canvas.ucsd.edu/courses/18848/
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.
Link to Past Course: N/A
CSE 222A - ComputerCommunication Networks with Prof. George M Porter
Course Description: CSE 222A is a graduate course on computer networks. This course will provide a broad understanding of exactly how the network infrastructure supports distributed applications. Topics covered in the course include: Internet architecture, Internet routing, Software-Defined Networking, datacenters, content distribution networks, and peer-to-peer systems.
This is a research-oriented course focusing on current and classic papers from the research literature. Further, all students will work on an original research project, culminating in a project writeup and conference-style presentation. In the past, the very best of these course projects have resulted (with additional work) in publication in top conferences.
As with many other research seminars, the course will be predominately a discussion of a set of research papers. However, we will also discuss the origins of these research projects, the impact that they had on the research community, and their impact on industry (spoiler alert: the impact on industry generally is hard to predict).
Note that this class is not a "lecture" class, but rather we will be actively discussing research papers each class period.
Required Knowledge: Students should have taken an undergraduate networking class, equivalent to CSE 123, or be able to acquire the equivalent knowledge on their own.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 227 - Computer Security with Prof. Earlence T 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. Stefan Savage
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/Computer Security with Prof. Nadia A Heninger
Course Description: Discussion on problems of current research interest in computer security. Topics to be presented by faculty and students under faculty direction.
Required Knowledge: No.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 232 - Principles/Data Base Systems with Prof. Alin Bernard Deutsch
-TBA
CSE 237C - Validation&Testing/EmbeddedSys with Prof. Ryan Charles Kastner
Course Description: This class focuses on creating embedded system prototypes using a programmable system-on-chip (SoC). The class is graded primarily based on the performance in projects that are spread across the class. The projects require the student to implement a hardware-accelerated core and integrate it into a prototype SoC. Students understand parallel programming concepts, learn how to use modern high-level synthesis tools, and develop hardware-accelerated compute systems.
Required Knowledge This class is part of the 237 “Embedded Systems” series. This class stands on its own and does not require knowledge from any of the previous 237 classes. Having some understanding of basic digital signal processing (sampling, filtering, transforms) is useful but not required. Equally helpful is having taken classes in computer architecture (and in particular understanding pipelining, memory hierarchy, and digital design). Again, it will be useful but not required as the class is taught in a way that is self-contained. Do note that most students have a good background in at least one of these areas (DSP or computer architecture); if you do not know either, then you will have to work harder.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: You can start by reading the book! The class is built around this book (and vice-versa) and the projects are related to the chapters in that book. For those who do not know DSP, there are countless resources for this. You can learn the basics of finite impulse response (FIR) filters, discrete Fourier transform, and fast Fourier transforms. These form some of the core computations for the projects. Each of these topics will be described in class, but you would be wise to have at least a decent understanding of how these work. The same is true for computer architecture; there are countless resources for this. You generally want to understand the components of a data path (control flow, data flow) and the tradeoffs in memory design (number of ports, throughput, hierarchy, etc.). We will primarily be using the Xilinx HLS design tool. There are a number of tutorials on this tool at the Xilinx website. If you want to start using the tool early, contact the instructor.
Link to Past Course: https://kastner.ucsd.edu/ryan/cse237c/
CSE 240A - Princ/Computer Architecture with Prof. Hadi Esmaeilzadeh
Course Description: This is a graduate-level course on how the computer works. In this course, we will review fundamental structures in modern microprocessor and computer system architecture design. We will cover computer organization, instruction set design, memory system design, pipelining, cache coherence protocols, memory schedulers, power/energy, prefetching and other techniques to explore instruction level parallelism and thread level parallelism. We will also cover system level topics such as storage subsystems. We will also have case studies as to how modern microprocessors are designed.
Required Knowledge: N/A.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://hadiclass.github.io/cse240a-fa18/index.html
CSE 240D - Applicatn Specific Processors with Prof. Hadi Esmaeilzadeh
Course Description: Deep learning is set to revolutionize medicine, robotics, commerce, transportation and numerous other aspects of our lives. However, these impacts are contingent upon providing high-performance compute capabilities alongside restrained power consumption. Significant effort has been made both by modifying hardware and software in the direction of enhancing the speed of neural networks and their consumed energy. The compute intensity of neural networks and the inability of general purpose processors to meet this high demand accentuate the need for applications specific hardware accelerators that are custom designed for deep neural network computations. In this course, you will gain insight on the design process of these accelerators, as well as deep neural network architectures and characteristics by discussing the prevalent literature in the area. This is a project-based course, so you will also acquire hands-on knowledge on how to actually construct an accelerator through the project. The project will step by step guide you through outlining your architecture and developing a functional and timing simulator for it.
Required Knowledge: N.A
Enforced Prerequisite: There are no pre-requisites for the course but students will be expected to be comfortable with a) basic computer organization, and b) programming in a language such as Python or C/C++. The course is open to both PhD and MS students. Undergraduate students require permission from the instructor.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://hadiclass.github.io/cse240d-wi21/index.html
CSE 250A - Probabilistic Reason&Learning with Prof. Trevor A 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: https://cseweb.ucsd.edu/classes/fa19/cse250A-a/
CSE 256 - Statistical Natural Lang Proc with Prof. Ndapandula Nakashole
Course Description: This course is on Natural Language Processing (NLP), the study of computing systems that take as input or produce as output unstructured, natural language data. The course covers primarily deep learning methods and language model pre-training, as well NLP tasks. Techniques studied include basic classification techniques, feedforward neural networks, attention mechanisms, pre-trained large language models (BERT-style encoders and GPT-style LLMs), and structured models (sequences, etc.). Problems will primarily focus on semantics (lexical semantics, question answering, ...) and applications such as code generation. Programming assignments throughout the semester involve building machine learning systems for NLP tasks.
Required Knowledge: Basics of Machine Learning
Enforced Prerequisite: NO.
Recommended Preparation for Those Without Required Knowledge: Basics of Machine Learning
Link to Past Course:
CSE 258/R - 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/classes/fa23/cse258-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, but familiarity with computer architecture is required.
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: N/A
CSE 270 - Discrete Differential Geometry with Prof. Albert Ren-Haur Chern
Course Description: The course provides an introduction to discrete differential geometry and its applications in geometry modeling and analysis. The contents include the smooth and discrete theory of curves, surfaces, exterior calculus, the Hodge theory, and the vector bundle theory. The theories are explained alongside with applications including numerical methods for differential equations on manifolds, surface texturing, shape analysis and vector field designs. The course also covers the basics of the graphics software Houdini FX.
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.com/playlist?list=PL9_jI1bdZmz0hIrNCMQW1YmZysAiIYSSS
Link to Past Course: https://cseweb.ucsd.edu/~alchern/teaching/cse270_wi24/
CSE 276A - INTRODUCTION TO ROBOTICS WITH PROF. HENRIK CHRISTENSEN
Description: The desired learning outcomes for the students are:
- Understanding basic and advanced concepts in robotics
- Understanding the most common techniques used in the field
- Applying them on one or more robotic platforms and gain experience
- Interacting with your peers about the material, quizzes, and assignments
- Evaluating your own progress in the course on a regular basis
- Implement a complete robot system with perception, control, planning and execution
Required Knowledge: This is an introductory graduate class, so a minimum of formal requirements is assumed beyond an ability to program. Knowledge of linear algebra and basic probability theory is assumed. Basic knowledge of image processing is desirable, but not a prerequisite.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: http://www.hichristensen.com/CSE276A-22/
CSE 276C - MATHEMATICS FOR ROBOTICS WITH PROF. HENRIK CHRISTENSEN
Course Description: This is a graduate course that introduces the mathematical tools used in many diverse areas of robotics. The class is inspired by the equivalent class at Carnegie Mellon University by Michael Erdmann - 811 Mathematical Foundations for Robotics. The goal of the course is to help you accomplish the following:
Understand the geometry of linear systems of equations, including null spaces, row spaces and column spaces. Understand eigenvalues, diagonalization, singular value decomposition, least-squares solutions. Apply these skills to infer rigid-body transformations from data. Learn how to model data using interpolation, linear regression, and higher-order approximation methods. Utilize these skills to recognize objects from point-cloud data and image streams Understand different methods for finding roots of equations, in one dimension and higher, including bisection, Newton's method, Müller's method. Develop skills to analyze convergence rates. Generalize finite-dimensional linear algebra concepts such as orthogonal bases to perform function approximation. Develop techniques for solving differential equations numerically. Understand optimization techniques such as gradient descent, conjugate gradient, Newton's method. Learn the basics of convex optimization. Consider obstacle-avoidance viewed as cost-minimization. Develop methods from the Calculus of Variations for higher-order optimization. Apply these techniques to develop the Lagrangian dynamics of a robot manipulator. Learn basic computational geometry techniques, such as Convex Hull and Voronoi diagrams. Implement a geometric robot motion planner.Required Knowledge: N/A
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://amyousterhout.com/cse291-fall22/
CSE 276E - ROBOTIC SYS DESIGN & IMPLEMNT WITH PROF. STEVE SWANSON
Course Description: End-to-end system design of embedded electronic systems including PCB design and fabrication, software control system development, and system integration. Program or materials fees may apply.
Required Knowledge: N/A
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://sites.google.com/ucsd.edu/the-quadcopter-class/home
CSE 291 (A00) - Large Model Reasoning with Prof. Lianhui Qin
Course Description: This course delves into the rapidly evolving field of large (foundation) models and machine reasoning. Large models, like large language models (GPT-4), video models (Sora), multi-modal models (GPT-4o, Gemini), world models, are creating impressive results in various domains. How do these models work? How can they be used to solve complex reasoning problems, in math, commonsense, embodied, and even scientific areas? Are we close to the so-called AGI already? What are the foundation limitations of these techniques? What are the next steps to build robust, grounded, and/or interpretable reasoning machines? We will talk about these topics. In addition to the lectures, students will also read and present latest related papers in the field, and team up to complete course projects.
Required Knowledge: Introductory machine learning, natural language processing
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: CSE 150A, 151A
Link to Past Course: N/A
CSE 291 (B00) - 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.
CSE 291 (C00) - 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/nadia-polikarpova/cse291-program-synthesis/wiki
CSE 291 (D00) - Sociotechnical Cybersecurity with Prof. Deepak Kumar
Course Description: This course focuses on the cybersecurity threats that emerge when humans interact with technology at scale – such as misinformation, disinformation, and online harassment. Students will study how these threats emerge in practice and explore the landscape of technical defenses and interventions against these harms. Students will primarily read, synthesize, present, and discuss research papers. The course will culminate in a presentation of a quarter-long research project that students will conduct in small groups.
Required Knowledge: Some cybersecurity knowledge and human-computer interaction knowledge is helpful, but not required.
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 291 (E00) - Additive combinatorics with Prof. Shachar Lovett
Course Description: Additive combinatorics studies the structure of "approximate algebraic" objects, such as subsets of groups or fields, and their behavior under algebraic operations, such as addition or multiplication. While originally motivated by number theory, in recent years many connections and applications in theoretical computer science have been discovered. In this course, we will cover basic topics in additive combinatorics, some recent advances, applications to theoretical computer science, and the many open problems that remain.
Required Knowledge: There are no specific prerequisites beyond a certain level of mathematical maturity. It is assumed that students have basic knowledge in combinatorics and algebra.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: See links in past course website
Link to Past Course: https://cseweb.ucsd.edu/classes/wi14/cse291-a/
CSE 291 (F00) - Privacy & Society with Prof. Imani Munyaka
Course Description: This seminar-style course delves into the various concepts of privacy, exploring its theoretical underpinnings, legal frameworks, and empirical research. Through a combination of readings, discussions, and case studies, students will examine the evolving definitions and dimensions of privacy, considering perspectives from philosophy, sociology, and information science. The course will cover key privacy laws and regulations, analyzing their implications for individuals, organizations, and society at large with a focus on implications for various technologies. Students will engage critically with various readings and case studies. Assessment will be based on students' contributions to class discussions and a final group position paper, where they will articulate and defend their stance on a privacy-related topic of their choice. This course aims to equip students with a comprehensive understanding of privacy, preparing them to navigate and address the complex privacy challenges in their professional and academic pursuits in computer science.
Required knowledge: N/A
Enforced prerequisite: N/A
Recommended Preparation for Those Without Required Knowledge: N/A.
Link to Past Course: N/A
CSE 291 (G00) - Securing Proc Architectures with Prof. Dean Tullsen
Course Description: This course will examine the challenges of building a secure processor architecture. We will examine side channel attacks that exploit vulnerabilities throughout the processor and pipeline, transient execution attacks, architectures that mitigate various vulnerabilities, some more fundamentally secure architectural designs, architectures that provide memory isolation, and those that provide control flow isolation.
Required knowledge: Graduate level architecture course. some knowledge of security helpful, but not required.
Enforced prerequisite: CSE 240A or equivalent
Recommended Preparation for Those Without Required Knowledge: N/A.
Link to Past Course: N/A
CSE 291 (H00) - 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.
Link to Past Course: https://shangjingbo1226.github.io/teaching/2024-spring-CSE291-TM
CSE 291 (I00) - QUANTUM COMPLEXITY THEORY 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 291 (J00) - NAVIGATING ACADEMIC JOB MARKET WITH PROF. HADI ESMAEILZADEH
Course Description: Being an academic who works with generation of talented young students is one of the most rewarding careers. Attaining a faculty position requires understanding the recruitment process, planning your research and teaching portfolio rather early on, and preparing the package. In this course, we will cover all this topics and we all also take a glimpse into the life a tenure-track faculty member to set the appropriate exceptions. We will also work together to prepare practice or final material for your job search.
Required Knowledge: N/A
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://kristenvaccaro.github.io/academic-job/
CSE 291 (K00) - Secure, Rusty Systems 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: