Topics in Programming Languages, Compilers & Software Engineering
Differentiable Programming
Spring 2026
A graduate topics course in programming languages, compilers, and software engineering. This section covers differentiable programming — treating programs as differentiable objects so that gradient-based optimization can be applied end-to-end, bridging classical software with modern deep learning.
Seminar in Computer Science & Engineering
Disentangled Learning
Spring 2026
A graduate seminar on current research in computer science and engineering. This section focuses on disentangled representation learning, methods for learning latent representations whose individual dimensions capture distinct, interpretable factors of variation in data.
Advanced Computer Vision
Spring 2026
Advanced concepts in computer vision, including 3-D reconstruction, face recognition, object detection, semantic segmentation, action recognition, and domain adaptation. Consistent with recent developments, deep learning forms a significant fraction of the class, with lectures and assignments covering recent work on fundamental problems in the field.
Computer Vision II
Winter 2026
Focused coverage of multiview geometry, structure from motion, image segmentation, motion segmentation, texture analysis and recognition, object detection, and image-based rendering.
Unsupervised Learning
Winter 2026
A broad view of unsupervised learning. Topics include descriptive statistics; clustering; projection, singular value decomposition, and spectral embedding; geometry of high-dimensional spaces; common probability distributions; density estimation; graphical models and latent variable modeling; sparse coding and dictionary learning; shallow and deep autoencoders; and self-supervised learning.
Operating Systems Principles
Winter 2026
Core operating systems concepts, including processes, synchronization, scheduling, memory management, virtual memory, file systems, and protection.
Computer Vision I
Fall 2025
Comprehensive introduction to computer vision, providing broad coverage including low-level vision (image formation, photometry, color, image feature detection), inferring 3-D properties from images (shape-from-shading, stereo vision, motion interpretation), and object recognition.
Probabilistic Reasoning and Learning
Fall 2025
Methods based on probability theory for reasoning and learning under uncertainty. Content includes directed and undirected probabilistic graphical models, exact and approximate inference, latent variables, expectation-maximization, hidden Markov models, Markov decision processes, and applications to vision, robotics, speech, and text.
Programming Languages: Principles and Paradigms
Spring 2025
Introduction to programming languages and paradigms, the components that comprise them, and the principles of language design, all through the analysis and comparison of a variety of languages. Involves programming in most of the languages studied.
Topics in Data Science
Network Science & Graph Theory
Winter 2025
An advanced topics course in data science. This section covers network science and graph theory — modeling complex systems as graphs and analyzing their structure, connectivity, centrality, and dynamics, with applications to real-world networks.
Vector Calculus
Winter 2025
Change of variables in multiple integrals, Jacobians, line integrals, Green's theorem. Vector fields, gradient fields, divergence, curl. Spherical and cylindrical coordinates. Taylor series in several variables. Surface integrals, Stokes' theorem, Gauss' theorem, and conservative fields.
Systems for Scalable Analytics
Fall 2024
Principles of computing systems and infrastructure for scaling analytics to large datasets. Topics include the memory hierarchy, distributed systems, model selection, heterogeneous datasets, and deployment at scale, along with the design of systems such as MapReduce/Hadoop and Spark.
Introduction to Stochastic Processes I
Spring 2024
Random vectors, multivariate densities, covariance matrices, and the multivariate normal distribution. Random walks and the Poisson process, with additional topics as time permits.
Data Science in Practice
Spring 2024
Data science as a multidisciplinary field spanning computer science, statistics, cognitive science, data visualization, and machine learning. Teaches the critical skills needed to pursue a data science career through hands-on programming and experimental challenges.
Exploratory Data Analysis and Inference
Winter 2024
Quantitative methods and statistical techniques for analyzing data, especially big data. Reviews probability and then covers processing, analyzing, and visualizing data in R, with topics including inference, sampling, hypothesis testing, bootstrap methods, regression, and diagnostics.
Introduction to Probability
Winter 2024
Probability spaces, random variables, independence, conditional probability, distributions, expectation, variance, joint distributions, and the central limit theorem.
Introduction to Deep Learning and Applications
Winter 2024
Fundamentals of deep learning, including deep neural network architectures (e.g., ConvNets, RNNs) and the optimization algorithms used to train them, with hands-on implementation in PyTorch. Introduces deep learning applications in computer vision, robotics, and natural language processing.
Optimization Methods for Data Science I
Fall 2023
Introduction to convexity: convex sets and functions, the geometry of hyperplanes, and support functions for convex sets, connecting hyperplanes to support vector machines. Linear and quadratic programming, including optimality conditions, duality, primal and dual forms of linear SVMs, active-set methods, and interior methods.
Introduction to Data Management
Fall 2023
Introduction to the storage and management of large-scale data using classical relational (SQL) systems, with an eye toward data science applications. Covers the SQL data model and query language, relational data modeling and schema design, cost-based query optimization, relational database architecture, and database-backed applications.
Recommender Systems and Web Mining
Fall 2023
Current methods for data mining and predictive analytics, with emphasis on studying real-world datasets, building working systems, and putting ideas from machine learning research into practice.
Machine Learning: Learning Algorithms
Fall 2023
Broad introduction to machine learning. Covers supervised methods such as k-nearest-neighbor classifiers, decision trees, boosting, and perceptrons, and unsupervised methods such as k-means and hierarchical clustering. Beyond the algorithms themselves, the course focuses on the principles behind them.
Modern Algebra II
Spring 2023
Second course in a two-quarter introduction to abstract algebra, emphasizing rings and fields. Topics include definitions and basic properties of rings, fields, and ideals; homomorphisms; and irreducibility of polynomials.
The Practice and Application of Data Science
Spring 2023
Bridges lower- and upper-division data science courses as well as methods courses in other fields. Students master the data science life cycle and learn fundamental principles and techniques spanning algorithms, statistics, machine learning, visualization, and data systems.
Introduction to Artificial Intelligence: Search and Reasoning
Spring 2023
Important ideas and algorithms in search and reasoning, and how they are used in practical AI applications. Topics include A* search, adversarial search, Monte Carlo tree search, reinforcement learning, constraint solving and optimization, and propositional and first-order reasoning.
Discrete Mathematics and Graph Theory
Winter 2023
Basic concepts in graph theory, including trees, walks, paths and connectivity, cycles, matching theory, vertex and edge coloring, planar graphs, flows, and combinatorial algorithms — covering Hall's theorems, the max-flow min-cut theorem, Euler's formula, and the traveling salesman problem.
Modern Algebra I
Winter 2023
First course in a two-quarter introduction to abstract algebra, emphasizing group theory. Topics include the definitions and basic properties of groups, properties of isomorphisms, and subgroups.
Theory of Computability
Winter 2023
Introduction to the mathematical theory of computability. Formal languages, finite automata and regular expressions, push-down automata and context-free languages, computable (recursive) functions, Turing machines, the halting problem, and undecidability.
Design and Analysis of Algorithms
Winter 2023
Design and analysis of efficient algorithms, with emphasis on nonnumerical algorithms such as sorting, searching, pattern matching, and graph and network algorithms. Measuring the complexity of algorithms in time and storage, and NP-complete problems.
Statistical Methods
Fall 2022
Introduction to probability with discrete and continuous random variables — binomial, Poisson, and Gaussian distributions — and the central limit theorem. Data analysis and inferential statistics: graphical techniques, confidence intervals, hypothesis tests, and curve fitting.
Mathematical Reasoning
Fall 2022
Uses a variety of topics in mathematics to introduce rigorous mathematical proof, emphasizing quantifiers, induction, negation, proof by contradiction, naive set theory, equivalence relations, and epsilon-delta proofs.
Theoretical Foundations of Data Science I
Fall 2022
Exposes students to the mathematical theory underlying fundamental topics in machine learning, including empirical risk minimization, optimization, regression, classification, and discrete probability.
Advanced Data Structures
Fall 2022
High-performance data structures and supporting algorithms. Use and implementation of structures such as (un)balanced trees, graphs, priority queues, and hash tables, along with memory management, pointers, and recursion. Theoretical and practical performance analysis, both average-case and amortized, using C++ and the STL.
Linear Algebra
Spring 2022
Matrix algebra, Gaussian elimination, and determinants. Linear and affine subspaces and bases of Euclidean spaces. Eigenvalues and eigenvectors, quadratic forms, orthogonal matrices, and diagonalization of symmetric matrices, with applications and computation in MATLAB.
Computer Organization and Systems Programming
Spring 2022
Introduction to the organization of modern digital computers. Students write programs in assembly, design basic processors capable of executing them, and build the basic components of processors using digital logic. Topics include assembly programming, combinational and sequential logic, processor performance and design, and the memory hierarchy.
Mathematics for Algorithms and Systems
Spring 2022
Mathematical concepts used to model and analyze algorithms and computer systems. Topics include counting techniques (inclusion-exclusion, recursive counting, permutations and combinations), data representations, analysis of algorithms (order notation, time complexity, loop invariants), recurrence relations, graphs and trees, and basic probability and its applications.
Discrete Mathematics
Winter 2022
Introduces the ways logic is used in computer science: for reasoning, as a language for specifications, and as operations in computation. Concepts include sets, relations, functions, equivalence relations, partial orders, number systems, and proof methods (especially induction and recursion). Propositional and predicate logic are applied to domains such as circuit design, databases, cryptography, and program correctness.
Software Tools and Techniques Laboratory
Winter 2022
Hands-on exploration of software development tools and techniques, and investigation of the scientific process as applied to software development and debugging. Emphasis on weekly hands-on laboratory experiences and laboratory-notebooking techniques applied to software design.
Basic Data Structures and Object-Oriented Design
Winter 2022
Use and implementation of basic data structures including linked lists, stacks, and queues, plus advanced structures such as binary trees and hash tables. Object-oriented design including interfaces, polymorphism, encapsulation, abstract data types, pre-/post-conditions, and recursion, using Java and the Java Collections framework.
Calculus and Analytic Geometry for Science and Engineering
Fall 2021
Vector geometry, vector functions and their derivatives. Partial differentiation, maxima and minima, and double integration.
Accelerated Introduction to Programming
Fall 2021
Accelerated introductory programming with an object-oriented approach. Covers variables, conditionals, loops, functions/methods, structured data storage, and mutation, along with the Java language, class design, interfaces, basic class hierarchies, recursion, event-based programming, and file I/O, plus basics of command-line navigation.
No courses in this category.