Introduction to Computer Science and Programming Using Python

This two-part certification course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Part 1 of this class will culminate in building a version of the classic arcade game "Pong".

Created by: John Guttag

Produced in 2013

What you will learn

  • Introduction to computer science and the core elements of programs.
  • Basic algorithms and functions.
  • Recursion and objects.
  • Debugging.
  • Efficiency, orders of growth and memory and search.
  • Classes and inheritance.
  • Trees.

Quality Score

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

Overall Score : 94 / 100

Live Chat with CourseDuck's Co-Founder for Help

Need help deciding on a python course? Or looking for more detail on John Guttag's Introduction to Computer Science and Programming Using Python? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community

Course Description

This course is the first of a two-course sequence: Introduction to Computer Science and Programming Using Python, and Introduction to Computational Thinking and Data Science. Together, they are designed to help people with no prior exposure to computer science or programming learn to think computationally and write programs to tackle useful problems. Some of the people taking the two courses will use them as a stepping stone to more advanced computer science courses, but for many it will be their first and last computer science courses. This run features lecture videos, lecture exercises, and problem sets using Python 3.5. Even if you previously took the course with Python 2.7, you will be able to easily transition to Python 3.5 in future courses, or enroll now to refresh your learning.

Since these courses may be the only formal computer science courses many of the students take, we have chosen to focus on breadth rather than depth. The goal is to provide students with a brief introduction to many topics so they will have an idea of what is possible when they need to think about how to use computation to accomplish some goal later in their career. That said, they are not computation appreciation courses. They are challenging and rigorous courses in which the students spend a lot of time and effort learning to bend the computer to their will.

NOTE: If this course is not currently in-session on edX, you can access the course videos and other materials free at the MIT website and on the MIT OpenCourseWare YouTube channel.

NOTE: While edX calls labels this course 'Introductory', we feel that this course is not well suited for those without a minimal level of coding experience. Students without prior programming background will find there is a steep learning curve and may have to put in more than the estimated time effort.



    • Designed to be a first-ever experience with computer science. This is the ultimate beginner-friendly course.
    • Designed by MIT.
    • Large pool of exercises and supplemental resources to expand the concepts taught in the course.
    • Community resources encourage students to help each other.
    • Course is best followed by purchasing the supplemental textbook, raising the overall cost.
    • Focuses more on data science than most introductory Python courses.
    • This 8-week course might really take 8 weeks to complete.

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.Professor Guttag received his bachelors degree in English and his master's in applied mathematics from Brown University. His doctorate is from the University of Toronto.From January of 1999 through August of 2004, Professor Guttag served as Head of MIT's Electrical Engineering and Computer Science Department. He is a Fellow of the ACM and a member of the American Academy of Arts and Sciences.



16 total reviews

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

By Mustafaa on 11/12/2019

Thoroughly explained, everything was perfect. Good teaching standard

By Rahul Nayak on 3/16/2019

I learn python from edx my experience is awesome like what u learn in computer science do not go college University go online and one thing also when u join outside class for python then end in 2 mont

They take different approaches. CS50x explains a lot of what goes on under the hood and teaches programming using C (a low-level language in comparison to Python)

By Prose Simian on 4/25/2019

This is a well-crafted, fast-paced introduction to Computer Science, though a little dry at times. I think it's based on the introductory 'CS for non CS majors' course at MIT.

By Nicole Debonet on 4/25/2019

It was much harder and moved much quicker than any other MOOC I have taken. I learned a lot, but it was a lot more work than I had really anticipated.

By Elvina Valieva on 4/25/2019

This course covers a lot of ground, so it may be demanding for a beginner.

By Dubravko Gacina on 4/25/2019

Excellent introduction class for anyone wanted to learn Python either you are a beginner/student or a professional experienced engineer wanted to learn something new.

By Doris Smith on 4/25/2019

An excellent introduction to thinking computationally. I liked the instructor, and the exercises and problems sets largely struck a nice balance, being challenging but not discouraging.

By Ruilin Yang on 4/25/2019

This MOOC helped me to recognize my potential in the field of computer science. It is demanding, even might cause you scratchingly uncomfortable. But it is definitely a worth try.

By Vlad Nalimov on 4/25/2019

This course might seem a little boring or even intimidating to some. It's won't be an easy walk-through if you don't have any clue what Python or programming is about.

By Nicole on 4/25/2019

I just finished this class. It was much harder and moved much quicker than any other MOOC I have taken. I learned a lot, but it was a lot more work than I had really anticipated. I am a complete novice with no programming experience, so perhaps that was my fault. I did finish (just this second) and did get a good grade, but I put far more time and effort into the class than I had expected. Be prepared!As an example the first 3 'week' projects are due 4 days apart (Thurs, Tue, Fri due dates) so the 'week' concept was a bit misleading. Again, I really enjoyed and learned a ton, but I hope others know their expectations.Also a lot of the work is self taught. You need to go out and find the answer far more than expect the answer to be in the videos or exercises.

By Vicky on 4/25/2019

The many practice quizzes are very useful and I could follow the first half of the course but when I encountered a problem with an exercise around the middle of the course I couldn't solve it and since I was too busy to find other help (e.g. books/resource persons), I was stuck and gone off track with the course schedule. So I had to drop this course. I'd recommend this course if you have someone around who already knows programming because as with other computer stuffs, sometimes a small thing can get you stuck and you can look at it a million times and still can't see where the problem lies.