| Term | Fall 2025 | Instructor | Christopher De Sa | 
| Course website | www.cs.cornell.edu/courses/cs4787/2025fa/ | cmd353@cornell.edu | |
| Schedule | MW 7:30–8:45PM | Office hours | Wednesdays 2–3PM | 
| Room | Kimball B11 | Office | Gates 426 | 
[Canvas] [Discussion]
Description: CS4787 explores the principles behind scalable machine learning systems. The course will cover the algorithmic and the implementation principles that power the current generation of machine learning on big data. We will cover training and inference for both traditional ML algorithms such as linear and logistic regression, as well as deep models such as transformers. Topics will include: estimating statistics of data quickly with subsampling, stochastic gradient descent and other scalable optimization methods, mini-batch training, accelerated methods, adaptive learning rates, methods for scalable deep learning, hyperparameter optimization, parallel and distributed training, quantization and model compression, and efficient inference.
Prerequisites: CS3780 or equivalent, CS 2110 or equivalent
Format: Lectures during the scheduled lecture period will cover the course content. Problem sets will be used to encourage familiarity with the content and develop competence with the more mathematical aspects of the course. Programming assignments will help build intuition and familiarity with how machine learning algorithms run. There will be one midterm exam and one final exam, each of which will test both theoretical knowledge and programmming implementation of concepts.
Material: The course is based on books, papers, and other texts in machine learning, scalable optimization, and systems. Texts will be provided ahead of time on the website on a per-lecture basis. You aren't expected to necessarily read the texts, but they will provide useful background for the material we are discussing.
Grading: Students taking CS4787 will be evaluated on the following basis.
| 15% | Problem sets | 
| 35% | Programming assignments | 
| 20% | Prelim Exam | 
| 30% | Final Exam | 
CS5777 has an additional paper-reading component, and students taking CS5777 will be evaluated as follows.
| 10% | Problem sets | 
| 30% | Programming assignments | 
| 10% | Paper reading | 
| 20% | Prelim Exam | 
| 30% | Final Exam | 
Inclusiveness: You should expect and demand to be treated by your classmates and the course staff with respect. You belong here, and we are here to help you learn—and enjoy—this course. If any incident occurs that challenges this commitment to a supportive and inclusive environment, please let the instructor know so that we can address the issue. We are personally committed to this, and subscribe to the Computer Science Department's Values of Inclusion.
AI Use Policy: It is an academic integrity violation to represent the output of a generative AI tool as your own work. You may not submit any work produced by generative AI as part of the solution of problem sets, programming assignments, or paper reading assignments. It is an academic integrity violation to use any sort of generative AI to assist you during an exam.
Beyond this, you may use AI as you like to assist your own learning in the course, including by asking the AI about course content, asking it to document functions, asking it for the name of a function that does something, asking it to explain an error message, etc.
Course calendar may be subject to change.
| Monday, August 25 Aug 24Aug 25Aug 26Aug 27Aug 28Aug 29Aug 30 | 
            Monday, August 25
           
            Lecture 1. Introduction and course overview. [Notes PDF]
           
            Problem Set 1 Released. [Notebook] [HTML]
           | 
| Wednesday, August 27 Aug 24Aug 25Aug 26Aug 27Aug 28Aug 29Aug 30 | 
            Wednesday, August 27
           
            Lecture 2. Linear algebra done efficiently: Mapping mathematics to numpy. ML via efficient kernels linked together in python. [Notebook] [HTML]
           
            Background reading material:
             
 | 
| Monday, September 1 Aug 31Sep 1Sep 2Sep 3Sep 4Sep 5Sep 6 | 
            Monday, September 1
           
            Labor Day. No Lecture.
           | 
| Wednesday, September 3 Aug 31Sep 1Sep 2Sep 3Sep 4Sep 5Sep 6 | 
            Wednesday, September 3
           
            Lecture 3. Software for learning with gradients. Numerical differentiation, symbolic differentiation, and automatic differentiation. Efficient gradients with backpropagation. [Notebook] [HTML]
           
            Background reading material:
             
 
            Programming Assignment 1 Released. [Instructions] [Starter Code]
           | 
