Four weeks from “never programmed” to writing interactive decision-making
programs. ← Roadmap home · Weeks 5–8 →
Week 1 — Your first program
Session 1.1 — What a program is, and your first compile
Part
Details
Prerequisites
none — this is the start; only a computer and curiosity
Learning objectives
explain what a compiler does; run the edit–compile–run cycle; write, compile, and run a Hello-world program; read your first compiler errors without panic
Concepts
source code, compiler, executable, main(), cout, statements, the compile command and its flags
make Hello-world fail three different ways (remove a semicolon, misspell cout, break a quote) — read each error and write down what the compiler was trying to tell you
Estimated self-study time
60 min (compile practice + error reading)
Completion checklist
☐ compiler installed (setup checklist) ☐ Hello-world compiles and runs ☐ 3 deliberate errors produced and understood ☐ toolchain sanity check passes
Session 1.2 — Program anatomy and clean output
Part
Details
Prerequisites
Session 1.1 — you can compile and run
Learning objectives
annotate every line of a small program; chain cout output; use \n and endl correctly; begin reading error messages systematically
Concepts
#include, namespaces and using namespace std;, return 0, comments, string literals, escape sequences
☐ all four base types used in one program ☐ 10 Bank problems attempted ☐ can explain const’s two benefits in your own words
Session 2.2 — Operators, precedence, and conversion
Part
Details
Prerequisites
Session 2.1
Learning objectives
use arithmetic, compound assignment, increment/decrement; predict expressions with precedence; explain integer division, remainders, and implicit vs explicit conversion
Concepts
operator precedence and associativity, / vs %, integer vs floating division, implicit conversion, explicit casting, common type mistakes
☐ can predict buffer behavior on paper ☐ I/O Bank problems attempted ☐ validation pattern (fail→clear→ignore) used once from memory
Session 3.2 — getline, formatting, and the mixing trap
Part
Details
Prerequisites
Session 3.1
Learning objectives
read whole lines with getline; mix >> and getline correctly; format output with fixed, setprecision, setw; recognize the classic input mistakes on sight
Concepts
getline, cin.ignore(), output formatting, field widths, common input mistakes gallery
☐ can explain whygetline after >> fails (the buffered newline) ☐ two labs completed ☐ cpp-io debugging D1–D2 ☐ W03 quiz ≥ 90%
Week 4 — Decisions
Session 4.1 — if, else, and compound conditions
Part
Details
Prerequisites
Weeks 2–3 — expressions and input fluent
Learning objectives
write if/else/else-if ladders; build compound conditions with &&/||/!; test boundaries deliberately (the > vs >= trap); read a flowchart into an if-ladder
☐ boundary test cases written for every decision ☐ two decision labs done ☐ predictions ≥ 8/10
Session 4.2 — switch, menus, and requirements→decisions
Part
Details
Prerequisites
Session 4.1
Learning objectives
write switch statements (and know when an if-ladder is better); build a repeat-until-quit menu with do-while; convert written requirements into decision tables and then into C++
☐ one requirement translated table→code without peeking ☐ 3 debug hunts ☐ Stage A checkpoint: W04 quiz ≥ 90% and all four weekly quizzes closed — Stage B unlocks