CMU 15-112: Fundamentals of Programming and Computer Science
15-112 is CMU's famous fast-paced introduction to programming in Python — control flow, functions, data structures, recursion, OOP, and efficiency — ending in an open-ended term project. Its public course website and the related CMU CS Academy platform give it a search footprint far beyond Pittsburgh.
Fennie is independent and not affiliated with Carnegie Mellon University. This is an unofficial study guide.
Build my 15-112 study planWhat makes it hard
The pace is the point: 112 covers in one semester what many intros spread across two, with weekly quizzes that punish falling even days behind. The collaboration policy is strict and enforced, so the only viable strategy is genuinely being able to write the code yourself — and the term project at the end rewards students who built fluency rather than survived deadlines.
What you'll cover
- • Python fundamentals and control flow
- • Functions and decomposition
- • Strings, lists, and dictionaries
- • Recursion
- • Object-oriented programming
- • Efficiency and big-O basics
- • Graphics and the term project
The 15-112 study guide
How to study for CMU 15-112, step by step.
- 1
Code every single day, starting day one
112's pace makes weekly study rhythms fatal — the quizzes are weekly and the material compounds daily. Even 30 focused minutes a day keeps you on the train; skipping three days puts you under it.
- 2
Write everything yourself, always
The collaboration policy is strict because the course's entire value is personal fluency. Discussing ideas is fine where permitted; typing code you didn't fully produce is both an integrity risk and a guarantee the quizzes expose you.
- 3
Treat each quiz as a diagnostic, not a verdict
Weekly quizzes tell you exactly which topic didn't stick while there's still time to fix it. Rework every missed problem from scratch within a day of getting it back.
- 4
Practice writing code on paper
Quizzes and exams require producing code without an editor. Weekly paper practice — writing small functions and tracing recursion by hand — closes the gap between 'can debug into working' and 'can write correctly cold.'
- 5
Bank fluency before the term project
The open-ended project at semester's end is where shortcuts come due. Students who practiced past the minimum all semester build something real; deadline survivors spend the project weeks relearning basics.
- 6
Ride the pace with Fennie
Upload the 15-112 schedule and Fennie's Daily Plan paces daily coding practice to the quiz and project deadlines, generating practice problems and quizzes from the actual course materials so the weekly diagnostics stop surprising you. Free to start.
Start my 15-112 plan free
How Fennie helps with 15-112
Fennie's Daily Plans match 15-112's defining feature — relentless pace — with daily practice scheduled against the weekly quiz calendar, so nothing compounds unseen. Chat explains why your code behaves the way it does, trace by trace, building the write-it-cold fluency quizzes test, with practice quizzes generated from the actual course materials.
FAQ
Is 15-112 hard?
It's famously fast rather than conceptually exotic: a two-course intro compressed into one semester with weekly quizzes. Students who code daily and keep up week by week do well; anyone studying in weekend batches gets exposed quickly. The pace is the difficulty.
How much time does 15-112 take per week?
The 12 units are honest — budget 12+ hours weekly including lecture, recitation, homework, and quiz prep, with more during the term project. The students who report manageable workloads are the ones practicing daily rather than in marathons.
Is CMU CS Academy the same as 15-112?
No — CS Academy is CMU's free online curriculum for high schools, built by the same group and sharing the graphics-based teaching style. 15-112 is the university course: faster, deeper, and ending in an open-ended term project. CS Academy is a good on-ramp, not a substitute.
Pass 15-112 with a plan, not a cram
Upload your 15-112 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 CMU courses
15-110 — Principles of Computing
15-110 is CMU's gentler introduction to computing — Python programming plus computing concepts like data representation, algorithms, and the limits of computation — designed for students who aren't CS majors or who want a runway before 15-112. It's one of the largest courses on campus.
15-122 — Principles of Imperative Computation
15-122 teaches imperative programming with correctness front and center — contracts, loop invariants, and reasoning about code in the C0 teaching language before transitioning to real C — covering data structures from stacks and queues through hash tables, trees, and graphs. It's the second course of the CMU CS core.
15-150 — Principles of Functional Programming
15-150 teaches functional programming in Standard ML — types, recursion and induction, higher-order functions, and reasoning about programs as mathematical objects — alongside 15-122 in the CMU CS core. For most students it's the first time programming and proof become the same activity.
15-213 — Introduction to Computer Systems
15-213 is the famous CS:APP course — data representation, x86-64 assembly, caches, memory, linking, exceptions, virtual memory, and concurrency, taught through the legendary lab sequence (bomb lab, attack lab, cache lab, malloc lab, shell lab, proxy lab). Its textbook and materials are used worldwide, making it one of the most-searched CS courses on the internet.