Introduction to Computational Thinking and Data Science

6.00.2x is an introduction to using computation to understand real-world phenomena.

Created by: John Guttag

Produced in 2015

What you will learn

  • Advanced Python 3 programming.
  • Graphs and graphical optimization.
  • Dynamic programming.
  • Plotting with pylab.
  • Random walks.
  • Probability and distributions.
  • Monte Carlo.
  • Curve fitting.
  • Statistical fallacies.

Quality Score

Content Quality
Video Quality
Qualified Instructor
Course Pace
Course Depth & Coverage

Overall Score : 92 / 100

Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a introduction to computer science course? Or looking for more detail on John Guttag's Introduction to Computational Thinking and Data Science? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

Course Description

6.00.2x will teach you how to use computation to accomplish a variety of goals and provides you with a brief introduction to a variety of topics in computational problem solving . This course is aimed at students with some prior programming experience in Python and a rudimentary knowledge of computational complexity. You will spend a considerable amount of time writing programs to implement the concepts covered in the course. For example, you will write a program that will simulate a robot vacuum cleaning a room or will model the population dynamics of viruses replicating and drug treatments in a patient's body.
Topics covered include:
Advanced programming in Python 3
Knapsack problem, Graphs and graph optimization
Dynamic programming
Plotting with the pylab package
Random walks
Probability, Distributions
Monte Carlo simulations
Curve fitting
Statistical fallacies



    • Covers some of the most common and important algorithms in all of programming.
    • Supplemental MIT resources are available that make this into a master class in computational science.
    • Completing the substantial challenges in this course is richly rewarding and will help develop a strong understanding of data science.
    • Prerequisites are not to be taken lightly. This course covers deep topics related to data scientists and assumes a strong background in Python.
    • Course is difficult and will overwhelm students who are not prepared to be challenged.
    • Trying this course without first completely 6.00.1x can prove prohibitively difficult.

Instructor Details

John Guttag

Professor Guttag is the Dugald C. Jackson Professor of Computer Science and Electrical Engineering at MIT. He leads the Computer Science and Artificial Intelligence Laboratory's Data Driven Medical Research Group. The group works on the application of advanced computational techniques to medicine. Current projects include prediction of adverse medical events, prediction of patient-specific response to therapies, non-invasive monitoring and diagnostic tools, and tele-medicine. He has also done research, published, and lectured in the areas of data networking, sports analytics, software defined radios, software engineering, and mechanical theorem proving.



12 total reviews

5 star 4 star 3 star 2 star 1 star
% Complete
% Complete
% Complete
% Complete
% Complete

By Thong T on 12/6/2015

This course is a second course in CS Foundation XSeries. I took this course last year and again I could say this is one of the most intellectually stimulating class ever. The Psets were challenging and well designed to help students get familiar with data science.

By Keshav G on 1/21/2016

One of the excellent course that I have completed. All those who are interested in this topic must give this course a try.

By Dolly Y on 10/12/2016

I love everything about this course.It is the most comprehensive and rigorous beginner cs class online!

By Joseph K on 11/25/2018

I finished this 6.00.2x following the previous one, 6.00.1x. While its title is 'introduction', its contents are not introductory for beginners. Some knowledge or skill is necessary to complete the course, but this course is really good introduction to data scientist/computer scientist wanna-be.

By Paula Cavalcanti on 7/3/2017

This course receives a rate A++ from me, if such was possible. I passed it but would like to retake it (kind of barely made it)- however I am not sure if time will permit [school, work, family - maybe is better to do the next one of the series instead of retaking this one] - Prof Guttag's way of teaching brings life to the data analysis concepts - formulas almost reads like a story. It is a difficult course but I have enjoyed doing it and re-watching a few videos.

By Huzaifa Abbas on 5/26/2017

John Guttag is a really great professor. Can't wait for 6.00.3x (I just hope there will be one). The problem sets really make you understand the power of computers.

By Terry Snow on 6/30/2017

I thoroughly enjoyed the course, bought the book and learned a lot. The course is not easy and I think you would struggle if you had no prior programming experience and no prior experience with python. I did not do 6.00.1x first , due to poor timing on my part, but did refer to those lectures. I had started learning python around 3 months prior, and have been programming in other languages for engineering tasks for many years. There was a high level of interaction in the discussion forums and active support provided. I enjoyed the style that the course was presented in. The modules were coherent and the exercises aligned well with the course material.

By Chris Chen on 11/6/2016

If you're in this course to learn programming, you're in the wrong place. While introducing a few more programming and computer science concepts in the beginning, the course quickly turns into a statistics course, using computation as a simulation tool. While there's nothing wrong with that, those looking to learn more python programming and/or computer science are in for a big disappointment. The instructor's lack of enthusiasm is also a big problem.

By Ted Danson on 4/12/2016

I thought this was an excellent course and an extremely solid companion course to MITX's 6.00.1X. Even if one is not especially interested in data science, the consolidation of the object-oriented programming methods introduced in 6.00.1X will be valuable to someone learning Python. Having taken 6.00.1X and 6.00.2X, the only thing I was left wondering about was whether the problem sets could have been approached differently.

By Saurabh Johri on 3/23/2016

This is one of the best organized MOOCs on the internet. The staff is actively engaged with the learners and also offer an opportunity to those learners to become a community teaching assistant (I was one). The quality of the content is excellent. This course hits the sweet spot on the difficulty chart, meaning it's hard enough for you to be challenged but not so hard for you to perform inadequately. The stuff you learn from this course (and 6.00.1x) can be applied to the real world.

By Mahdi MJ on 2/22/2016

This course helped me a lot and was a more in-depth exercises in Python. However, some subject were not useful for my case such as machine learning which I sort of skipped! I liked the exercises so much, interesting and challenging :)

By Khanh Nguyen on 11/10/2017

After finishing MIT 6.00.1x on EdX (click here for my review of that class ) I jumped straight to MIT 6.00.2x: Introduction to Computational Thinking and Data Science. Overall, Im happy I took the class and learned a lot from it, but there are several things I think it could improve on. Please note that this course is fully accessible: you can get your codes for all the problem sets and exams graded for free; you only have to pay if you want to obtain a verified certificate after passing the course