English
Teaching Kids Programming & IT Literacy: Comprehensive Research
Research compiled from government curricula worldwide, academic research, Reddit, Hacker News, educator forums, and expert publications.
Table of Contents
- Age Group Framework
- Government Curricula Worldwide
- Tools & Platforms by Age
- Pedagogical Research & Expert Views
- Community Voices: Reddit, HN & Forums
- Key Debates & Alternative Views
- The AI Era Question
- Best Practices & What Actually Works
- Common Failure Modes
- Progression Framework
- Free Curricula & Resources
- Sources & References
Age Group Framework
Based on cognitive development (Piaget), international curricula, and community consensus:
| Stage | Ages | Cognitive Stage | Focus |
|---|---|---|---|
| Pre-coding | 3-5 | Preoperational | Sequencing, cause-and-effect, tangible play |
| First Code | 5-7 | Late preoperational | Visual block programming, floor robots, unplugged |
| Block-Based | 7-10 | Concrete operational | Scratch, creative projects, loops, conditionals |
| Transition | 10-13 | Late concrete / early formal | Block-to-text bridging, physical computing, Python intro |
| Text-Based | 13-15 | Formal operational | Real languages, web/game dev, projects, competitive |
Government Curricula Worldwide
United Kingdom -- Computing Curriculum (Mandatory from 2014)
The UK was one of the first countries to make CS mandatory for all students ages 5-16, replacing the old "ICT" subject with "Computing."
Key Stage 1 (Ages 5-7):
- Understand algorithms and how they run on digital devices
- Create and debug simple programs
- Use logical reasoning to predict program behavior
- Tools: Bee-Bots, ScratchJr, Lightbot, unplugged activities
Key Stage 2 (Ages 7-11):
- Design, write, and debug programs with specific goals
- Use sequence, selection, repetition; work with variables
- Understand computer networks including the internet
- Tools: Scratch (primary tool), Logo, Kodu, Python (upper KS2), Micro:bit (Year 5-6)
Key Stage 3 (Ages 11-14):
- Use two or more programming languages, at least one textual
- Understand Boolean logic, binary representation
- Design and develop modular programs using procedures/functions
- Tools: Python (dominant), HTML/CSS, JavaScript, BBC Micro:bit, Raspberry Pi
Key Stage 4 (Ages 14-16) -- GCSE Computer Science:
- Algorithms, programming (Python), data representation, computer systems, networks, cyber security
- GCSE CS entries grew from ~33,000 (2015) to 80,000+ (2019)
- Persistent challenges: teacher shortages (only 68% of schools have a specialist -- Royal Society 2017), gender gap (~20% female)
Finland -- Integrated into National Core Curriculum (2016)
Rather than a standalone CS subject, Finland integrated programming across existing subjects (maths, crafts/technology).
Grades 1-2 (Ages 7-8): Step-by-step instructions, unplugged activities, Bee-Bots, ScratchJr Grades 3-6 (Ages 9-12): Visual programming within maths, robotics in crafts. Scratch, LEGO Mindstorms/WeDo Grades 7-9 (Ages 13-15): Programming principles in at least one language, variables, conditionals, loops. Python, JavaScript
Key insight: No separate CS subject -- programming is a tool used across disciplines. Heavy demands on teacher training. Quality depends heavily on individual teacher confidence.
Estonia -- ProgeTiger Programme (2012)
Pioneer in digital education. ~90% of schools participate.
Preschool (Ages 5-7): Logical thinking through play, Bee-Bots, unplugged activities Grades 1-4 (Ages 7-10): Visual programming, simple robotics. Scratch, ScratchJr, LEGO WeDo, Code.org Grades 5-9 (Ages 11-15): Text-based programming, web development, physical computing. Python, JavaScript, HTML/CSS, Arduino
Three pillars: (1) Programming & algorithms, (2) Robotics & physical computing, (3) Digital creativity & design.
Singapore -- Code for Fun & Smart Nation
Code for Fun (CFF): Mandatory for all upper primary (ages 10-12), 10-hour programme. Expanded to lower secondary.
- Topics: computational thinking, block-based programming, emerging tech (AI, data, cybersecurity)
- Tools: Scratch, micro:bit, drones, Sphero robots
O-Level / A-Level Computing: Programming in Python, algorithms, data structures, computer systems.
Australia -- Digital Technologies Curriculum (2015, updated 2022)
Mandatory learning area across all years.
Foundation-Year 2 (Ages 5-8): Explore digital systems, follow simple algorithms, Bee-Bots, ScratchJr, CS Unplugged Years 3-6 (Ages 8-12): Design algorithms with branching and iteration, implement in visual languages. Scratch, Blockly, micro:bit Years 7-10 (Ages 12-16): General-purpose programming, modular algorithms, databases, cybersecurity. Python, JavaScript, SQL
Challenge: Implementation varies significantly between states. Teacher capacity is a major bottleneck.
Japan -- Mandatory Programming Education (2020)
Phased rollout by MEXT:
Elementary (Ages 6-12, from April 2020):
- "Programming thinking" integrated across subjects (math, science, music) -- not a standalone subject
- Focus on logical thinking, not specific languages
- Tools: Scratch, Viscuit (Japanese visual tool), Micro:bit, MESH (Sony IoT blocks)
- Challenge: Only ~4% of elementary teachers felt confident teaching programming (2019 MEXT survey)
Junior High (Ages 12-15, from 2021): Expanded technology component, text-based programming introduced Senior High (Ages 15-18, from 2022): Mandatory "Information I" subject. Added to national university entrance exams from January 2025 -- a watershed moment.
South Korea -- Software Education Mandate (2018)
Elementary (Grades 5-6, from 2019): 17 hours of coding within "Practical Arts." Block-based programming via Entry (Korean platform by KAIST/Naver), Scratch, Code.org. Middle School (from 2018): 34 hours of mandatory "Informatics." Algorithms, block and text programming, physical computing. Entry, Scratch, Python, Arduino. Planned from 2025: AI as mandatory subject, 2 hours per week from primary school.
United States -- CSTA Standards & CS for All
No single national curriculum; education is state-controlled. Key frameworks:
CSTA K-12 CS Standards (2017):
- Level 1A (K-2): Model processes as algorithms, sequence instructions, debug. ScratchJr, Bee-Bots, Code.org
- Level 1B (3-5): Sequences, events, loops, conditionals. Scratch, Code.org, Tynker
- Level 2 (6-8): Variables, functions, compound conditionals, binary, networks. Python, App Inventor, micro:bit
- Level 3A (9-10): Algorithm efficiency, data structures, cybersecurity. Python, JavaScript, AP CSP
State variations: All 50 states have adopted some CS policy. ~57% of high schools offer a foundational CS course (2024). Leaders: Arkansas (first to mandate CS in every high school, 2015), Virginia, Maryland.
Disparities: Rural schools, schools serving predominantly Black/Hispanic students, and high-poverty schools are significantly less likely to offer CS courses.
Israel -- Pioneering CS Education (Since 1990s)
One of the longest-standing traditions of formal CS education. Curriculum developed with the Weizmann Institute of Science.
High School Bagrut (Matriculation):
- 3-unit level: algorithmic thinking, basic programming
- 5-unit level: advanced algorithms, data structures, computational theory, OOP
- ~10,000+ students complete Bagrut-level CS annually
- ~30% female participation (better than many countries, still unequal)
Expanding downward: "Computational Thinking" programmes being piloted in elementary, Informatics growing in middle school.
China -- 2022 Curriculum Standard for Compulsory Education
Grades 1-2: Information awareness, basic digital device use, safety Grades 3-6: Algorithm design, visual programming, data organisation. Scratch-like platforms Grades 7-9: Text-based programming (Python), algorithms, AI basics, IoT, cybersecurity Senior High: Mandatory "Information Technology" -- Python officially recommended (replacing VB)
Massive competitive programming culture (NOI/IOI). Private sector very active (Makeblock, DJI Education).
India -- National Education Policy 2020
CBSE Grades 6-8 (from 2021-22): "Coding" and "Data Science" subjects. Scratch, Microsoft MakeCode, AI-for-All platform. Grades 9-10: "Artificial Intelligence" as elective. Python, web technologies, databases. Grades 11-12: Computer Science with Python or Informatics Practices as electives.
Atal Tinkering Labs: 10,000+ labs across India for robotics, IoT, 3D printing, programming. Challenge: Massive scale (250M+ school-age children), digital divide between urban/rural, teacher training bottleneck.
Cross-Country Summary
| Country | CS Starts (Age) | Standalone Subject? | Primary Tools | Secondary Languages |
|---|---|---|---|---|
| UK | 5 | Yes | Bee-Bots, ScratchJr, Scratch | Python, HTML/CSS, JS |
| Finland | 7 | No (cross-curricular) | Bee-Bots, Scratch | Python, JS |
| Estonia | 5-7 | No (support programme) | Bee-Bots, ScratchJr, Scratch | Python, JS, Arduino |
| Singapore | 10-12 | Partial | Scratch, micro:bit | Python |
| Australia | 5 | Yes | Bee-Bots, ScratchJr, Scratch | Python, JS |
| Japan | 6 | No (cross-subject) | Viscuit, Scratch | Python, JS |
| South Korea | 10-11 | Partial | Entry, Scratch | Python, C |
| USA | Varies | Varies by state | ScratchJr, Code.org | Python, Java, JS |
| Israel | 15 (expanding to 12) | Yes (elective) | Scratch | Java, Python |
| China | 6 (from 2022) | Yes | Scratch-like platforms | Python |
| India | 11-12 | Partial | Scratch, MakeCode | Python, SQL |
Universal trends:
- Age of introduction is trending younger -- nearly all start computational thinking by ages 5-7
- Remarkable global consensus on the progression: unplugged/robots (5-7) -> block-based/Scratch (7-12) -> Python (12+)
- Python has become the dominant secondary school language globally
- Scratch is the de facto world standard for ages 7-12
- Teacher shortage is the universal challenge across every country
- Physical computing (micro:bit, Arduino, LEGO) increasingly common everywhere
Tools & Platforms by Age
Preschool / Pre-coding (Ages 3-6)
| Tool | Age | Cost | Type | Key Strength |
|---|---|---|---|---|
| Bee-Bot / Blue-Bot | 3-6 | ~$90-120 | Floor robot | Screen-free, tangible, durable |
| Cubetto | 3-6 | ~$225 | Wooden robot + board | Montessori-inspired, zero screen, teaches functions |
| Code-a-Pillar | 3-6 | ~$40 | Toy robot | Low cost entry point; limited depth |
| ScratchJr | 5-7 | Free | iPad/Android app | Drag-and-drop blocks, storytelling focus |
| KIBO | 4-7 | ~$230+ | Screen-free robot | Research-backed (Marina Bers), no screen needed |
| Hello Ruby (books) | 4-8 | ~$15-18 | Picture books + activities | Teaches CT concepts through stories |
| Robot Turtles | 4+ | ~$25 | Board game | Programming concepts as a family game |
Research finding: A 2022 meta-analysis in Computers & Education covering 50+ studies found that tangible programming interfaces (robots, physical blocks) were more effective than screen-based tools for ages 3-5.
What's developmentally appropriate at this age:
- Sequencing (first this, then that)
- Cause and effect (press button -> robot moves)
- Basic debugging ("what went wrong?")
- Pattern recognition
- NOT appropriate: variables, nested logic, abstract conditionals
- Session length: 15-20 minutes maximum
First Code & Early Elementary (Ages 5-9)
| Tool | Age | Cost | Key Strength |
|---|---|---|---|
| Scratch | 8-16 (usable from 6) | Free | The gold standard. Creative projects, huge community (100M+ users) |
| Code.org CS Fundamentals | 4-11 | Free | Best structured K-5 curriculum, mix of plugged/unplugged |
| Tynker | 5-17 | Free/$9-20/mo | Smooth block-to-text progression, Minecraft modding |
| Kodable | 4-10 | Free/paid | Maze-based logic, praised for teaching logic well |
| CodeSpark | 5-9 | Subscription | Game-based, kids play without prompting |
| LEGO SPIKE Essential | 6-10 | ~$280 | Hands-on robotics, 40+ aligned lessons |
| Ozobot | 6+ | ~$100 | Dual mode: marker-based (screen-free) + OzoBlockly |
| Sphero | 8+ | $50-150 | High engagement, draw/blocks/JavaScript modes |
| Minecraft Education | 7-15 | ~$5/yr | Block-based to Python, leverages existing passion |
Scratch is the most researched children's programming tool (100+ peer-reviewed studies). Key findings:
- Improves computational thinking (Brennan & Resnick, 2012)
- Supports creative expression
- Improves math understanding
- The online community enables remixing as a learning practice
Code.org provides the most complete turnkey K-5 curriculum:
- Courses A through F, each ~12-18 lessons
- Mix of "plugged" and "unplugged" activities
- Complete teacher lesson plans, slides, rubrics
- Hour of Code: 1 billion+ "hours" served
Transition Period (Ages 10-13)
Bridging block-to-text (the "cliff" problem):
Students comfortable in Scratch often hit a wall transitioning to text. The block interface prevents syntax errors, provides visual feedback, and constrains options -- text removes all supports simultaneously.
| Bridge Tool | Approach | Cost |
|---|---|---|
| Microsoft MakeCode | Blocks and JavaScript/Python side-by-side with toggle | Free |
| Pencil Code | Blocks show equivalent CoffeeScript/JS | Free |
| Snap! (UC Berkeley) | Scratch-like but with first-class functions, recursion | Free |
| Trinket | Python, HTML, blocks in browser | Free/paid |
| Mu Editor | Simple Python IDE with micro:bit/Pygame modes | Free |
Physical computing tools:
| Tool | Age | Cost | Language | Key Strength |
|---|---|---|---|---|
| micro:bit | 8-14 | ~$15-20 | MakeCode blocks / MicroPython | Best value, robust, huge curriculum library |
| Arduino | 11+ | ~$25 | C/C++ | "Real" engineering, vast ecosystem |
| Raspberry Pi | 10+ | ~$35-55 | Python, everything | Full Linux computer, RPi Foundation resources |
| MIT App Inventor | 10-18 | Free | Block-based | Build real mobile apps -- very motivating |
micro:bit research (BBC, 2017): 90% of students said it helped them see anyone can code; 86% said it made CS more interesting. Improved self-efficacy for both boys and girls.
Python for Kids resources:
- Python for Kids by Jason Briggs (~$25) -- widely considered the best book for ages 10+
- Python turtle graphics -- specifically praised for immediate visual feedback
- Raspberry Pi Foundation's free "Introduction to Python" course
- Google's CS First (free Scratch-based) transitions naturally
Teens (Ages 13-15)
First "real" languages:
- Python -- dominant first text language. Readable syntax, versatile, massive ecosystem, used professionally
- JavaScript -- immediate visual feedback in browser, required for web dev
- Lua (via Roblox Studio) -- hugely motivating for Roblox players
Web development:
| Platform | Cost | What It Teaches |
|---|---|---|
| freeCodeCamp | Free | HTML, CSS, JS, React, Node.js, databases. 3,000+ hours |
| The Odin Project | Free | Full-stack web dev. Teaches reading documentation |
| Khan Academy | Free | JS-based drawing, animation, games via Processing.js |
| Glitch | Free | Full-stack web apps in browser, instant deployment |
Game development:
| Engine | Age | Cost | Language | Notes |
|---|---|---|---|---|
| Godot | 12+ | Free (open source) | GDScript (Python-like) | Simpler than Unity, growing fast |
| Unity | 13+ | Free (personal) | C# | Industry standard, steep learning curve |
| Roblox Studio | 10+ | Free | Lua | Massive teen engagement |
| Pygame | 12+ | Free | Python | Good for teens already learning Python |
| GameMaker | 12+ | Free tier | GML | Good for 2D (Undertale was made in it) |
| Pico-8 | 10+ | $15 | Lua subset | "Fantasy console," praised on HN |
Competitive programming:
- USACO (usaco.org) -- Free, monthly contests, excellent training problems
- Codeforces -- Free, regular contests, huge international community
- Advent of Code -- Free, annual December event, language-agnostic
- USACO Guide (usaco.guide) -- Free structured training curriculum
Pedagogical Research & Expert Views
Foundational Thinkers
Seymour Papert -- Constructionism & Logo
- Mindstorms: Children, Computers, and Powerful Ideas (1980)
- Core thesis: children learn best by constructing knowledge through building personally meaningful artifacts
- Developed Logo (~1967) with turtle graphics -- children "teach the computer," inverting the typical relationship
- Children as young as 4-5 could use Logo turtle graphics meaningfully
- Coined "microworlds" -- constrained digital environments for exploring powerful ideas
- "Body-syntonic reasoning" -- children understand turtle commands by imagining themselves as the turtle
- Programming teaches debugging as metacognition -- one of the most valuable skills
- Critical note: Large-scale 1980s studies (Pea & Kurland, 1984) found mixed results. Papert argued they tested "school's version of Logo" rather than constructionist culture.
Mitchel Resnick -- Scratch & Lifelong Kindergarten
- Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play (2017)
- Created Scratch (2007), leads MIT Media Lab's Lifelong Kindergarten group
- The Four P's: Projects, Passion, Peers, Play
- The goal is NOT creating professional programmers -- it's creative thinking
- "Low floor, wide walls, high ceiling" design principle (from Papert): easy to start, supports diverse projects, enables sophistication
- Open-ended creative projects produce deeper engagement than guided tutorials
- Remixing is a powerful learning practice, not plagiarism
Jeannette Wing -- Computational Thinking (2006)
- Argued CT is a fundamental skill for everyone, like reading/writing/arithmetic
- Four elements: Decomposition, Pattern recognition, Abstraction, Algorithm design
- CT is "a way of thinking, not just coding" -- applicable across disciplines
- Criticism: Some researchers (Tedre & Denning, 2016) argued the term is too vague and these skills predate computing
Marina Umaschi Bers -- Coding as a Playground (2018)
- Tufts University, developed ScratchJr and KIBO
- Children as young as 4 can learn sequencing; 5-6 year olds can grasp simple loops and conditionals through tangible interfaces
- Distinguishes "playpen" (restrictive, passive) from "playground" (creative, active) approaches
- Designed KIBO specifically to address screen time concerns while teaching coding
Piaget's Stages Mapped to CS Education
| Stage | Age | CS Implications |
|---|---|---|
| Preoperational | 2-7 | Sequencing, cause-and-effect, tangible coding (KIBO, Cubetto, Bee-Bot). Struggles with variables, nested logic, perspective-taking |
| Concrete Operational | 7-11 | The "sweet spot" for block-based programming. Loops, conditionals, simple variables when tied to concrete examples. Struggles with pure abstraction |
| Formal Operational | 11+ | Text-based programming, abstract data structures, algorithm analysis, recursion, OOP concepts |
Important caveat: These stages are not rigid. Individual variation is enormous. Some 8-year-olds handle abstraction; some 13-year-olds struggle.
Key Research-Backed Approaches
"Use-Modify-Create" Progression (Lee et al., 2011): Students first USE existing programs, then MODIFY them, then CREATE their own. Provides scaffolding while building toward open-ended creation.
Pair Programming for Kids:
- Increased confidence, especially for underrepresented students
- Better code quality and fewer errors
- Must rotate roles (driver/navigator) and train students in the practice
- Can backfire if one student dominates (Werner, Denner & Campe, 2012)
Keeping Girls Engaged (Jane Margolis, Joanna Goode, Colleen Lewis):
- Contextualize CS in social impact and creativity, not abstract puzzle-solving
- Collaborative rather than competitive environments
- Diverse role models
- Avoid "CS bro" culture and competitive gatekeeping
- Support diverse project types (narrative/artistic projects are as valid as games)
- Gender gap typically appears around age 11-12; early exposure and diverse role models are the most effective interventions
Culturally Responsive CS Education:
- Ron Eglash (U of Michigan): Culturally Situated Design Tools showing fractals in African architecture, patterns in Native American beadwork
- CS education should connect to students' cultural assets ("funds of knowledge")
Community Voices: Reddit, HN & Forums
What Parents & Teachers Actually Recommend
Tier 1 -- Most Recommended:
- Scratch / ScratchJr (free, MIT) -- the universal gold standard
- Code.org (free) -- best structured curriculum
- Python with turtle graphics (free)
Tier 2 -- Highly Recommended:
- Minecraft Education Edition -- leverages existing passion
- Roblox Studio / Lua -- same principle
- micro:bit -- physical computing
- LEGO SPIKE / FIRST LEGO League -- robotics
Tier 3 -- Niche but Praised:
- Pico-8 -- retro game making
- Kodable -- maze logic for young kids
- CodeCombat -- RPG-style Python learning
- Godot -- game engine for teens
- p5.js -- creative coding
Real Parent Experiences
Success stories:
- Grace Francisco (Atlassian) -- her daughters had zero interest in Scratch/Code.org, but Minecraft was the breakthrough. They swapped one JavaScript command to change castle block types and were hooked by the immediate visible results.
- A HN parent who taught 500k+ kids advises: "Delay abstractions as long as possible. Teach them how to draw a circle on a canvas, then get them to move the circle."
- Multiple parents report Roblox Studio as the gateway -- kids learn Lua, a real language, within a world they already love
Failure stories:
- A parent found their 14-year-old "hates Scratch which I think spoiled the experience" -- forced early exposure can backfire
- Starting with Java or C++ leads to immediate frustration
- Over-scaffolded environments prevent developing independence
Community Consensus on Timing
"Start when the child shows interest. Make it available but never forced."
- Age 3-5: Unplugged activities only (sequencing cards, cup stacking, "human robot" games)
- Age 5-7: ScratchJr, floor robots, playful exposure
- Age 7-10: Scratch, Code.org, creative projects
- Age 10-13: Python introduction, physical computing
- Age 13+: Real languages and projects driven by personal interest
Key Debates & Alternative Views
"Coding for Kids Is Overhyped"
Anand Sanwal (CB Insights CEO) -- argues the movement was a "manufactured crisis exploited by tech companies, politicians, and the Education Industrial Complex." Points out CS graduates now face high unemployment. Recommends focusing on agency, critical thinking, comfort with ambiguity, and resilience instead.
Joe Morgan (developer, Slate) -- "Coding books present programming as a set of problems with 'correct' solutions, but programming is messy." Recommends teaching problem-solving through practical activities like fixing furniture, collaborative cooking.
Andreas Schleicher (OECD Director of Education) -- "I would be much more inclined to teach data science or computational thinking than to teach a very specific technique of today." Argues coding skills may be obsolete by the time children reach adulthood.
Kentaro Toyama (U of Michigan, Geek Heresy, 2015) -- technology-focused education consistently fails to address deeper inequities; coding education is no exception.
Larry Cuban (Stanford emeritus, Oversold and Underused, 2001) -- technology in education follows hype cycles; coding is the latest iteration.
"Coding Is Not the New Literacy"
Chris Granger (creator of Eve language, 2015) argued that modeling -- constructing mental models of systems -- is the real skill, not writing code syntax. We're teaching the wrong thing.
Annette Vee (U of Pittsburgh, Coding Literacy, 2017) -- while coding parallels traditional literacy, not everyone needs to be a "fluent programmer." The key distinction:
- Computational literacy (understanding how computing shapes the world) -- widely seen as essential
- Programming proficiency (ability to write code) -- debated whether universal
- Computational thinking -- the middle ground, increasingly seen as the "universal" part
Digital Literacy vs. Programming
These are widely recognized as distinct but overlapping:
- Digital literacy: Using digital tools, evaluating information critically, understanding privacy, communicating digitally. Everyone needs this.
- Programming: Writing code, algorithm design, data structures. Debated whether universal.
- Computational thinking: Problem-solving approaches (decomposition, abstraction, patterns, algorithms). Increasingly seen as the universal bridge.
The UK curriculum explicitly separated these when replacing "ICT" with "Computing" in 2014.
Screen Time Concerns
- AAP guidelines: no screens under 18 months, limited for 2-5 year olds (1 hr/day), consistent limits for 6+
- Key distinction: Active coding screen time is fundamentally different from passive consumption. "When children code, the brain is very engaged and active, requiring lots of thinking, imagination and problem-solving."
- Marina Bers designed KIBO (screen-free robot) specifically to address this concern
- Research supports: tangible/physical tools for ages 3-5, blended approach from 5-7, screen-based coding appropriate from 8+
Unplugged vs. Screen-Based
CS Unplugged (Tim Bell et al., University of Canterbury, 1998) proved CS concepts can be taught without computers: binary through cards, sorting through physical activities, error detection through "magic tricks."
Research finding: CS Unplugged "acts as a catalyst when combined with programming" -- students who do unplugged activities first "show more self-efficacy" when they move to screens.
Best practice: Unplugged activities introduce concepts, then students apply them in code. The combination is more effective than either alone (Ottenbreit-Leftwich et al.).
Most praised unplugged activities:
- Cup stacking with coded instructions (best for kindergarten)
- "Human robot" maze navigation -- one child writes instructions, another follows exactly
- Dance/movement sequences as "programs" with debugging
- Story sequencing cards
- LEGO building from coded instructions
Counter-Arguments from Advocates
- "The underlying logical concepts remain valuable across decades" -- specific languages change, thinking skills don't
- "The exercise of teaching children coding isn't about teaching them how to code, but how to think, plan, predict, conjecture, reason" (HN)
- Douglas Rushkoff (Program or Be Programmed, 2010): not understanding programming means being controlled by those who do
The AI Era Question
This is the newest and most active debate (2025):
"Fundamentals first" camp:
"The most crucial skill won't be one or the other. It will be using the fundamentals to ask the AI better questions."
"Limit AI" camp:
"Never let him copy and paste from it. When he eventually starts vibe coding, it will be like putting a V8 in a Ferrari instead of a VW Golf."
"Embrace AI" camp: Some younger children showed engagement with "vibe coding" when a parent acted as typist, iterating on AI-generated results while children guided the direction.
Psychology Today (2024): "AI Doesn't Change Why Kids Should Learn to Code" -- the cognitive benefits persist regardless of AI capabilities.
Emerging consensus: Coding teaches compartmentalization, step-by-step thinking, connecting dots, controlling complexity, and focusing on goals -- these skills remain valuable regardless of AI. But curricula need updating to acknowledge AI as a tool.
Best Practices & What Actually Works
Teaching Principles (Aggregated from Research + Community)
-
Follow the child's interest. "Programming is a means to an end, not the end itself." Connect coding to what the child already loves (trains, animals, Minecraft, music).
-
Fun first, learning as side effect. "The learning must all be a side effect of having fun. Don't try to teach programming. Do fun things and fill in the programming toolbox, tool by tool, as they're needed."
-
Delay abstractions. Let kids write repetitive code before introducing loops. "Write it very verbosely without loops, then they will almost invent loops themselves."
-
Immediate visual feedback is critical. Turtle graphics, game engines, Scratch animations -- anything where results are instant and visible.
-
Get out of the way. "All I do is make sure he has access to the tools, and I unstick him when he's stuck."
-
Social context matters. Grace Francisco's daughters only got excited after seeing other kids coding at a workshop. Hack Club's model of student-led peer communities works for teens. Resnick's "Peers" in the Four P's.
-
Don't force it. Multiple stories of kids who hated coding when pushed but loved it when they discovered it on their own. One developer's brother showed no early interest but became one of the best programmers in his college after picking it up in university.
-
Use-Modify-Create. USE existing programs, MODIFY them, then CREATE original work. Provides scaffolding without being prescriptive.
-
Projects over exercises. Open-ended creative projects produce deeper learning than guided tutorials (Resnick, 2017). But some structure is needed -- purely unstructured exploration often fails (Pea & Kurland, 1984).
-
Physical computing adds engagement. micro:bit, Arduino, LEGO -- connecting code to the physical world consistently shows higher engagement across all ages.
Common Failure Modes
| Failure | Why It Happens | Fix |
|---|---|---|
| Wrong language too early | Java/C++ for beginners = immediate frustration | Start with blocks, transition to Python |
| Scratch burnout | Older kids find it childish; it can "spoil the experience" | Match tool to age; don't force Scratch on 12+ |
| Over-scaffolding | Sandboxed environments prevent independence | Gradually remove training wheels, let kids struggle |
| Forced participation | Pushing an uninterested child | Make tools available, follow their timeline |
| Tutorial hell | Following tutorials without understanding | Require original modifications and projects |
| Parental over-involvement | Excessive guidance prevents ownership | Step back, be available for "unsticking" only |
| Expensive bootcamps | Quality varies enormously | Start with free resources; avoid intensive camps for young kids |
| No social context | Coding alone feels isolating | Code clubs, pair programming, sharing projects |
| Ignoring the block-to-text cliff | Abrupt transition from Scratch to Python | Use bridge tools (MakeCode, Pencil Code, Snap!) |
Progression Framework
Recommended Path (Synthesis of Global Curricula + Research + Community)
Age 3-5: EXPLORE
|-- Unplugged: sequencing cards, "human robot," pattern games
|-- Tangible: Bee-Bot, Cubetto, Code-a-Pillar
|-- Books: Hello Ruby
|-- Goal: cause-and-effect, sequencing, "computers follow instructions"
|-- Sessions: 15-20 min max
|
Age 5-7: PLAY
|-- ScratchJr (supervised, limited screen time)
|-- Code.org Courses A-B (mix of unplugged + screen)
|-- Floor robots, Kodable, CodeSpark
|-- CS Unplugged activities
|-- Goal: simple programs, debugging, creative expression
|-- Sessions: 20-30 min
|
Age 7-10: CREATE
|-- Scratch (primary tool)
|-- Code.org Courses C-F
|-- Google CS First (themed clubs)
|-- micro:bit (physical computing)
|-- Minecraft Education, LEGO SPIKE
|-- Goal: loops, conditionals, events, variables, creative projects
|-- Sessions: 30-45 min
|
Age 10-13: BRIDGE
|-- Advanced Scratch / Snap!
|-- MakeCode (blocks + JavaScript/Python side-by-side)
|-- Python turtle graphics, Mu Editor
|-- Arduino, Raspberry Pi
|-- MIT App Inventor
|-- CodeCombat (game-based Python)
|-- Goal: text-based coding, physical computing, real projects
|-- Sessions: 45-60 min
|
Age 13-15: BUILD
|-- Python (primary language)
|-- JavaScript + web development (freeCodeCamp, Khan Academy)
|-- Game engines (Godot, Roblox Studio, Unity)
|-- Competitive programming (USACO, Codeforces)
|-- Real projects driven by personal interest
|-- Hack Club, coding communities
|-- Goal: functional tools, portfolio projects, understanding real systems
|-- Sessions: self-directed
Free Curricula & Resources
Complete Free Curricula (K-12)
| Resource | Ages | Scope | Notes |
|---|---|---|---|
| Code.org CS Fundamentals | K-5 | Full K-5 curriculum | Most widely used in US. Plugged + unplugged |
| Code.org CS Discoveries | 6-10 | Year-long course | Web dev, animation, games, data, physical computing |
| Raspberry Pi / Teach Computing | K-12 | Complete UK computing curriculum | Most comprehensive free curriculum globally |
| CS Unplugged | 5-14 | Screen-free CS activities | 20+ languages, University of Canterbury |
| Google CS First | 8-14 | Scratch-based themed clubs | 8 themes, video tutorials, teacher guides |
| Harvard Creative Computing | 8-14 | 7-unit Scratch curriculum | Gold standard for Scratch-based teaching |
| Beauty and Joy of Computing (BJC) | 14-18 | AP CSP via Snap! | UC Berkeley, free |
| Mobile CSP | 14-18 | AP CSP via App Inventor | College Board endorsed |
| Exploring Computer Science (ECS) | 14-18 | Year-long intro CS | Strong equity focus |
| Bootstrap | 10-16 | CS + algebra integration | Research-backed, improves both CS and math |
| freeCodeCamp | 13+ | Full-stack web dev | 3,000+ hours, nonprofit |
| The Odin Project | 13+ | Full-stack web dev | Teaches reading documentation |
| Khan Academy Computing | 10+ | JS-based creative coding | Drawing, animation, games |
| Hack Club | 13-18 | Student-led coding clubs | 60,000+ students, no teachers/curriculum |
Key Organizations
- Code.org -- Nonprofit, CS for All advocacy, state policy tracking
- Raspberry Pi Foundation -- Free curricula, Code Club, CoderDojo
- CSTA (Computer Science Teachers Association) -- K-12 standards, professional development
- CSforAll -- Equity-focused CS education advocacy (US)
- CAS (Computing at School) -- UK teacher network and resources
Sources & References
Academic Research
- Papert, S. (1980). Mindstorms: Children, Computers, and Powerful Ideas. Basic Books.
- Resnick, M. (2017). Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. MIT Press.
- Wing, J.M. (2006). "Computational Thinking." Communications of the ACM, 49(3), 33-35.
- Bers, M.U. (2018). Coding as a Playground. Routledge.
- Brennan, K. & Resnick, M. (2012). "New frameworks for studying and assessing the development of computational thinking." AERA.
- Margolis, J. (2008). Stuck in the Shallow End. MIT Press.
- Kafai, Y. & Burke, Q. (2014). Connected Code. MIT Press.
- Vee, A. (2017). Coding Literacy. MIT Press.
- Pea, R.D. & Kurland, D.M. (1984). "On the cognitive effects of learning computer programming." New Ideas in Psychology.
- Lee, I. et al. (2011). "Computational thinking for youth in practice." ACM Inroads.
- Weintrop, D. & Wilensky, U. (2015). "To Block or not to Block." IDC '15.
- Lye, S.Y. & Koh, J.H.L. (2014). "Review on teaching and learning of computational thinking through programming." Computers in Human Behavior.
- Tedre, M. & Denning, P.J. (2016). "The Long Quest for Computational Thinking." Koli Calling.
- Bell, T. et al. (2009). "Computer Science Unplugged." NZ Journal of Applied Computing.
Community Sources
- HN: How are parents who program teaching their kids today?
- HN: How are you teaching your kids programming in 2025?
- HN: Easiest programming language for young kids
- HN: Are you teaching your kids to code?
- We Got Bamboozled by the Teach Kids to Code Hype (Anand Sanwal)
- Slate: Against Teaching Kids to Code (Joe Morgan)
- Hackaday: Expert Says Don't Teach Kids to Code
- Atlassian: My Daughters Are Coding Thanks to Minecraft
- Psychology Today: AI Doesn't Change Why Kids Should Learn to Code
- Raspberry Pi Foundation: What Age Can a Child Start Coding?
Government / Institutional Sources
- UK: gov.uk Computing programmes of study
- Finland: oph.fi (Finnish National Agency for Education)
- Estonia: harno.ee (Education and Youth Authority)
- Singapore: moe.gov.sg
- Australia: v9.australiancurriculum.edu.au
- Japan: mext.go.jp
- South Korea: moe.go.kr
- USA: csteachers.org (CSTA Standards), code.org/promote (state policy tracker)
- Israel: weizmann.ac.il/sci-tea/cs
- China: moe.gov.cn
- India: cbseacademic.nic.in
Research compiled April 2026. Government curriculum details based on published standards through mid-2025. Community insights gathered from Reddit, Hacker News, and educator forums. Tool pricing and availability may have changed -- verify on official websites.