Office Hours are Wednesdays 4:30pm-5:30pm in 2-135.
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, G. Dalle
Teaching Assistants: Jacob Hansen ([email protected]), Nicholas Klugman ([email protected])
Office Hours: Wednesdays 4:30pm-5:30pm in 2-135
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.
- Making mathematics your playground: By the end of the course, students will be able to write interactive Julia code that aids in their understanding of new mathematical systems or concepts.
- Abstractions: By the end of the course students will be able to use the unique abstractions that exist in the Julia language to write code that can be part of a huge ecosystem. (By contrast many "one-off" homeworks in traditional courses are not able, by their very nature, to reveal the value of abstraction.)
- Open Source and group collaborations: By the end of the course students will be able to participate in a larger open source project and also will have experienced how programming language can help break down barriers between areas making real the dream of scientific bilinguals that has been promoted at MIT. (See for example former MIT President Reif in the NYT back in 2018.)
Homework | Assigned | Due | Topic | Solution |
---|---|---|---|---|
HW0 | Sep 7 | Sep 14 | Getting Started | |
HW1 | Sep 14 | Sep 21 | Automatic Differentiation | HW1 solutions |
HW2 | Sep 21 | Sep 28 | Matrix Calculus | HW2 solutions |
HW3 | Sep 28 | Oct 12 | Julia Types | HW3 solutions |
HW4 | Oct 12 | Oct 19 | Seam Carving | HW4 solutions |
HW5 | Oct 19 | Oct 26 | Performance & Parallelism | HW5 solutions |
HW6 | Oct 26 | Nov 2 | Challenge Checkin 1 | |
HW7 | Nov 2 | Nov 9 | Survey and Climate ODEs | HW7 solutions |
HW8 | Nov 9 | Nov 16 | Challenge Problem Check-In 2 | |
HW9 | Nov 16 | Nov 28 | Matrix representations & atmospheric temperatures | HW9 solutions |
HW10 | Nov 28 | Dec 5 | Challenge Problem Final Submission | |
Challenge | Oct 17 | Dec 5 | Google Streetview 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 | Julia tutorial | Cheat Sheets | ||||
1 | R | 9/7 | Edelman | Intro to Julia | Intro to Julia, Tutorial, Hyperbolic Corgi, Images, Abstraction, | |
2 | T | 9/12 | Edelman | Automatic Differentiation | autodiff handwritten notes | [AutoDiff jupyter notebook], [autodiff video] |
3 | R | 9/14 | Edelman | Automatic Differentiation | Reverse Mode AutoDiff Demo | |
4 | T | 9/19 | Edelman | Matrix Calculus | Matrix Calc 1 | Matrix Jacobians, Finite Differences |
5 | R | 9/21 | Edelman | Matrix Calculus | Matrix Calc 2 | Linear Transformations, Symmetric Eigenproblems |
6 | T | 9/26 | Edelman | Differential Equations Lec 1 | Time Stepping (background), ODEs and parameterized types (main topic), Resistors and Stencils (touched on this) | |
7 | R | 9/28 | Edelman | Differential Equations Lec 2 | ||
8 | T | 10/3 | Edelman | Imaging and Convolutions | Image Transformation notebook | |
9 | R | 10/5 | Edelman | Imaging and Convolutions 2 | Seam Carving notebook, Linear Transformations notebook | |
T | 10/10 | Student Holiday | ||||
10 | R | 10/12 | Edelman | HPC and GPUs | HPC and GPU Slides | |
11 | T | 10/17 | Dalle | Package development | Challenge, Good practices | |
12 | R | 10/19 | Dalle | Performance | Quiz | Package creation, Performance |
13 | T | 10/24 | Dalle | Graphs | Quiz | Graphs |
14 | R | 10/26 | Dalle | Linear programming | Quiz | Linear programming |
15 | T | 10/31 | Ferrari | Greenhouse Effect | ||
16 | R | 11/2 | Ferrari | Equilibrium and transient climate sensitivity | Earth's Temperature Model Mean Surface Temp Modeling | |
17 | T | 11/7 | Drake | Economic Model of Climate | Slides | Economic Model, Optimization with JUMP |
18 | R | 11/9 | Edelman | Snowball Earth & Parallel/GPU computing | Snowball Earth and hysteresis | |
19 | T | 11/14 | Persson | Mesh Generation | Mesh generation | Computational Geometry |
20 | R | 11/16 | Persson | Mesh Generation | ||
21 | T | 11/21 | Edelman | Floating-point Arithmetic | ||
R | 11/23 | Thanksgiving | ||||
22 | T | 11/28 | Klugman | Fast inverse square root | Notebook | |
23 | R | 11/30 | Silvestri | Climate Science | Solving the climate system | |
24 | T | 12/5 | Silvestri | Climate Science | ||
25 | R | 12/7 | Edelman | Discrete and Continuous, are they so very different? | ||
26 | T | 12/12 | Class Party |