## Real-world problems

We will take applications such as climate change and show how you can participate in the big open source community looking to find solutions to challenging problems with exposure to github and parallel computing.

**MIT students:** Sign up for the Fall 2024 edition of this class!

Register for ** 18C25**,

`6C25`

Counts for course 6 and course 18 majors, etc.

This class uses revolutionary programmable interactivity to combine material from three fields creating an engaging, efficient learning solution to prepare students to be sophisticated and intuitive thinkers, programmers, and solution providers for the modern interconnected online world.

Upon completion, students are well trained to be scientific “trilinguals”, seeing and experimenting with mathematics interactively as math is meant to be seen, and ready to participate and contribute to open source development of large projects and ecosystems.

We will take applications such as climate change and show how you can participate in the big open source community looking to find solutions to challenging problems with exposure to github and parallel computing.

You will learn mathematical ideas by immersion into the mathematical process, performing experiments, seeing the connections, and seeing just how much fun math can be.

Our course material is built using real code, and instead of a book, we have a series of interactive *notebooks*. **On our website, you can play with sliders, buttons and images to interact with our simulations.** You can even go further, and modify and run any code on our website!

In literature it’s not enough to just know the technicalities of grammar. In music it’s not enough to learn the scales. The goal is to communicate experiences and emotions. For a computer scientist, it’s not enough to write a working program, the program should be **written with beautiful high level abstractions that speak to your audience**. This class will show you how.

We believe many classes cover what we call the vertices — specific topics in computer science, math, or an application.
A student is left to figure out the edges, meaning the intellectual connections between the topics on their own as they mature.
Some classes have you learn a math topic and you can then for homework implement an algorithm or application. The goal
for this class, is to accelerate the process by which a student can participate in the exciting world of software development
be it the big open source universe or privately, by seeing how math with CS abstractions can allow for applications that can
be part of a big huge ecosystem rather than a one-off homework.

… and have more fun in the process!

- visualization
- structure, abstraction
- type systems
- multiple dispatch
- dynamic dispatch
- two-language problem
- expression problem
- functional programming
- arrays
- matrices
- dataframes
- git, github
- version control
- collaboration
- devops
- language design
- constraint solvers
- mathematical programming solvers
- heuristics
- DSLs

- matrices
- stencils
- univariate/multivariate functions
- vector calculus
- matrix calculus
- sequence convergence
- principal component analysis
- dimensionality reduction
- matrix rank
- projections, rotations
- eigenvalues
- singular value decomposition
- outliers, noise
- data bulk, data center
- statistics
- correlation
- random sampling
- probability density function
- monte carlo methods
- random walks
- continuous limit
- ordinary differential equations
- curve fitting
- partial differential equations
- finite differences
- discretization
- bifurcations
- hysteresis
- optimization
- gradient descent
- global optimization
- constrained optimization
- nonlinear optimization
- inverse modeling

- social science
- epidemic modelling
- agent based modelling
- climate economics
- climate science
- weather forecasting
- ocean/atmosphere models
- optimisation
- path finding
- image data
- image filtering
- seam carving
- data analysis
- model fitting
- random data

See also the course repository github.com/mitmath/computational-thinking.

**Lecturers:** Alan Edelman, David P. Sanders, Charles E. Leiserson

**Technical lead:** Fons van der Plas

**Assistants:** Bola Malek, Logan Kilpatrick

**Guest lecturers:** Henri F. Drake, Fons van der Plas, *more to be announced*

There is a MIT Computational Thinking t-shirt available for those who really enjoyed the course, you can find it on the Julia Language's Bonfire Shop.

If you use or are inspired by any material, would you be so kind to prominently display

Some material on this website is based on:. (computationalthinking.mit.edu)Computational Thinking, a live online Julia/Pluto textbook