| Monday, September 8 Sep 7Sep 8Sep 9Sep 10Sep 11Sep 12Sep 13 | 
            Monday, September 8
           
            Background reading material:
             
 
            Problem Set 1 Due.
           | 
| Wednesday, September 10 Sep 7Sep 8Sep 9Sep 10Sep 11Sep 12Sep 13 | 
            Wednesday, September 10
           
            Lecture 5. Scaling to complex models by learning with optimization algorithms. Learning in the underparameterized regime. Gradient descent, convex optimization and conditioning. Stochastic gradient descent. [Notebook] [HTML]
           
            Background reading material:
             
 
            Problem Set 2 Released. [PDF]
           | 
| Monday, September 15 Sep 14Sep 15Sep 16Sep 17Sep 18Sep 19Sep 20 | 
            Monday, September 15
           
            Lecture 6. Adapting algorithms to hardware. Minibatching and the effect of the learning rate. Our first hyperparameters. [Notebook] [HTML]
           
            Background reading material:
             
 | 
| Wednesday, September 17 Sep 14Sep 15Sep 16Sep 17Sep 18Sep 19Sep 20 | 
            Wednesday, September 17
           
            Lecture 7. Optimization techniques for efficient ML. Accelerating SGD with momentum. [Notebook] [HTML]
           
            Background reading material:
             
 | 
| Thursday, September 18 Sep 14Sep 15Sep 16Sep 17Sep 18Sep 19Sep 20 | 
            Thursday, September 18
           
            Programming Assignment 1 Due.
           | 
| Monday, September 22 Sep 21Sep 22Sep 23Sep 24Sep 25Sep 26Sep 27 | 
            Monday, September 22
           
            Lecture 8. Optimization techniques for efficient ML, continued. Accelerating SGD with preconditioning and adaptive learning rates. [Notebook] [HTML]
           
            Background reading material:
             
 | 
| Wednesday, September 24 Sep 21Sep 22Sep 23Sep 24Sep 25Sep 26Sep 27 | 
            Wednesday, September 24
           
            Background reading material:
             
 
            Problem Set 2 Due.
           
            Problem Set 3 Released. [PDF]
           | 
| Monday, September 29 Sep 28Sep 29Sep 30Oct 1Oct 2Oct 3Oct 4 | 
            Monday, September 29
           
            Lecture 10. Deep neural networks review. The overparameterized regime and how it affects optimization. Matrix multiply as computational core of learning. [Notebook] [HTML]
           
            Background reading material:
             
 
            Paper Reading 1 Released. [Instructions]
           | 
| Wednesday, October 1 Sep 28Sep 29Sep 30Oct 1Oct 2Oct 3Oct 4 | 
            Wednesday, October 1
           
            Lecture 11. Deep neural networks review continued. Transformers and sequence models. [Notebook] [HTML]
           
            Background reading material:
             
 | 
| Monday, October 6 Oct 5Oct 6Oct 7Oct 8Oct 9Oct 10Oct 11 | 
            Monday, October 6
           
            Lecture 12. Hyperparameter Optimization. Grid search. Random search. Manual hyperparameter tuning. [Notebook] [HTML]
           
            Background reading material:
             
 
            Programming Assignment 2 Released. [Instructions] [Starter Code]
           | 
| Wednesday, October 8 Oct 5Oct 6Oct 7Oct 8Oct 9Oct 10Oct 11 | 
            Wednesday, October 8
           
            Background reading material:
             
 
            Problem Set 3 Due.
           | 
| Monday, October 13 Oct 12Oct 13Oct 14Oct 15Oct 16Oct 17Oct 18 | 
            Monday, October 13
           
            Indigenous Peoples' Day. No Lecture.
           | 
| Wednesday, October 15 Oct 12Oct 13Oct 14Oct 15Oct 16Oct 17Oct 18 | 
            Wednesday, October 15
           
            Lecture 14. Prelim review & Ways to make deep learning fast. [Jeopardy]
           
            Paper Reading 1 Due.
           | 
