Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Massachusetts Institute of Technology

Introduction to Computer Science and Programming in Python

Massachusetts Institute of Technology via MIT OpenCourseWare

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
_6.0001 Introduction to Computer Science and Programming in Python_ is intended for students with little or no programming experience. It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. The class uses the Python 3.5 programming language.

Syllabus

1. What is Computation?.
Shell vs. Editor.
Python vs. Math.
Bindings.
2. Branching and Iteration.
Strings.
Comparisons.
Branching.
While Loops.
For Loops.
3. String Manipulation, Guess and Check, Approximations, Bisection.
String Manipulations.
For Loops With Strings.
4. Decomposition, Abstraction, and Functions.
Function Calls.
Functions as Arguments.
5. Tuples, Lists, Aliasing, Mutability, and Cloning.
Tuples.
Simple Lists.
List Operations.
List Aliasing/Mutation.
6. Recursion and Dictionaries.
7. Testing, Debugging, Exceptions, and Assertions.
Black Box and Glass Box Testing.
Errors.
Exceptions.
8. Object Oriented Programming.
Class Definition.
Class Instance.
Methods.
Method Call.
Special Methods.
9. Python Classes and Inheritance.
Getters and Setters.
Subclass.
10. Understanding Program Efficiency, Part 1.
11. Understanding Program Efficiency, Part 2.
12. Searching and Sorting.

Taught by

Ana Bell, Prof. Eric Grimson and Prof. John Guttag

Reviews

4.6 rating, based on 20 Class Central reviews

Start your review of Introduction to Computer Science and Programming in Python

  • I recently completed the Introduction to Computer Science and Programming in Python course, and it was an excellent experience. The course introduced fundamental programming concepts such as loops, functions, recursion, and data structures in a very clear and structured way. The focus on problem-solving and logical thinking made it easier to approach real-world challenges through coding. Python was a great choice as a beginner-friendly language, and the assignments gave me practical hands-on exposure. The instructors explained complex topics with simplicity, which boosted my confidence. Overall, this course built a strong foundation in computer science and improved my coding skills.
  • Profile image for Bobur Hoshimjanov
    Bobur Hoshimjanov
    Honestly, finishing MIT 6.0001 feels like a massive weight off my shoulders. I thought I knew Python, but this course humbled me real quick. It’s not just about syntax; it’s about learning how to actually solve problems without losing your mind. The problem sets were brutal—especially the word game and the Hangman project—but finally getting my logic to work was such a rush. Professor Guttag makes the complex Big O stuff actually click. If you want to stop "copy-pasting" and actually understand what’s happening under the hood, this is the gold standard. My brain is fried, but I’m ready for more.
  • Profile image for Manish Kumar
    Manish Kumar
    This course was well structured and easy to follow from start to finish. The concepts were explained clearly with practical examples, which made learning simple and interesting. The instructor explained even complex topics in a very understandable way. The lessons were short, focused, and well organized, making it easy to stay consistent. The assignments helped reinforce what I learned and improved my confidence. Overall, this course added real value to my skills and knowledge. I would highly recommend it to beginners as well as anyone looking to strengthen their foundation.
  • its really good for learning about this things that can help to people .
    i live in iran and after i learn it i really like to have a class in MIT university .
  • Sardar Muhammad Hamza Khan
    It’s well-structured, easy to follow, and the content is relevant and useful. A bit more practical examples or hands-on activities would make it even better.
  • Lekshmi Manoj
    Good and I have learned many things in this class. and truly valuable .very nice the classes are very understanding and easy to learn
  • Profile image for Rasmiha Mujeeb
    Rasmiha Mujeeb
    The Python course was highly informative and beginner-friendly. The concepts were explained clearly with practical examples, making it easy to understand variables, loops, functions, and object-oriented programming. Each module included hands-on exercises that improved my confidence in writing real code. The instructor’s explanations were simple and effective, and the projects helped me apply what I learned in real-world scenarios. The course also introduced useful libraries like NumPy and Pandas, which are helpful for data analysis. Overall, it’s a well-structured course for anyone starting their programming journey, and I feel more confident in Python after completing it.
  • Profile image for Arun Kumar
    Arun Kumar
    This course is very helpful for beginners. The teacher explains ideas in a simple and friendly way. The lessons about Python are easy to follow, even if you have never programmed before. I like that the course gives many examples and small exercises to practice. It helped me understand basic computer science concepts step by step. Overall, it is a great starting course for anyone who wants to learn programming.
  • Profile image for Robiul Islam
    Robiul Islam
    This is one of the best free courses I’ve come across. The lessons are clear, well structured, and genuinely useful, making it easy to learn without feeling overwhelmed.
  • Burra Praveen
    I have enjoyed learning python with hands on practical's and i did learn about python at full extent to write code, solve some real life problems.
    So i strongly recommend anyone i know to try it for themselves.
  • IMMADISETTY KUSUMA
    It's is really help to your future career and also students can improve coding skills .Teaches explain very well
  • Profile image for Jashim Uddin
    Jashim Uddin
    Is course is so resourceful, I learn many things from that. Such as loop, function, array and so one
  • Yugal Sharma
    It is a best course platform and easily explain topics and complete course .I have study this course and I learn the skills for my future from this course
  • Profile image for Shirina Turakulova
    Shirina Turakulova
    it was really really cool, i wish i could learn them as a beginner again. thank you so much for such an amzing lessons
  • Arthur Michel Bahr
    Great intro course! Easy to follow, hands-on, and perfect for beginners—just needed quicker support.
  • Profile image for Jeevesh 2003
    Jeevesh 2003
    Successfully completing the course, I gained comprehensive knowledge in the subject matter. The rigorous curriculum equipped me with practical skills and theoretical understanding. Engaging lectures, hands-on projects, and collaborative discussions…
  • Profile image for Tapiwa Kganakga
    Tapiwa Kganakga
    Pretty good, I felt like I learned a lot going through this course. Would definitely recommend this to other students.
  • I got to learn something new i know other progamming language while made me understand easily but the code here is a bit different that HTML, QBASIC, CMD and many more .

  • 27Adhy Prasongko
    I got to learn something new i know other progamming language while made me understand easily but the code here is a bit different that HTML, QBASIC, CMD and many more .
  • Profile image for S200032 KADARI NAGA CHAKRADAR
    S200032 KADARI NAGA CHAKRADAR
    Great lectures with best professors,Happy to complete this course.Best free certification course.
    The explanation is really good

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.