CMU 15-112: Fundamentals of Programming and Computer Science
15-112 is CMU's famous accelerated 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.
What 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. 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.
Today's 15-112 plan
What a Fennie Daily Plan looks like for 15-112. Yours is built from your syllabus and adapts every day to your deadlines and progress.
- Review: Python fundamentals and control flowReview · 25 min
Work back through the 15-112 material on python fundamentals and control flow. In the app, Fennie builds this from your own notes and syllabus.
- Practice: Functions and decompositionPractice · 20 min
Targeted problems on functions and decomposition, the kind 15-112 actually tests.
- Quick quiz: Strings, lists, and dictionariesQuiz · 10 min
Five generated questions to expose weak spots on strings, lists, and dictionaries before the exam does.
- Preview: RecursionPreview · 10 min
A first pass over recursion so the next session starts from familiar ground.
First plan free, no card required. Fennie is independent and unaffiliated with your school.
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.
More CMU courses
15-110: Principles of Computing
15-110 is CMU's gentler introduction to computing, covering Python programming plus computing concepts like data representation, algorithms, and the limits of computation. It's designed for students who aren't CS majors or who want a runway before 15-112, and 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. It covers data structures from stacks and queues through hash tables, trees, and graphs, and 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. It runs alongside 15-122 in the CMU CS core, and 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.