• About
    • People
    • Our Building
    • CSE Publications
    • CSE News
    • CSE Events
    • Contact Us
  • Research
    • Research Areas
    • Awards & Accomplishments
    • Associated Centers
    • Technical Reports
  • Graduate
    • Student Awards
    • Degree Programs
    • Graduating PhDs
    • Admissions
    • Courses
    • Advising
    • Financial Opportunities
    • DeepMind Fellowships
  • Undergraduate
    • Undergraduate Home Page
    • WASC Educational Learning
    • Prospective Students
    • Advising
    • Faculty Advising & Mentorship
    • Degree Programs
    • CSE Honors Program
    • Courses and Enrollment Information
    • Opportunities and Support
    • Tutors
  • Diversity
    • Events
    • Committee
    • Seminar Series
    • Celebration of Diversity
    • Student Organizations
    • Department Activities
    • Outreach
    • Videos & Resources
    • My Story
    • Volunteer
    • “A Day in the Life”: Video Contest
  • Administration
    • Academic Positions
    • Computing/IT Support
    • Facilities
    • Conference Rooms
  • Industry
  • Giving
Enter the terms you wish to search for.

Current Quarter Course Descriptions & Recommended Preparation

Updated February 11, 2021

This page serves the purpose to help graduate students understand each graduate course offered during the 2020-2021 academic year. Please use this page as a guideline to help decide what courses to take.

Spring 2021 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)

Enforced Prerequisite: Yes. CSE 200.

Recommended Preparation for Those Without Required Knowledge:  Sipser,  Introduction to the Theory of Computation

Link to Past Course: N/A

CSE 207 - Modern Cryptography with Prof. Mihir Bellare

Description: This course is an introduction to modern cryptography.  Topics include block ciphers, hash functions, pseudorandom functions, symmetric encryption, message authentication, RSA, asymmetric encryption, digital signatures, key distribution, and protocols.  We will introduce the "provable security'' approach, formally defining security for various primitives and then proving that schemes achieve the defined goals via reductions.  We adopt a "theory brought to practice'' viewpoint, focusing on cryptographic primitives that are used in practice and showing how theory leads to higher-assurance real-world cryptography.

Note: In Sp21 this is a fully online course.

Required Knowledge: Graduate theory of computation (CSE 200) or algorithms (CSE 202). Can be substituted by CSE 227 or CSE 107. Very good performance in undergraduate theory and algorithms both (CSE 105, CSE 101) may substitute.

Enforced Prerequisite: Yes. Theory of computation and algorithms experience in some form.

Recommended Preparation for Those Without Required Knowledge: Sipser's theory of computation book, Cormen Leiserson and Rivest algorithms book.

Link to Past Course: http://cseweb.ucsd.edu/~mihir/cse207/index.html

CSE 223B - Distributed Computing & Systems with Prof. Alex Snoeren

Description: CSE 223B is a 4-unit graduate subject with lectures, paper discussions, a midterm, a final, and a major term research project culminating in writing a research paper of your own. It will present abstractions and implementation techniques that facilitate the design of distributed systems–including both operating systems and sophisticated Internet servers–that can deal with the demands of real-world workloads. Topics will include efficient operating system primitives, high-performance network servers, load shedding, storage systems, security, and fault tolerance. 

Required Knowledge: CSE 221 (or consent of instructor) and substantial programming experience for lab assignments and term project. Note that CSE 223A is not a prerequsite. However, those interested in the theoretical underpinnings of distributed computation are encouraged to take CSE223A as well. CSE223A and CSE223B may be taken in any order.

Enforced Prerequisite: Yes. CSE 221 or consent of instructor.

Recommended Preparation for Those Without Required Knowledge: CSE221 / CSE222A

Link to Past Course: http://cseweb.ucsd.edu/classes/sp20/cse223B-a/

CSE 227 - Computer Security with Prof. Deian Stefan

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: Undergrad security. And at least some background in OS, PL, and compilers.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge: Look at past course and study ahead.

Link to Past Course: https://cseweb.ucsd.edu/~dstefan/cse227-spring20/

CSE 237D - Design Automation & Prototyping for Embedded Systems with Prof. Ryan Kastner

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: None.

Recommended Preparation for Those Without Required Knowledge: Contact instructor

Link to Past Course: http://kastner.ucsd.edu/ryan/cse-237d-embedded-system-design/

CSE 240A - Principles of Computer Architecture with Prof. Jishen Zhao

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: None.

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 251C - Principles of Machine Learning: Machine Learning Theory with Prof. Michal Moshkovitz

Description: Theoretical foundations of machine learning. Topics include concentration of measure, the PAC model, uniform convergence bounds, and VC dimension. As time permits, we cover explainable machine learning methods, including post-hoc and intrinsic explanations.

Required Knowledge: Information taught in CSE 101, CSE 103, CSE 250A, and CSE 251A

Enforced Prerequisite: Yes. CSE 250B/CSE 251A.

Recommended Preparation for Those Without Required Knowledge: Take CSE 101, CSE 103, CSE 250A, CSE 251A

Link to Past Course: https://sites.google.com/eng.ucsd.edu/cse250c/home?authuser=1
http://rbassily.eng.ucsd.edu/home/teaching/spring-2017---cse-250c-machine-learning-theory

CSE 252D - Advanced Computer Vision with Prof. Manmohan Chandraker

Description: (Formerly CSE 252C. Students cannot receive credit for both CSE 252C and CSE 252D) This course will cover advanced concepts in computer vision and focus on recent developments in the field. Example topics include 3D reconstruction, object detection, semantic segmentation, multi-target tracking, action recognition, reflectance estimation, image captioning and domain adaptation. The class will be composed of lectures by the instructor, but with a participation element, too, where students will engage through lightning presentations. Grading will be based on a mid-term, final exam, and course project.

Required Knowledge: Previous experience with computer vision and deep learning is required. Programming experience in Python is required.

Enforced Prerequisite: Yes. Students who have taken 2 out of the following courses are allowed to enroll directly: 252A, 252B, 250B, 253, 254. For students who have taken only 1 of those courses, please add yourself to the waitlist and send the instructor an email, with the subject “SP21 CSE 252D: Request to enroll”. The email should contain your PID and a description of your prior coursework and project experience relevant to computer vision.

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: http://cseweb.ucsd.edu/~mkchandraker/classes/CSE252C/Spring2020/

CSE 257 - Search and Optimization with Prof. Sicun Gao

Description: The course will cover core search and optimization algorithms for decision-making problems. Topics include heuristic search, deep reinforcement learning, numerical optimization, and combinatorial search. 

Required Knowledge: Some familiarity with AI and machine learning.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  N/A

Link to Past Course: https://scungao.github.io/ucsd291/index.html

CSE 283 - Genomics/proteomics/netwk biol with Prof. Vineet Bafna

Description: The goal of this course is to (a) introduce you to the data modalities common in OMICS 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: While the course should be self-contained, we assume some mathematical maturity. Students who have taken CSE202, CSE282 will find the material more accessible.

Enforced Prerequisite: Yes. Instructor consent.

Recommended Preparation for Those Without Required Knowledge:  Online class on Bioinformatics algorithms

Link to Past Course: http://proteomics.ucsd.edu/vbafna/teaching-2/data-wrangling-in-bix/

CSE 284 - Personal Genomics for Bioinformaticians with Prof. Melissa Gymrek

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: None.

Recommended Preparation for Those Without Required Knowledge:  An introductory Python course.

Link to Past Course: https://canvas.ucsd.edu/courses/12840, http://gymreklab.com/teaching/personal_genomics/personal_genomics_2017.html

CSE 291 (A00) - Embedded Systems & The IoT with Prof. Patrick Pannuto

Description:  Researchers, policymakers, citizen scientists, and curious individuals have an innumerable array of questions about the world around them. How does physical proximity affect disease transmission? What changes would have the greatest impact on the carbon footprint of an urban environment? What is the historical air quality like for asthmatics in the neighborhoods where I am shopping for houses? This course is about the design and implementation of platforms and systems capable of capturing the data to answer such questions.
Formally, this is the study of embedded systems and wireless sensor networks. These are computing systems that are deployed widely in the physical world, which creates unique constraints in their physical size, deployment, management, communication, energy availability, and operation. We will begin with a history of impactful deployments, then study each of the pieces, in turn, both traditional sensor architectures and more exotic designs such as batteryless systems, backscatter communication, and how to do machine learning with less than 1 MB of memory.

