MIT 6.100A: Introduction to Computer Science Programming in Python
6.100A — formerly 6.0001, the number most search results still use — is MIT's half-semester introduction to programming in Python for students with little or no experience. The 6.0001 lectures on OpenCourseWare are among the most popular free programming courses anywhere.
Fennie is independent and not affiliated with MIT. This is an unofficial study guide.
Build my 6.100A study planWhat makes it hard
The pace, not the content: MIT compresses a typical intro course into half a semester, so recursion and object-oriented programming arrive within weeks of your first loop. Self-learners on OCW most often stall at the problem sets, which require writing real programs rather than filling in blanks.
What you'll cover
- • Python fundamentals
- • Branching and iteration
- • Functions and abstraction
- • Recursion
- • Lists, dictionaries, and tuples
- • Object-oriented programming
- • Testing and debugging
The 6.100A study guide
How to study for MIT 6.100A, step by step.
- 1
Code along with every lecture
Whether you're in 6.100A on campus or working the 6.0001 lectures on OCW, pause and type the examples yourself. Watching Python is not learning Python — the half-semester pace leaves no room for passive viewing.
- 2
Treat the psets as the course
The problem sets are where the learning happens; the lectures just set them up. Do every one completely, even self-pacing — skipping psets cuts the value of the course drastically.
- 3
Practice daily through the compressed schedule
Recursion and object-oriented programming arrive within weeks of your first loop. Short daily coding sessions keep the concepts compounding instead of collapsing.
- 4
Give recursion and OOP extra reps
These are the two ideas that arrive fastest and stick slowest. Write several small recursive functions and toy classes beyond what the psets require before moving on.
- 5
Pace your run with Fennie
Upload the 6.100A schedule — or your 6.0001 OCW plan — and Fennie builds a Daily Plan that spaces lectures and psets to your timeline, with quizzes on each lecture's concepts generated from the actual course materials. Free to start.
Start my 6.100A plan free
How Fennie helps with 6.100A
Fennie's Daily Plans turn 6.100A's compressed schedule — or a self-paced OCW run of 6.0001 — into daily coding practice with the psets spaced out, not crammed. Chat through recursion or scope when a concept won't click, and quiz yourself on each lecture's ideas before attempting the pset.
FAQ
Is 6.0001 the same as 6.100A?
Yes — MIT renumbered 6.0001 to 6.100A when EECS overhauled its course numbers in 2022. The OpenCourseWare version is still published under 6.0001 (and 6.100L for the full-semester pace).
Is 6.100A hard for beginners?
The material is beginner-targeted but the half-semester pace is intense. Students and self-learners who write code daily keep up; watching lectures without doing psets doesn't work.
How long does 6.0001 take to self-study on OCW?
Most self-learners take 6–10 weeks at a few hours per day, including the problem sets. The psets are the course — skipping them cuts the value drastically.
Pass 6.100A with a plan, not a cram
Upload your 6.100A materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.
Get started freeMore MIT courses
6.006 — Introduction to Algorithms
6.006 is MIT's core algorithms class — sorting, hashing, trees, graph algorithms, shortest paths, and dynamic programming — emphasizing both rigorous analysis and Python implementation. Its OpenCourseWare lectures are a global standard for learning algorithms and prepping technical interviews.
6.046J — Design and Analysis of Algorithms
6.046J — renumbered 6.1220 in MIT's current catalog, but still searched overwhelmingly by its old number — is the advanced algorithms course following 6.006: divide and conquer, randomized algorithms, amortization, network flow, approximation, and complexity. The OCW lectures are a staple for advanced self-study.
6.042J — Mathematics for Computer Science
6.042J — now numbered 6.1200J — is MIT's discrete math course for CS: proofs, induction, number theory, graph theory, counting, and discrete probability. Its OCW versions, with full lecture videos and the famous free textbook, make it one of the most-used discrete math resources in the world.
6.1010 — Fundamentals of Programming
6.1010 — formerly 6.009, the number much of the internet still uses — is MIT's second programming course, where Python fluency from 6.100A gets turned into real software through substantial weekly labs: audio processing, image filters, graph search, interpreters. It's the bridge between knowing Python and engineering with it.