
Understanding the World Through Data
Become a data explorer – learn how to leverage data and basic machine learning algorithms to understand the world.

Course Information
Learn for Free
About this Course
Speech recognition, drones, and self-driving cars – things that once seemed like pure science fiction – are now widely available technologies, and just a few examples of how humans have taught machines to analyze data and make decisions.
In this hands-on, introductory online course from the MIT Electrical Engineering & Computer Science Department, you will examine all the forms in which data exists, learn tools that uncover relationships between data, and leverage basic algorithms to understand the world from a new perspective. Whether you're a high school student or someone switching careers, all you need to get started in this course is a curiosity about machine learning and a willingness to tinker with your computer.
The course is taught by modules. Within each module, you'll have access to videos, short exercises, and a final capstone project. In Module 1, you'll begin by looking at different kinds of data. To help you explore the data, you'll dive right into programming with Python. You don't need to have any programming background, as we will guide you on how to leverage Python to explore and visualize any data.
One kind of data you'll work with is data that relates one variable to another. Coming up with a relationship between two variables—one depending on the other—is at the center of Module 2. In that module, you'll build knowledge in some core concepts before seeing your first machine learning algorithm. The goal is to use programming to create models that describe mathematical relationships between data. You'll be able to see how good the model is and use it to make predictions about new data.
In Module 3, you'll see a discussion about where imperfections in collected data might come from. You rarely have perfectly “clean” data sets, so it's important to understand how imperfections impact the model that an algorithm might come up with. To this end, we will introduce the notion of data distributions and build up to the concepts of biased and unbiased noise.
Another kind of data you'll work with is data that belongs in different groups (or classes). Creating a model that predicts what group data belongs in is at the center of Module 4. You'll work through different ways of thinking about this problem and see three different ways of approaching making such groupings (classification).
What you'll learn
- Python programming and the Colab notebook programming environment
- Dependent and independent variables
- Coming up with relationships between data using linear and polynomial regression models
- Recognizing how data is distributed
- How to observe noise in distributions and when to ignore it
- Categorize data into groups with classification models
- And more!
Prerequisites
- High school (grade 8) math
- equations of lines and polynomial curves
- finding average and standard deviation
Meet your instructors
Aleksander Madry
Cadence Design Systems Professor of Computing at Massachusetts Institute of Technology
I am a professor in the MIT EECS Department and a member of CSAIL. I received my Ph.D. from MIT in 2011. Prior to joining the MIT's faculty, I spent a year as a postdoctoral researcher at Microsoft Research New England and then I was on the faculty of EPFL until early 2015.I am the Director of the MIT Center for Deployable Machine Learning and a Faculty Co-Lead of the MIT AI Policy Forum.
My research spans machine learning, optimization and algorithmic graph theory. In particular, I have a strong interest in building on the existing machine learning techniques to forge a decision-making toolkit that is reliable and well-understood enough to be safely and responsibly deployed in the real world.