
Current Courses
Spring 2025
You can toggle for Graduate or Undergraduate or search by course number.
Courses & Curriculum Related Resources
Current Semester Courses |Summer 2025 Courses | Fall 2025 Courses | Doctoral Breadth Courses
Schedule of Classes | Undergraduate Curriculum Requirements | Undergraduate Catalog
MSCS Handbook | Fifth Year Master's Handbook | Ph.D. Handbook | Student Resources
Instructor(s)
Dan DeBlasio
Seyed Hosein Mohimani
Click to read more...
Instructor(s)
David Woodruff
Daniel Anderson
Click to read more...
Instructor(s)
Stephanie Balzer
Click to read more...
Instructor(s)
Marijn Heule
Click to read more...
Instructor(s)
Mary Ellen Stebbins
Garth Zeglin
Click to read more...
Instructor(s)
Nancy Pollard
Click to read more...
Instructor(s)
Ioannis Gkioulekas
Click to read more...
Instructor(s)
Tai-Sing Lee
Click to read more...
Instructor(s)
Ruben Martins
Dave Eckhardt
Click to read more...
Instructor(s)
Dave Eckhardt
Ruben Martins
Click to read more...
Instructor(s)
David Touretzky
Click to read more...
Instructor(s)
Ruben Martins
Dave Eckhardt
Click to read more...
Computing in the cloud has emerged as a leading paradigm for cost-effective, scalable, well-managed computing. Users pay for services provided in a broadly shared, power efficient datacenter, enabling dynamic computing needs to be met without paying for more than is needed. Actual machines may be virtualized into machine-like services, or more abstract programming platforms, or application-specific services, with the cloud computing infrastructure managing sharing, scheduling, reliability, availability, elasticity, privacy, provisioning and geographic replication This course will survey the aspects of cloud computing by reading about 30 papers and articles, executing cloud computing tasks on a state of the art cloud computing service, and implementing a change or feature in a state of the art cloud computing framework. There will be no final exam, but there will be two in class exams. Grades will be about 50 project work and about 50 examination results.
Instructor(s)
Majd Sakr
Gregory Ganger
Click to read more...
Doctoral Breadth: Software Systems - (-)
This course attempts to provide a deep understanding of the issues and challenges involved in designing and implementing modern computer systems. Our primary goal is to help students become more skilled in their use of computer systems, including the development of applications and system software. Users can benefit greatly from understanding how computer systems work, including their strengths and weaknesses. This is particularly true in developing applications where performance is an issue.
Instructor(s)
Dimitrios Skarlatos
Click to read more...
Doctoral Breadth: Computer Systems - (*)
Click to read more...
Instructor(s)
Minchen Li
Click to read more...
This course focuses on three-dimensional geometry processing, while simultaneously providing a first course in traditional differential geometry. Our main goal is to show how fundamental geometric concepts (like curvature) can be understood from complementary computational and mathematical points of view. This dual perspective enriches understanding on both sides, and leads to the development of practical algorithms for working with real-world geometric data. Along the way we will revisit important ideas from calculus and linear algebra, putting a strong emphasis on intuitive, visual understanding that complements the more traditional formal, algebraic treatment. The course provides essential mathematical background as well as a large array of real-world examples and applications. It also provides a short survey of recent developments in digital geometry processing and discrete differential geometry. Topics include: curves and surfaces, curvature, connections and parallel transport, exterior algebra, exterior calculus, Stokes' theorem, simplicial homology, de Rham cohomology, Helmholtz-Hodge decomposition, conformal mapping, finite element methods, and numerical linear algebra.Applications include: approximation of curvature, curve and surface smoothing, surface parameterization, vector field design, and computation of geodesic distance.
Instructor(s)
Keenan Crane
Click to read more...
This course provides a broad perspective on AI, covering (i) classical approaches of search and planning useful for robotics, (ii) integer programming and continuous optimization that form the bedrock for many AI algorithms, (iii) modern machine learning techniques including deep learning that power many recent AI applications, (iv) game theory and multi-agent systems, and (v) issues of bias and unfairness in AI. In addition to understanding the theoretical foundations, we will also study modern algorithms in the research literature.
Instructor(s)
Aditi Raghunathan
Click to read more...
Doctoral Breadth: Artificial Intelligence - (*)
In AI and beyond, systems of multiple agents are naturally modeled using game theory. From game theory, we know that sometimes, when each agent pursues its own objectives, the outcome may be one that is bad for all agents (e.g., the Prisoner's Dilemma). Learning algorithms can indeed converge to such bad equilibria. What can be done to prevent such bad outcomes, and how should we think about designing agents in such contexts? In this course, we will approach this question from a variety of angles, ranging from traditional approaches in game theory to novel ones that fit AI better than humans.
Instructor(s)
Vincent Conitzer
Click to read more...
Instructor(s)
Dimitrios Skarlatos
Wenting Zheng
Click to read more...
Instructor(s)
Andrew Pavlo
Click to read more...
Instructor(s)
Frank Pfenning
Click to read more...
With the growing number of massive datasets in applications such as machine learning and numerical linear algebra, classical algorithms for processing such datasets are often no longer feasible. In this course we will cover algorithmic techniques, models, and lower bounds for handling such data. A common theme is the use of randomized methods, such as sketching and sampling, to provide dimensionality reduction. In the context of optimization problems, this leads to faster algorithms, and we will see examples of this in the form of least squares regression and low rank approximation of matrices and tensors, as well as robust variants of these problems. In the context of distributed algorithms, dimensionality reduction leads to communication-efficient protocols, while in the context of data stream algorithms, it leads to memory-efficient algorithms. We will study some of the above problems in such models, such as low rank approximation, but also consider a variety of classical streaming problems such as counting distinct elements, finding frequent items, and estimating norms. Finally we will study lower bound methods in these models showing that many of the algorithms we covered are optimal or near-optimal. Such methods are often based on communication complexity and information-theoretic arguments.
Instructor(s)
David Woodruff
Click to read more...
Doctoral Breadth: Algorithms and Complexity - (*)
Instructor(s)
Aayush Jain
Click to read more...
Instructor(s)
James McCann
Click to read more...
Instructor(s)
Ioannis Gkioulekas
Click to read more...