MIT 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.
Fennie is independent and not affiliated with MIT. This is an unofficial study guide.
Build my 6.042J study planWhat makes it hard
It's most students' first real proof-writing course, and the standard for rigor is high — induction proofs with imprecise inductive hypotheses get shredded. The probability unit at the end is deceptively hard, and self-learners often skip the exercises that build the actual skill.
What you'll cover
- • Proof techniques and induction
- • Number theory
- • Graph theory
- • Counting and combinatorics
- • Recurrences
- • Discrete probability
The 6.042J study guide
How to study for MIT 6.042J, step by step.
- 1
Read the free textbook alongside the lectures
Mathematics for Computer Science by Lehman, Leighton, and Meyer is free through OCW and aligned to the course. The lectures motivate; the book's precision is what the graded standard of rigor actually demands.
- 2
Write proofs daily, starting small
Proof-writing compounds with frequency, not session length. One careful induction or contradiction proof per day, audited against a solution, builds the skill faster than weekend marathons.
- 3
Do the in-text exercises — all of them
Self-learners on OCW most often skip the exercises embedded in the readings, which is where the actual skill gets built. Treat them as mandatory, and check posted solutions only after attempting.
- 4
Budget extra time for counting and probability
The combinatorics and discrete probability units are deceptively hard — confidence outruns competence here more than anywhere in 6.042. Double your usual practice volume for these weeks.
- 5
Make Fennie your rep counter
Upload the 6.042 schedule or the OCW course outline and Fennie's Daily Plan distributes daily proof-writing reps through every unit, paced to your exams or target date, with practice problems generated from the actual course content. Free to start.
Start my 6.042J plan free
How Fennie helps with 6.042J
Fennie's Daily Plans schedule daily proof-writing reps through 6.042's units — the skill compounds with frequency, not session length. Chat through why an induction argument leaks, and generate practice problems for counting and probability, the units where confidence most outruns competence.
FAQ
Is 6.042 hard?
It's a real step up if you've never written proofs — rigor is graded, not just answers. Students who write proofs daily and get feedback adapt within weeks.
Should I take 6.042 before 6.006?
Yes, that's the designed order — 6.006 leans on the proof and graph-theory fluency 6.042 builds. Self-learners should follow the same sequence.
Is the 6.042 textbook really free?
Yes — Mathematics for Computer Science by Lehman, Leighton, and Meyer is freely available through OCW, with readings, problems, and lecture videos aligned to it.
Pass 6.042J with a plan, not a cram
Upload your 6.042J 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.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.
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.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.