Skip to main content
Harvard
Computer Science
4 credits

Harvard CS 121: Introduction to Theoretical Computer Science

CS 121 is Harvard's theory of computation course, covering computational models, Turing machines, uncomputability, and NP-completeness, taught from a free online textbook written for the course. It's the theory pillar of the CS concentration alongside CS 124.

Fennie is independent and not affiliated with Harvard University. This is an unofficial study guide.

What makes it hard

The course trades code for proofs about all possible code, and that jump in abstraction is the wall: students must argue about every program that could exist, not trace one that does. Reductions, both for uncomputability and NP-hardness, are the make-or-break skill, and they resist cramming completely.

What you'll cover

  • Computational models and Boolean circuits
  • Finite automata and regular expressions
  • Turing machines and equivalence of models
  • Uncomputability and the halting problem
  • Time complexity and P vs NP
  • NP-completeness and reductions

The CS 121 study guide

How to study for Harvard CS 121, step by step.

  1. 1

    Read the textbook before lecture, not after

    CS 121's free course textbook is precise where lectures are fast. Reading the chapter first turns lecture into a second pass, the right order for material this abstract.

  2. 2

    Treat definitions as the exam content

    Most lost points trace to using a definition loosely: what exactly a reduction is, what it means for a function to be computable. Restate each week's definitions from memory and build one example and one non-example.

  3. 3

    Practice reductions as a genre

    Uncomputability and NP-hardness proofs follow recognizable shapes. Collect every reduction from lecture and psets, name its shape, and rewrite two or three from memory before each exam.

  4. 4

    Verbalize proofs before writing them

    Explain the proof idea out loud in three sentences before formalizing. If the idea can't survive plain English, the formal version will wander, and graders notice wandering.

Today

Today's CS 121 plan

Preview
65 min

What a Fennie Daily Plan looks like for CS 121. Yours is built from your own syllabus and adapts every day to your deadlines and progress.

0 / 4 done~65m remaining
Keep this plan free

First plan free, no card required. Fennie is independent and unaffiliated with your school.

FAQ

Is CS 121 hard?

It's a major abstraction jump: proofs about all possible programs rather than code you can run. Students comfortable with discrete math adapt in a few weeks; reductions remain the hard part for everyone.

Do I need CS 121 for the Harvard CS concentration?

CS 121 is the standard theory-of-computation requirement for CS concentrators, typically taken after the intro sequence and discrete math preparation. Check current requirements for your track.

What should I know before CS 121?

Comfort with proofs and discrete math: induction, sets, and basic combinatorics. Programming experience helps intuition but the graded work is mathematical argument.

More Harvard courses