Updated March 2025
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.
Spring 2025 Graduate Course Information
CSE 205A – Logic in Computer Science with Prof. Victor Vianu
Description: The goal of this course is to introduce students to mathematical logic as a tool in computer science. After covering basic material on propositional and predicate logic, the course presents the foundations of finite model theory and descriptive complexity. Other topics, including temporal logic, model checking, and reasoning about knowledge and belief, will be discussed as time allows. Evaluation is based on homework sets and a take-home final.
Required Knowledge: Basic computability and complexity theory (CSE 200 or equivalent)
Enforced Prerequisite: Yes. CSE 200 or approval of the instructor.
Recommended Preparation for Those Without Required Knowledge: Sipser, Introduction to the Theory of Computation.
Link to Past Course: N/A
CSE 209B – Top/Seminar in Cryptography with Prof. Mihir Bellare
Course Description: This course explores zkSNARGs, which are zero-knowledge protocols with short proof size. We will look at definitions, construction, applications and available implementations. More information here https://cseweb.ucsd.edu/~mihir/cse209B-Sp25/index.html
Required Knowledge: Cryptography at the level of CSE207A or CSE207B
Enforced Prerequisite: CSE207A or CSE207B or permission of instructor
Recommended Preparation for Those Without Required Knowledge: https://www.youtube.com/playlist?list=PL-SStBoAJuw0vj8MgTFhY5y9wSFnjGbOB
Link to Past Course: None, but link to present course is https://cseweb.ucsd.edu/~mihir/cse209B-Sp25/index.html
CSE 217 – Human CenteredComputing for Health with Prof. Nadir Weibel
Course Description: The focus of HC4H is to learn how to use Human-Centered Design (HCD) to design and develop technology at the intersection of computer science and health. Students will learn regulations, ethical protocols, and methodologies to help them bridge technology and health. By the end of the class, students will have developed a design prototype and proposed solution to address a real-world problem.
This course is designed to develop an in-depth and comprehensive understanding of what it means to introduce and study technology across health and healthcare. Students will be exposed to a variety of real-world examples, gain a user-centered understanding from multiple points of view, and develop the skills needed to design solutions to solve real problems.
In the in-class part of the course, students will be engaging in dedicated discussion around design and engineering of novel solutions for current healthcare problems. These discussions will be catalyzed by in-depth online discussions and virtual visits with experts in a variety of healthcare domains such as emergency rooms physicians, surgeons, intensive care unit specialists, primary care clinicians, medical education experts, health measurement experts, bioethicists, and more.
The second part of the class will focus on a design group project that will capitalize on the visits and discussions with the healthcare experts and will aim to propose specific technological solutions and present them to the healthcare stakeholders. Students will be exposed to specific Human-Centered Design methods in class, and will be expected to deliver a web page describing their final solution,
Successful students in this class often follow up on their design projects with actual development of an HC4H project and its deployment within the healthcare setting in the following quarters.
If COVID regulation will allow us, students will be exposed to the health domain at large through presentations, in-person visits and discussions with experts in emergency rooms, trauma rooms, operating rooms, radiology clinics, sleep clinics, outpatient medical offices, the Simulation Training Center (STC), the Professional Development Center (PDC), the Center for the Future of Surgery (CFS), the Exercise and Physical Activity Resource Center (EPARC), and the West Health Institute.
If COVID won’t allow us to organize in in-person visits, we will engage with our experts through remote panels and discussions, and “remote visits” to the same facilities.
Required Knowledge: Technology-centered mindset, experience and/or interest in health or healthcare, experience and/or interest in design of new health technology.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: None.
Link to Past Course: None.
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 224 – GRADUATE NETWORKED SYSTEMS WITH PROF. George Porter
Description: This course will provide a graduate-level understanding of networked systems design and implementation. Topics include techniques for building distributed applications, basics of networking, sockets programming, Remote Procedure Calls, managing scalability, networked storage, distributed consensus and state management, fault tolerance, load balancing, datacenter design, security, and the energy/carbon impacts of cloud computing.
Required Knowledge: Ability to create and manage a large software codebase required. Knowledge of the Go programming language is recommended but not required.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge:
Please review https://go.dev/tour/ for an overview of Go
Link to Past Course: https://canvas.ucsd.edu/courses/32789
CSE 227 – Computer Security with Prof. Deian Stefan
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: CSE 127 or equivalent
Enforced Prerequisite: No.
Recommended Preparation for Those Without Required Knowledge: Take CSE 127 or read papers from https://cseweb.ucsd.edu/~dstefan/cse227-spring22/
Link to past course: https://cseweb.ucsd.edu/~dstefan/cse227-spring22/
CSE 229A – Tops/Seminar/Computer Systems with Prof. Amy Ousterhout
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 230 Principles of Programming Languages with Prof. Loris D’Antoni
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 program semantics for precisely capturing the meaning of programs by characterizing their executions. We will then study different formal approaches to verifying properties of programs based on their semantics. Students will be evaluated on the basis of homework and programming assignments.
Required Knowledge: Basic functional programming e.g. as taught in CSE 130 Haskell, OCaml, Scala, Rust, and discrete mathematics (logic, sets, relations).
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 231 Advanced compiler designs with Prof. Yufei Ding
Course Description: Advanced Compiler Designs covers advanced topics in compiler construction, including intermediate representations, optimization techniques, register allocation, instruction scheduling, and code generation. The course explores modern compiler architectures, domain-specific optimizations, and emerging trends in compilation for high-performance and specialized computing.
Required Knowledge: While knowledge of automata theory (formal languages and (non)-deterministic finite automata) can be helpful, it is not strictly required.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Recommended reading includes Engineering a Compiler by Cooper and Torczon and Modern Compiler Implementation by Appel. Familiarity with compiler infrastructures like LLVM or GCC and experience with low-level programming (e.g., C/C++) will also be beneficial.
Link to Past Course: N/A
CSE 237D – Embedded System Design with Prof. Ryan Kastner
Course Description: This is an embedded systems project course. You will work on teams on either your own project (with instructor approval) or ongoing projects. Examples from previous years include remote sensing, robotics, 3D scanning, wireless communication, and embedded vision. You can browse examples from previous years for more detailed information. The class time discussions focus on skills for project development and management. We discuss how to give presentations, write technical reports, present elevator pitches, effectively manage teammates, entrepreneurship, etc.. The grading is primarily based on your project with various tasks and milestones spread across the quarter that are directly related to developing your project. Each project will have multiple presentations over the quarter. The class ends with a final report and final video presentations.
Required Knowledge: A general understanding of some aspects of embedded systems is helpful but not required. The desire to work hard to design, develop, and deploy an embedded system over a short amount of time is a necessity.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: Contact Professor Kastner as early as possible to get a better understanding for what is expected and what types of projects will be offered for the next iteration of the class (they vary substantially year to year). This is particularly important if you want to propose your own project.
Link to Past Course: N/A
CSE 239A – Topics/Seminar in Databases with Prof. Victor Vianu
Course Description: Weekly seminar on current research topics in databases (1 unit)
Required Knowledge: CSE132A and CSE 232A (or similar)
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 239B – Topics/Seminar in Programming Languages with Prof. Michael Coblenz
Course Description: This is a graduate seminar on programming languages research. It is only open to students who are currently doing research with programming languages faculty.
Required Knowledge: N/A
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 240A – Princ/Computer Architecture with Prof. Jishen Zhao
Course Description: This course provides a thorough and fundamental treatment of the art of computer architecture. Topics include concepts of von Neumann architectures, methods of evaluating CPU performance, instruction-set design and examples, pipelining, branch prediction, cache and memory hierarchy, main memory organization and memory controller, virtual memory, multicore processors, cache coherence and memory consistency, and GPU architecture.
Required Knowledge: Basics of Instruction Set Architecture, cache design, and the design of single-cycle, multi-cycle, and pipeline processors.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: If you do not have the appropriate background, you should either 1) not take this class or 2) spend significant time reviewing the textbook and lecture notes from CSE141.
Link to Past Course: https://cseweb.ucsd.edu/classes/fa17/cse240A-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/eda/index.html
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/eda/index.html, and use of electronic design automation (digital ASIC) tools such as those from Cadence, Siemens EDA, Synopsys, or the OpenROAD Project.
Link to Past Course: N/A
CSE 250A – Principles of AI: Prob Reasoning and 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 251B – Principles of ML: Neural Networks with Prof. Qi (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 or equivalent
Enforced Prerequisite: No
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: N/A
CSE 252D – Advanced Computer Vision with Prof. Manmohan Chandraker
Course Description: This course covers advanced concepts in computer vision to explore recent developments. Example topics include 3D reconstruction, object detection, segmentation, domain adaptation, neural rendering, diffusion models and vision-language. The class will be composed of lectures, presentations by students and a project.
Required Knowledge: Previous project experience in computer vision and machine learning is required.
Enforced Prerequisite: Yes. Students who have completed two of the following courses may enroll directly: 252A, 252B, 250A, 251A, 251B, 251C, 272.
Recommended Preparation for Those Without Required Knowledge: For preparation, students may go through CSE 252A and Stanford CS 231n lecture slides and assignments.
Link to Past Course: https://cseweb.ucsd.edu/~mkchandraker/classes/CSE252D/Spring2024/
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 255 – Data Mining & Analytics with Prof. Yoav Freund
Description: The last decade has seen an explosion in the size and complexity of datasets. Many popular data analysis software packages: R, Matlab, SPSS, etc. are not adequate when the data size is many times the memory size. New packages such as Spark and Tensorflow have been developed that process massive data using commodity computers in the cloud. In this class, you will learn the statistical and engineering foundations of big data Analytics.
Required Knowledge: This class has two pre-requisites: **Probability and Statistics:** Random Variables, Expectation, Standard Deviation, PCA, linear regression, t-test. **Python programming:** numpy, pandas, matplotlib, jupyter notebooks.
Enforced prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 276F – Machine Learning for Robotics with Prof. Hao Su
Course Description: This course introduces the framework of Embodied AI, which aims to develop intelligent agents that can interact with the physical world. The course will cover key concepts of this emerging field with assignments and projects, including embodiment, reinforcement learning, imitation learning, 3D perception, and sim2real technologies.
Required Knowledge: Machine Learning, Deep Learning, Computer Vision, Geometry, and Physics.It is advisable to have a solid understanding of linear algebra, deep learning, and computer vision. Relevant courses for this preparation are CSE152/252 or CSE150/250.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: https://haosulab.github.io/ml-meets-robotics-SP24/schedule.html
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 291 – Big Data Science and 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 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). Prior knowledge of molecular biology is not assumed and is not required; essential concepts will be introduced in the course as needed.
Required Knowledge: Prior experience with dynamic programming and graph algorithms recommended.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowedge: https://canvas.ucsd.edu/courses/51983
Link to Past Course: N/A
CSE 291 – The Legacy of the Cypherpunks with Prof. Nadia Heninger
Course Description: Wikipedia defines a cypherpunk as “one who advocates the widespread use of strong cryptography and privacy-enhancing technologies as a means of effecting social and political change.” In the 1990s, the cypherpunk movement anticipated a number of technologies and ideas that have since become real, including cryptocurrencies, encrypted messaging, anonymized network communications, data havens, anonymous marketplaces, and the use of cryptography to aid in civil disobedience. In this course, we will explore the politics and history of these ideas and how they played out in reality from a technical and cultural perspective. Course readings will include technical papers as well as nontechnical books and other articles. Students will carry out a research project on privacy-enhancing technologies.
Required Knowledge: At least one course in cryptography or security: CSE 207A/B, CSE 227, CSE 107, CSE 127, or equivalent.
Enforced Prerequisite: No
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A
CSE 291 – 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/sp2024/
CSE 291 – 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 291 – Security, Privacy, and US Law with Prof. Stefan Savage
Description: This course will explore the intersection of the technical and the legal around issues of computer security and privacy, as they manifest in the contemporary US legal system. The goal of the course is multifold: First, to provide a better understanding of how key portions of the US legal system operate in the context of electronic communications, storage and services. Second, to provide a pragmatic foundation for understanding some of the common legal liabilities associated with empirical security research (particularly laws such as the DMCA, ECPA and CFAA, as well as some understanding of contracts and how they apply to topics such as “reverse engineering” and Web scraping). Third, we will explore how changes in technology and law co-evolve and how this process is highlighted in current legal and policy “fault lines” (e.g., around questions of content moderation). This will very much be a readings and discussion class, so be prepared to engage if you sign up.
Required Knowledge: None, but it we are going to assume you understand enough about the technical aspects of security and privacy (e.g., such as having taking an undergraduate class in security) that we, at most, need to do cursory reviews of any technical material.
Enforced Prerequisite: None.
Recommended Preparation for Those Without Required Knowledge: Review lectures/readings from CSE127.
Link to Past Course: https://cseweb.ucsd.edu/classes/sp23/cse291-b/syllabus.html
CSE 291 – Physics Simulation Prof. Albert Chern
Course Description: The course covers the mathematical and computational basis for various physics simulation tasks, including rigid body dynamics, solid mechanics and fluid dynamics. A main focus is constitutive modeling, that is, the dynamics are derived from a few universal principles of classical mechanics, such as dimensional analysis, Hamiltonian principle, maximal dissipation principle, Noether’s theorem, etc. These principles are the foundation to computational methods that can produce structure-preserving and realistic simulations. The course include a few projects where students are expected to derive the physical equations as well as demonstrating numerical computation results.
Required Knowledge: Linear algebra, multivariable calculus, a computational tool (supporting sparse linear algebra library) with visualization (e.g. Houdini with scipy, matlab, C++ with OpenGL, Javascript with webGL, etc).
Enforced Prerequisite: None
Recommended Preparation for Those Without Required Knowledge:
– Learn Houdini from materials and tutorial links in https://cseweb.ucsd.edu/~alchern/teaching/houdini/
– Exterior Calculus in Graphics https://stephaniewang.page/files/ECIG_notes_v1.00.pdf
Link to Past Course: N/A
CSE 291 (G00) – Randomness Extractors Prof. Jyun-Jie Liao,
Course Description: Randomness extractors are algorithms that convert imperfect random sources into uniform random strings. These objects bridge “randomness from nature”, which we have less confidence in, with uniform randomness that we would like to use in applications. While an “ideal randomness extractor” does not exist, there are fruitful results on randomness extractors in the literature for different restricted settings. These extractor constructions have found many applications in theoretical computer science, cryptography and combinatorics. In this course, we will cover several classic results on the construction of randomness extractors and some important applications of randomness extractors. A big part of this course will focus on modern constructions of extractors for two independent sources.
Required Knowledge: There is no specific prerequisite other than general mathematical maturity, and some basic knowledge in algebra (specifically, finite fields) and combinatorics.
Enforced Prerequisite: N/A
Recommended Preparation for Those Without Required Knowledge: N/A
Link to Past Course: N/A.
CSE 291 – Topics in ML for Chip Design Prof. Andrew Kahng
Course Description: Chip design is an arena where advances in semiconductor fabrication and integration technology meet hardware system needs. AI and machine learning techniques are widely viewed as potential “boosters” for chip design and various underlying methodologies and optimizations. This seminar will focus on the nexus of AI/ML and the physical implementation phase of chip design. Seminar participants will define and pursue projects related to open-source data, tools and benchmarking at the leading edge of practice. Projects will produce reports (papers), data and/or code, as determined by project teams and instructor.
Required Knowledge: At least partial familiarity / experience with IC implementation flow and some ML coursework, or permission of the instructor.
Enforced Prerequisite: Yes. At least partial familiarity / experience with IC implementation flow and some ML coursework, or permission of the instructor.
Recommended Preparation for Those Without Required Knowledge: ECE 165 or ECE 260A/B, VLSI physical design background such as what is seen at https://www.ifte.de/books/eda/index.html , some ML coursework.
Link to Past Course: N/A.