| Thursday, October 16 Oct 12Oct 13Oct 14Oct 15Oct 16Oct 17Oct 18 | 
            Thursday, October 16
           
            Prelim Exam. 7:30PM, BKL200.
           | 
| Monday, October 20 Oct 19Oct 20Oct 21Oct 22Oct 23Oct 24Oct 25 | 
            Monday, October 20
           
            Background reading material:
             
 
            Programming Assignment 2 Due.
           
            Problem Set 4 Released. [PDF]
           | 
| Wednesday, October 22 Oct 19Oct 20Oct 21Oct 22Oct 23Oct 24Oct 25 | 
            Wednesday, October 22
           
            Paper Reading 2 Released. [Instructions]
           | 
| Monday, October 27 Oct 26Oct 27Oct 28Oct 29Oct 30Oct 31Nov 1 | 
            Monday, October 27
           
            Lecture 17. Floating-point arithmetic. Quantized, low-precision machine learning. [Notes PDF]
           
            Background reading material:
             
 | 
| Wednesday, October 29 Oct 26Oct 27Oct 28Oct 29Oct 30Oct 31Nov 1 | 
            Wednesday, October 29
           
            Lecture 18. Parallelism on the GPU: Kernels and Warps. [Notes PDF]
           
            Programming Assignment 3 Released. [Instructions] [Starter Code]
           | 
| Monday, November 3 Nov 2Nov 3Nov 4Nov 5Nov 6Nov 7Nov 8 | 
            Monday, November 3
           
            Lecture 19. Parallelism on the GPU 2: CUDA and TensorCores and NVLink.
           
            Problem Set 4 Due.
           | 
| Wednesday, November 5 Nov 2Nov 3Nov 4Nov 5Nov 6Nov 7Nov 8 | 
            Wednesday, November 5
           
            Lecture 20. Distributed learning and the parameter server.
           
            Background reading material:
             
 
            Paper Reading 2 Due.
           | 
| Monday, November 10 Nov 9Nov 10Nov 11Nov 12Nov 13Nov 14Nov 15 | 
            Monday, November 10
           
            Lecture 21. Machine learning on hardware beyond GPUs. ML Accelerators.
           
            Background reading material:
             
 | 
| Wednesday, November 12 Nov 9Nov 10Nov 11Nov 12Nov 13Nov 14Nov 15 | 
            Wednesday, November 12
           
            Lecture 22. Topic TBD
           
            Programming Assignment 3 Due.
           | 
| Monday, November 17 Nov 16Nov 17Nov 18Nov 19Nov 20Nov 21Nov 22 | 
            Monday, November 17
           
            Lecture 23. Topic TBD
           | 
| Wednesday, November 19 Nov 16Nov 17Nov 18Nov 19Nov 20Nov 21Nov 22 | 
            Wednesday, November 19
           
            Lecture 24. Topic TBD
           | 
| Monday, November 24 Nov 23Nov 24Nov 25Nov 26Nov 27Nov 28Nov 29 | 
            Monday, November 24
           
            Lecture 25. Topic TBD
           | 
| Wednesday, November 26 Nov 23Nov 24Nov 25Nov 26Nov 27Nov 28Nov 29 | 
            Wednesday, November 26
           
            Thanksgiving Break. No Lecture.
           | 
| Monday, December 1 Nov 30Dec 1Dec 2Dec 3Dec 4Dec 5Dec 6 | 
            Monday, December 1
           
            Lecture 26. Topic TBD
           | 
| Wednesday, December 3 Nov 30Dec 1Dec 2Dec 3Dec 4Dec 5Dec 6 | 
            Wednesday, December 3
           
            Lecture 27. Topic TBD
           | 
| Monday, December 8 Dec 7Dec 8Dec 9Dec 10Dec 11Dec 12Dec 13 | 
            Monday, December 8
           
            Lecture 28. Topic TBD
           |