MIT's numbering scheme gone nuts: (1.C25/6.C25/12.C25/16.C25/18.C25/22.C25)
This course is part of the Common Ground.
Lectures: Tuesdays & Thursdays 1-2:30 PM in room 2-142
Prerequisites: 6.100A, 18.03, 18.06 or equivalents (meaning some programming, dif eqs, and lin alg)
Instructors: A. Edelman, R. Ferrari, Y. Marzouk, P. Persson (UCB), S. Silvestri, J. Urschel, J. Williams
Teaching Assistants:
Office Hours: TBD
Grading: Homeworks that may be spaced one or two weeks, to be submitted on canvas. No exams.
Lecture Recordings: Available on Canvas under the Panopto Video tab. Should be published the evening after each lecture.
Links: Worth bookmarking.
Piazza | Canvas | Julia | JuliaHub |
---|---|---|---|
Discussion | HW submission | Language | GPUs |
Focuses on algorithms and techniques for writing and using modern technical software in a job, lab, or research group environment that may consist of interdisciplinary teams, where performance may be critical, and where the software needs to be flexible and adaptable. Topics include automatic differentiation, matrix calculus, scientific machine learning, parallel and GPU computing, and performance optimization with introductory applications to climate science, economics, agent-based modeling, and other areas. Labs and projects focus on performant, readable, composable algorithms and software. Programming will be in Julia. Expects students have some familiarity with Python, Matlab, or R. No Julia experience necessary.
Counts as an elective for CEE students, an advanced subject (18.100 and higher) for Math students, an advanced elective for EECS students, and a computation restricted elective for NSE students. AeroAstro students can petition department to count this class as a professional subject in the computing area. (Professors may be open to petitioning for counting for other programs.)
Class is appropriate for those who enjoy math and wish to see math being used in modern contexts.
While not exactly the same as our past Computational Thinking Class... not entirely different either.
Homework | Assigned | Due | Topic | Solution |
---|---|---|---|---|
HW0 | Sep 8 | Sep 15 | Getting Started | HW0 sol |
HW1a, HW1b | Sep 15 | Sep 22 | Pokémon + Matrix calculus | HW1a sol |
HW2 | Sep 24 | Oct 1 | Automatic differentiation | HW2 sol |
HW3 | Sep 29 | Oct 7 | Mesh generation | HW3 sol |
HW4 | Oct 15 | Oct 22 | Callable structs & climate ODEs | HW4 sol |
HW5 | Oct 27 | Nov 3 | Matrix representations & atmospheric temperatures | HW5 sol |
HW6 | Nov 5 | Nov 10 | Parallel computing & n-body problem | HW6 sol |
Challenge | Nov 15 | Dec 9 | Google Street View car routing |
Each student gets to turn in one homework late without justification. Further late turn ins must be justified. Remember: just because the automated tests succeed doesn't mean your code is 100% correct. It is a necessary, but not sufficient condition.
Homework solutions will be put online after each deadline.
# | Day | Date | Lecturer | Topic | Slides / Notes | Notebooks |
---|---|---|---|---|---|---|
0 | TAs | Julia tutorial | Cheat Sheets | Intro to Julia, Tutorial | ||
1 | R | 9/8 | Edelman | Intro to Julia | Hyperbolic Corgi, Images, Abstraction, | |
2 | T | 9/13 | Edelman | Matrix Calculus | Matrix Calc 1 | Matrix Jacobians, Finite Differences |
3 | R | 9/15 | Edelman | Matrix Calculus | Matrix Calc 2 | Linear Transformations, Symmetric Eigenproblems |
4 | T | 9/20 | Edelman | Automatic Differentiation | Scribed notes | |
5 | R | 9/22 | Edelman | Automatic Differentiation | Handwritten Notes (to be improved) | Reverse Mode AutoDiff Demo |
6 | T | 9/27 | Persson | Mesh Generation | Mesh generation | Computational Geometry |
7 | R | 9/29 | Persson | Mesh Generation | ||
8 | T | 10/4 | Ferrari | Greenhouse Effect | Greenhouse effect | |
9 | R | 10/6 | Ferrari | Equilibrium and transient climate sensitivity | Climate sensitivity | |
T | 10/11 | Student Holiday | ||||
10 | R | 10/13 | Silvestri | Climate Science | Solving the climate system | |
11 | T | 10/18 | Silvestri | Climate Science | ||
12 | R | 10/20 | Edelman | Economic Model of Climate | Economic Model, Optimization with JUMP | |
13 | T | 10/25 | Edelman | HPC and GPUs | HPC and GPU Slides | N-body with FLoops, JuliaHub demo |
14 | R | 10/27 | Edelman | HPC and GPUs | ||
15 | T | 11/1 | Edelman | Imaging and Convolutions | ||
16 | R | 11/3 | Edelman | Convolutions and PDEs | ||
17 | T | 11/8 | Williams | Handling Satellite Climate Data | Lesson plan, Problem set | |
18 | R | 11/10 | Williams | Apache Arrow in Julia for massive datastores | Lesson plan | |
19 | T | 11/15 | Dalle | Good programming practices + challenge | Good practices, Challenge | |
20 | R | 11/17 | Dalle | Performance recap + graph representations | Performance, Graphs | |
21 | T | 11/22 | Dalle | Formulating and solving linear programs | Linear programming | |
R | 11/24 | Thanksgiving | ||||
22 | T | 11/29 | Dalle | Implicit differentiation | Paper, Talk | Package |
22 bis | W | 11/30 | Dalle (UMA seminar, see Piazza) | Automatic differentiation of combinatorial layers | Paper, Talk | Package |
23 | R | 12/1 | Urschel | Computational sports mathematics | ||
24 | T | 12/6 | Urschel | Computational sports mathematics | ||
25 | R | 12/8 | Edelman | Discrete and Continuous, are they so very different? | ||
26 | T | 12/13 | Class Party? |