The course will also include a quarter-long project that will result in a draft of a conference-style paper. This course is timed to align with the traditional deadline for workshop papers at MobiCom (mid-June). For interested groups, there will be support available for turning the class project into a submission for potential publication.

Required Knowledge: Enthusiasm to learn.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge: N/A

Link to Past Course: https://patpannuto.com/classes/2020/winter/cse291/

CSE 291 (B00) - Advanced Statistical Natural Language Processing with Prof. Taylor Berg-Kirkpatrick 

Description: This course will explore current statistical techniques for the automatic analysis of natural (human) language data. The dominant modeling paradigm is corpus-driven statistical learning, with a split focus between supervised and unsupervised methods. Advanced Statistical NLP is a lab-based course. Instead of homework assignments and exams, you will complete four hands-on coding projects. We will also consider practical constraints that affect the scalability of real-world NLP systems to big data.

Required Knowledge: This course assumes a strong background in probability, some background in probabilistic graphic models, and a strong ability to program in Java. Prior experience with linguistics or natural languages is helpful, but not required.  There will be a lot of statistics, algorithms, and coding in this class. Recommended perquisites are courses on discrete mathematics, probability, statistics, probabilistic graphical models, algorithms, and linear algebra.

Enforced Prerequisite: None

Recommended Preparation for Those Without Required Knowledge:  Review probability theory (e.g. conditional independence, probabilistic graphical models) and practice dynamic programming (e.g. Viterbi algorithm) in a language like C++ or Java.

Link to Past Course: http://www.cs.cmu.edu/~tbergkir/11711fa17/

CSE 291 (C00) - Big Data Science and Knowledge with Prof. Nuno Bandeira

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: 

  • CSE 100 (Advanced data structures) and CSE 101 (Design and analysis of algorithms) or equivalent strongly recommended
  • Knowledge of graph and dynamic programming algorithms
  • Experience with C++, Java or Python programming languages

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  Read CSE101 or online materials on graph and dynamic programming algorithms.

Link to Past Course: http://proteomics.ucsd.edu/spring21/cse291/

CSE 291 (D00) - Machine Learning for Robotics with Prof. Hao Su

Description: The first part of the course will cover the basic concepts and classical methods of planning and control in the traditional robotics pipeline. The second part of the course will introduce deep reinforcement learning and learning-based robotics methods. The course is project-based and we will run course projects in an indoor environment simulator.

Required Knowledge: Machine Learning, Deep Learning, Computer Vision, Geometry, and Physics

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge: Go through CSE291-I in Winter 2021 (taught by Prof. Su).

Link to Past Course: https://robotmlcourse.github.io/SP20/index.html

CSE 291 (E00) - Physics Simulation with Prof. Steve Rotenberg

Description: This class covers a range of 3D physics simulation topics. The main emphasis will be on the dynamic simulations of elastic bodies, rigid bodies, and fluids. Additional topics will include vehicle dynamics, galactic dynamics, electromagnetics, and molecular dynamics. Physics will be the subject, but there will be a focus on the computational aspects such as data structures and algorithms. The class includes programming projects with 3D simulation and visualization.

Required Knowledge:  Basic 3D graphics experience (such as CSE167) and working knowledge of OpenGL or similar. Also, knowledge of Newtonian physics is required.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  Familiarity with OpenGL, such as https://learnopengl.com/

Link to Past Course: https://canvas.ucsd.edu/courses/12858 (2020); https://cseweb.ucsd.edu/classes/sp19/cse291-d/ (2019)

CSE 291 (F00) - Continual Learning with Prof. Sanjoy Dasgupta

Description: This is a reading course in which students will read and present papers on continual learning. The types of topics we will cover include: online learning; domain adaptation and transfer learning; self-supervised learning; memory models in deep learning; models of teaching; metric learning; learning to reason; explanation-based learning; models of early childhood development.

Required Knowledge: Basic machine learning and statistics.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  N/A

Link to Past Course: N/A

CSE 291 (G00) - High-Dimensional Expanders with Prof. Shachar Lovett

