18.S191 | Fall 2020 | Undergraduate

Introduction to Computational Thinking


Course Meeting Times

Lectures: 2 sessions / week, 1 hour / session 


There are no prerequisites.

Course Description

This is an introductory course on computational thinking. We use the Julia programming language to approach real-world problems in varied areas applying data analysis and computational and mathematical modeling. In this class you will learn computer science, software, algorithms, applications, and mathematics as an integrated whole.

Topics include:

  • Image analysis
  • Particle dynamics and ray tracing
  • Epidemic propagation
  • Climate modeling

A previous half-semester version of this course focused on the application of computational thinking to the Covid-19 pandemic.

Teaching Team

Meet the instructors for the course in the video.


Tuesday sessions consist of prerecorded video lectures, released on YouTube and played live on the course website. Thursday sessions consist of a half-hour prerecorded video lecture followed by a half-hour online discussion.

Technical Requirements

Students need to install the Julia programming language, as well as other tools and packages.

Problem Sets & Exams

Homework consists of coding in the form of 10 problem sets, released on Thursdays and due before the following Thursday’s class. 

Grading Policy

The student’s lowest score of the 10 problem sets will be dropped. The remaining problem sets will be weighted equally.

Non-registered Students

Students from outside MIT are welcome to use the course materials and work their way through the lecture videos and homework assignments, though they do not have access to the MIT-only discussion forum on Piazza and may not submit homework for grading. Non-MIT students are encouraged to join the open discussion forum on Discord and find a cross-grading partner there.