Skip to main content
Stanford
Computer Science
5 credits

Stanford CS 106A: Programming Methodology

CS 106A is Stanford's famous introduction to programming, taught in Python. It covers control flow, functions, decomposition, lists, dictionaries, and graphics, and assumes zero prior experience. Its lectures and assignments are public, and through Code in Place it has been taught free to hundreds of thousands of people, so it's studied worldwide by enrolled students and self-learners alike.

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

What makes it hard

The course itself is friendly; the quarter isn't. Assignments are substantial and weekly, and students who lean on section leaders and trial-and-error to finish them meet exams that require writing code on paper. Self-learners following the public materials face the opposite problem: without deadlines or sections, most stall out around the midpoint when assignments stop being small.

What you'll cover

  • Python fundamentals and Karel-style problem solving
  • Control flow and functions
  • Decomposition and program design
  • Lists, dictionaries, and strings
  • File processing
  • Graphics and interactive programs

The CS 106A study guide

How to study for Stanford CS 106A, step by step.

  1. 1

    Code a little every day from week one

    Ten-week quarters punish binge-and-rest rhythms. Twenty to forty minutes of daily writing keeps each assignment buildable instead of heroic, and it's the only schedule that survives week five.

  2. 2

    Practice decomposition explicitly

    CS 106A grades program design, not just working output. Before coding each assignment, write the function breakdown in plain English. That skill is what the course is actually teaching.

  3. 3

    Write code on paper before each exam

    Exams happen without an interpreter, and students who finished assignments by run-and-fix collapse there. Produce small functions by hand weekly and trace code you didn't write.

  4. 4

    Redo assignment logic from a blank file

    After an assignment is done, rebuild its core from scratch. If you can't reproduce it without your old code, you borrowed understanding you don't own yet.

  5. 5

    Self-learners: impose a real schedule

    The public materials are complete but deadline-free, which is why most self-paced attempts stall mid-course. Set fixed weekly assignment dates and treat them as immovable.

Today

Today's CS 106A plan

Preview
65 min

What a Fennie Daily Plan looks like for CS 106A. 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 106A hard for beginners?

It's designed for true beginners and the support system is famous, but it's still a five-unit Stanford course on a ten-week clock. Assignments grow fast, and the students who struggle are the ones who treat the gentle first weeks as the pace of the whole course.

Can I take CS 106A online for free?

The lectures, assignments, and materials are publicly available, and Stanford's Code in Place program teaches the first half free each year. You won't get Stanford credit, but the content is the real course. The challenge for self-learners is structure, not access.

What language does CS 106A use?

Python, since the course transitioned from Java in 2019-2020. It starts with Karel-style problem solving to teach decomposition before full Python, which is part of why it works so well for beginners.

More Stanford courses