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 — control flow, functions, decomposition, lists, dictionaries, and graphics — assuming 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.

Build my CS 106A study plan

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.

  6. 6

    Put the quarter on rails with Fennie

    Upload the CS 106A syllabus — or the public course schedule if you're self-studying — and Fennie's Daily Plan paces daily coding practice to assignment and exam dates, with quizzes generated from the actual course material. Free to start.

    Start my CS 106A plan free

How Fennie helps with CS 106A

Fennie's Daily Plans give CS 106A the daily-practice structure a ten-week quarter demands — and give self-learners the deadlines the public materials don't come with. Chat explains why your code behaves the way it does, trace by trace, building the on-paper fluency exams test, with practice questions drawn from your actual materials.

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.

Pass CS 106A with a plan, not a cram

Upload your CS 106A materials and Fennie generates a Daily Plan paced to your deadline — plus chat, flashcards, and quizzes built from the actual course content.

Get started free

More Stanford courses