Description: Expander graphs have been extensively studied in mathematics over the past several decades, and in that time found numerous applications to computer science, such as in the design of fast error-correcting codes and resilient networks. High-dimensional expanders is an emergent area that ties together topology, algebra, and combinatorics, and underlies a surprising range of applications in computer science, ranging from fast MCMC sampling to efficient quantum codes.

The first half of this course will cover classical topics in expander graphs, the second half recent topics in high-dimensional expanders.

Required Knowledge: The course assumes mathematical maturity. Background in linear algebra and graph theory can be useful but is not mandatory.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  Undergraduate classes in linear algebra and graph theory.

Link to Past Course: N/A

CSE 291 (H00) - Human-Centered Computing for Health with Prof. Nadir Weibel

Description: HC4H is an interdisciplinary course that brings together students from Engineering, Design, and Medicine, and exposes them to designing technology for health and healthcare. The course is focused on studying how technology is currently used in healthcare and identify opportunities for novel technologies to be developed for specific health and healthcare settings.

In the first 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 room 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.

Successful students in this class often follow up on their design projects with the actual development of an HC4H project and its deployment within the healthcare setting in the following quarters.

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: http://hc4h.ucsd.edu/

CSE 291 (I00) - Computational Photography with Prof. Ben Ochoa

Description: Computational photography overcomes the limitations of traditional photography using computational techniques from image processing, computer vision, and computer graphics. This course provides a comprehensive introduction to computational photography and the practical techniques used to overcome traditional photography limitations (e.g., image resolution, dynamic range, and defocus and motion blur) and those used to produce images (and more) that are not possible with traditional photography (e.g., computational illumination and novel optical elements such as those used in light-field cameras). Upon completion of this course, students will have an understanding of both traditional and computational photography.

Required Knowledge: Linear algebra, calculus, and optimization. MATLAB, Python, or other programming experience.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  Undergraduate courses and textbooks on image processing, computer vision, and computer graphics, and their prerequisites.

Link to Past Course: https://cseweb.ucsd.edu/classes/sp20/cse291-f/

CSE 291 (J00) - Double Feature: Trustworthy Browsers // Secure Compilation using WebAssembly with Prof. Deian Stefan

Description: This a double feature graduate course on trustworthy browsers and WebAssembly.  The underlying theme between the two features is to build secure Web systems using techniques from programming languages, compilers, and verification.  This is a research-oriented course: We will read (sometimes hot-off-the press) research papers and work on a large research project spanning one or both of the features.

Feature 1: Trustworthy Browsers

This feature will cover the design and implementation of modern browsers security architectures. The feature will explore modern attack techniques on browsers and study different techniques for addressing these classes of attack.  Students will carry out attacks on browsers (e.g., by exploiting JIT compiler bugs) and build systems (e.g., sandboxing, bugfinding, static analyses, and verification tools) to harden real world browsers.

Feature 2: Secure Compilation using WebAssembly

This feature explores the use of secure compilations---a discipline that spans programming languages, compiler design, verification, and hardware---to build secure systems, and to rigorously specify and reason about security of these systems.  The feature will expose students to both formal approaches to secure compilations---covering different attacker models, security criteria, and proof techniques---and practical secure compiler design.

Required Knowledge: 1. Background in two of: Security, Compilers, Programming Languages, or Architecture. 2. You must be able to figure out how to compile Firefox on your own.

Enforced Prerequisite: None.

Recommended Preparation for Those Without Required Knowledge:  N/A

Link to Past Course: N/A

Graduates

  • Graduate Admissions
  • Graduate Programs
  • Courses and Enrollment Information
  • Advising
  • Financial Opportunities
  • Graduate Student Life
  • Graduating PhDs
  • DeepMind Fellowships

Information

  • Prospective Students
  • Career Connections
  • Alumni
  • Health & Safety

Emergency Action Plan

Quicklinks

  • CSE Colloquium/DLS
  • Faculty Recruitment
  • CSE Diversity, Equity & Inclusion

CSE Brochure

Stay Connected

Dept of Computer Science and Engineering
University of California, San Diego
9500 Gilman Drive
La Jolla, CA 92093-0404  U.S.A.

Social Media

Copyright © Regents of the University of California. All rights reserved.
Login