Friday morning at afterschool in Markham often starts with contest-night energy. Someone opens a CCC-inspired warm-up, the room goes quiet, and the question is not “who finishes first” — it is who can name the useful state before they type.
Why this matters
AI can type code. It cannot replace a kid who can read the question, name the weighted score, and test the inclusive boundary — before they ask a model to type.
A real classroom case: Library Stamp Card
We ran a CodeSky original warm-up inspired by CCC Junior: Library Stamp Card.
A library stamp card. Small stamps are worth 1 point, medium 2, large 3. You read three integers — small count, medium count, large count. If the weighted score is at least 12, print exactly happy. Otherwise print sad. The story prize is a free bookmark. The real prize is reading the question before writing a formula.
|
Decompose three counts → weighted score → happy/sad |
Model 1 / 2 / 3 then compare to 12 |
Check 2,2,2=12 happy · 1,1,2=9 sad |
Code use >= so 12 is happy |
Sample A at exactly 12 must be happy. The classic trap is writing > instead of >=. Our 2026-09-25 Xiaohongshu note used this exact warm-up beat: read first, name the useful state, then test the inclusive boundary.
s = int(input())
m = int(input())
l = int(input())
score = 1 * s + 2 * m + 3 * l
if score >= 12:
print("happy")
else:
print("sad")
Why this still matters when AI can write code
Claims below are grounded in that teaching note — not an external product case with published accuracy metrics.
- AI does not remove the need to read the question first. “Weighted score at least 12 → happy” is a different job from “print any word that looks friendly.” If a kid (or an AI prompt) muddles those, the next line that comes back solves the wrong problem.
- The useful state is tiny on purpose. You only hold S, M, L → weighted score → compare to 12. That is abstraction: keep what the next decision needs, drop the rest.
- The inclusive boundary is the algorithm. Sample A at exactly 12 must be happy; the trap is
>instead of>=. Contest-style questions inspired by CCC Junior, CCC, BCC, and school contests reuse that move — kids who want to sit those register on their own; CodeSky is not an official contest program and is not affiliated with Waterloo or CEMC. - Languages are tools on a path, not the answer. Early work often uses Python so the steps stay readable; JavaScript when the same idea becomes something clickable on a screen; C++ later when speed and structure matter. Tools change; read → name useful state → test the boundary does not.
So AI’s ability to type code does not cancel a thinking-first start. It raises the value of kids who can decompose the inputs, name the weighted score, and check the inclusive edge before they ask a model to type.
Three steps kids can name
We practice the same shape on the bench:
1 · Read — question before formula
2 · Name — useful state is the weighted score
3 · Check — inclusive boundary so 12 is happy
read the question → name the useful state → test the inclusive boundary
Computational thinking kids can own — before AI types a line.
- Decomposition — read → state → calc → print
- Abstraction — keep only weighted score and threshold 12
- Algorithms — weight 1/2/3, then
if score >= 12print happy else sad - Pattern recognition — same inclusive-threshold trap in other weighted warm-ups and contest-style I/O
Try this at CodeSky Markham
Walk-in coding afterschool for ages 7–18. CCC-inspired practice on the bench: read first, name the useful state, then test the inclusive boundary.
9833 Markham Rd Unit 2, Markham, ON L6E 0E5
Email info@codesky.ca · Comment TRIAL on Instagram @codeskyca
Follow CodeSky
Instagram @codeskyca · 小红书 / RedNote · WeChat 公众号: search codeskyca
Sources: CodeSky Xiaohongshu note pack 2026-09-25-图书馆集点卡 (Library Stamp Card; CCC-inspired warm-up; Python pathway; contest-style disclaimer). Inspired by CCC Junior — CodeSky original story and numbers.





