Across four decades of computing-education research the introductory curriculum question which loop should be taught first — for or while — and why has been answered overwhelmingly by tradition rather than by evidence. The C, Pascal, and Java family — the languages that shaped the first generation of introductory-programming textbooks — implement both loop constructs as roughly symmetric control-flow primitives parameterised by a condition expression; in that family the while loop is the minimal iteration construct and the for loop is a sugared counter-pattern, and the conventional whilefirst ordering is the consequence of this symmetry plus the minimality-first instructional intuition. Python, however, is in a different language family: for is the canonical iteration-overiterable construct (operating on the iterator protocol) and while is the condition-controlled-repetition construct used in the small minority of cases where iteration is not over an iterable. This paper synthesises Soloway and colleagues' loop-plan literature, Mselle 2008 on loop comprehension, Sajaniemi 2002 roles-ofvariables, du Boulay 1986 notional-machine analysis, Sorva 2013 notional-machine survey, Robins-Rountree-Rountree 2003, Caceffo et al. 2016 misconception catalogue, Lister et al. 2004 multi-national tracing study, Sentance-Waite 2017 PRIMM pedagogy, Caspersen-Bennedsen 2007 instructional-design framework, Cunningham et al. 2017 Easy Loops, Ko-Myers 2005 on debugging novice errors, and Allen-Cartwright-Stoler 2003 ProgramLive. The paper delivers three contributions. First, a literature verdict on misconception density and cognitive-load profile: the for-loop-over-iterable is the lower-misconceptiondensity construct in Python and should be taught first — it has a deterministic bounded execution profile, carries no infiniteloop misconception, aligns with the Python iteration protocol, and transfers cleanly to comprehensions and functional patterns; the while loop has higher misconception density (infinite-loop bugs, off-by-one boundary errors, condition-update coupling) and should be taught second. Second, a per-language-family verdict: the conventional while-first ordering is durably defensible for C / Pascal / Java introductory teaching but is inherited tradition when applied to Python; the for-first ordering is durably correct for Python and dominant in modern Pythonfirst curricula. Third, a curriculum-design proposal for the elix-researches Python Pathway and From Scratch to Python series: introduce for x in iterable first, introduce range() as a second-pass refinement with an explicit cognitive-conflict event around the off-by-one boundary, then introduce while later as the exception case. Per the no-cohort scope, deployment is identified as a downstream cohort responsibility and is out of scope.
That Le (Tue,) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: