<p>You might want to explore <a href="https://csunplugged.org/en/" rel="nofollow noreferrer">CS Unplugged</a> for use with any youngster. While it doesn't use programming, it provides some foundation in computational thinking and provides some metaphors, etc, that might be useful to learning even in an environment where the student is learning to program.</p>
<p>I don't think it is necessary to do everything in the CS Unplugged curriculum <em>prior</em> to starting programming. And you might not want to use any of it explicitly, but it is worth the effort for an inexperienced teacher to explore this at least.</p>

CC BY-SA 4.0
2021-02-08T19:48:18.987Z
2021-02-08T19:48:18.987Z
Buffy
<p>My grand-daughter is interested in programming and has been from the age of 5 or so (and is now nearly 10).</p>
<p>I teach programming at university and my son-in-law (her father) teaches at secondary school level so we both have experience at teaching different age ranges.</p>
<p>We find the Usborne books to be very useful for that age range, and they are so interesting that I end up pointing some undergraduate students at them.</p>
<p>In particular I like the <a href="https://usborne.com/gb/lift-the-flap-computers-and-coding-9781409591511" rel="nofollow noreferrer">&quot;Lift-the-Flap Computers and Coding&quot;</a> title:</p>
<p><a href="https://usborne.com/gb/lift-the-flap-computers-and-coding-9781409591511" rel="nofollow noreferrer"><img src="https://i.sstatic.net/bOI7b.jpg" alt="enter image description here" /></a></p>
<p>The child in question now programmes in Scratch<sup>†</sup> and Python.</p>
<hr />
<p>† Scratch is from MIT and designed for teaching coding to younger ages using visual programming. See <a href="https://scratch.mit.edu/" rel="nofollow noreferrer">https://scratch.mit.edu/</a>.</p>

CC BY-SA 4.0
2021-02-10T19:40:23.520Z
I'm having trouble with the Usborne links as it redirects. After some trial and error note that the book uses Scratch (which is good) but supposedly isn't available in US. The publisher is in UK. But... Amazon... https://www.amazon.com/Lift-Flap-Computers-Coding-IR/dp/0794535747
Buffy
CC BY-SA 4.0
2021-02-10T19:51:23.383Z
I thought linking to the Publisher would be a better vendor-neutral place to give information on the book, but of course I could not detect regional specific viewing! Thanks for the note.
Brian Tompsett - 汤莱恩
CC BY-SA 4.0
2021-02-10T19:53:27.163Z
Further facts: It does appear to be available in the US in Spanish: https://usborne.com/us/los-ordenadores-y-la-programacion-9780794546038
Brian Tompsett - 汤莱恩
CC BY-SA 4.0
2021-02-10T19:55:26.333Z
And the English version for the US is here: https://usborne.com/us/lift-the-flap-computers-and-coding-9780794535742
Brian Tompsett - 汤莱恩
CC BY-SA 4.0
2021-02-10T15:46:38.327Z
2021-02-10T17:30:44.907Z
2021-02-10T17:30:44.907Z
Brian Tompsett - 汤莱恩
<p>For Java ideas, look at the free to join <a href="https://greenroom.greenfoot.org" rel="nofollow noreferrer">Greenroom</a> that is a resource collection place for the Greenfoot programming environment. There are a wide variety of project (see Resources) for programming projects within this environment.</p>
<p>Greenfoot is a scaffolding environment based on a grid like world that contains objects of various kinds that the student manipulates by writing programs. Each project is different and the granularity of the grid can be large or small.</p>
<p>It is mostly used in secondary school and beginning university courses for a first course.</p>
<p>For example, frogs might chase flies or just move to lily pads. Some of the scenarios are Turing complete but also minimal so that any program can be written with a minimum of constructs.</p>
<p>Greenfoot contains its own editor and compiler and is highly graphical.</p>
<hr />
<p>One reason that I recommend Java, other than the wealth of resources, is that it is relatively easy to build the scaffolding of projects (worlds) within which the students program. Thus they don't need to start with a blank page and no conceptual guidance. The world itself provides a rich metaphor about what is possible and how to go about things.</p>
<p>In particular, I believe that avoiding the details of the primitive data types of programming languages is a good thing for the beginner. It is possible to teach about half of the first university course with programmer defined primitives (robots, frogs, ...) rather than ints and floats. The implication is that students learn first about the structure of programs, not the trivia, and can learn the lesson that <em>abstraction</em> is the big idea, whether function abstraction or object abstraction.</p>
<hr />
<p>There is a more general site: <a href="https://bluej.org" rel="nofollow noreferrer">BlueJ</a>, built by the same team, that is a bit more sophisticated and doesn't rely on a grid based world. It is a full development IDE. It also has an associated <a href="https://blueroom.bluej.org/door" rel="nofollow noreferrer">Blue Room</a> where instructor-supplied projects are collected.</p>

CC BY-SA 4.0
2021-02-08T19:41:59.170Z
2021-02-08T21:25:32.577Z
2021-02-08T21:25:32.577Z
Buffy
<p>I'm surprised that no one has mentioned <a href="https://code.org/student/middle-high" rel="nofollow noreferrer">Code.org (computer science curricula for middle-high school students page)</a> so I will! They have a plethora of courses and short activities that allow students to develop games, apps, and websites in block-based languages and Javascript for free. They walk through the concepts very slowly and have videos and tutorials for everything.</p>

CC BY-SA 4.0
2021-05-06T02:49:34.417Z
2021-05-09T02:28:58.967Z
2021-05-09T02:28:58.967Z
Randi W
<p>My niece is 11 this year and has shown a surprisingly deep interest in programming. She will spend hours on Khan Academy, using their javascript/processingjs environment. This is educational, but it's not a toy or a visual/drag-and-drop interface; it's raw javascript, with a bit of help from the compiler (in the form of a cartoon character that says things like &quot;are you missing a semi-colon?&quot;).</p>
<p>Since I'm the programmer in the family, I've been working with my niece to develop her interest, and I'm unsure how to go about it further. She wants to develop video games or animations, so she'll look at programs that other people have written, but these are generally big and hard to follow. What she can do on her own is find individual lines of code that she can understand, like a call to <code>fill(color)</code> and she'll change the color, or <code>rect(x,y,width,height)</code> and change the parameters to change where the rectangle is drawn.</p>
<p>When I work with her, she'll ask for features, and I'll implement them and explain, and she seems to follow the explanation, but she can't generate the code herself, or understand how to decompose a complex task into pieces small enough that she can implement them, and then assemble the pieces into what she wants to build</p>
<p>I'm wondering if there's a curriculum or toolkit out there that would guide a child--slowly--through the skills. AFAICT, the Khan academy system isn't really that kind of thing, more like an environment and some tutorials, and access to other people's code, but not a linear course to follow.</p>
<p>I'm thinking of something like <a href="https://www.pythonlikeyoumeanit.com" rel="nofollow noreferrer">Python Like You Mean It</a>, but for kids, and ideally oriented towards graphical output--something that the child could follow along in a linear way, to provide structure to her studies.</p>
<p>Or would that run the risk of killing a budding interest, and should I just let her play and wait and see where it goes?</p>

CC BY-SA 4.0
2021-02-08T14:47:31.337Z
There are probably more resources available in Java as well as more complete graphics libraries. Are you willing to consider that? I like Python, but it feels "incomplete" so far.
Buffy
CC BY-SA 4.0
2021-02-08T14:48:59.323Z
I didn't mean that it should be Python, just that I was aware of that particular tutorial as a long term, linear way to study the language.
Joshua Frank
CC BY-SA 4.0
2021-02-08T15:37:56.807Z
You may find this [recent q-n-a](https://cseducators.stackexchange.com/q/6578/8837) useful
Rushi
CC BY-SA 4.0
2021-02-08T18:22:49.313Z
I learned programming, at nearly the same age, by changing variable declarations in a Fortran program.I have no links to toolkits or course-type materials that fit the bill. Rather, a mere suggestion: provide raw resources ([a set of JS docs](https://www.w3schools.com/jsref/default.asp), unlimited encouragement and support (the only stupid question is the one that never gets asked), and dedicated space on her computer for expirements). Using git/GitHub/GitLab wouldn't be bad either just for the rollback ability. (Maybe should be an answer if I wasn't so lazy today.)
Gypsy Spellweaver
CC BY-SA 4.0
2021-02-09T13:14:20.527Z
Also see https://cseducators.stackexchange.com/q/6402/8837
Rushi
<student-motivation><programming><primary-school>
Curriculum for a primary school learner
# Curriculum for a primary school learner

(Asked by: username_0 on 2021-02-08)

My niece is 11 this year and has shown a surprisingly deep interest in programming. She will spend hours on Khan Academy, using their javascript/processingjs environment. This is educational, but it's not a toy or a visual/drag-and-drop interface; it's raw javascript, with a bit of help from the compiler (in the form of a cartoon character that says things like "are you missing a semi-colon?").

Since I'm the programmer in the family, I've been working with my niece to develop her interest, and I'm unsure how to go about it further. She wants to develop video games or animations, so she'll look at programs that other people have written, but these are generally big and hard to follow. What she can do on her own is find individual lines of code that she can understand, like a call to `fill(color)` and she'll change the color, or `rect(x,y,width,height)` and change the parameters to change where the rectangle is drawn.

When I work with her, she'll ask for features, and I'll implement them and explain, and she seems to follow the explanation, but she can't generate the code herself, or understand how to decompose a complex task into pieces small enough that she can implement them, and then assemble the pieces into what she wants to build

I'm wondering if there's a curriculum or toolkit out there that would guide a child--slowly--through the skills. AFAICT, the Khan academy system isn't really that kind of thing, more like an environment and some tutorials, and access to other people's code, but not a linear course to follow.

I'm thinking of something like [Python Like You Mean It](https://www.pythonlikeyoumeanit.com), but for kids, and ideally oriented towards graphical output--something that the child could follow along in a linear way, to provide structure to her studies.

Or would that run the risk of killing a budding interest, and should I just let her play and wait and see where it goes?

**Tags:** student-motivation, programming, primary-school

> **Comments:**
> **username_1**: There are probably more resources available in Java as well as more complete graphics libraries. Are you willing to consider that? I like Python, but it feels "incomplete" so far.  
> **username_0**: I didn't mean that it should be Python, just that I was aware of that particular tutorial as a long term, linear way to study the language.  
> **username_2**: You may find this [recent q-n-a](https://cseducators.stackexchange.com/q/6578/8837) useful  
> **username_3**: I learned programming, at nearly the same age, by changing variable declarations in a Fortran program.I have no links to toolkits or course-type materials that fit the bill. Rather, a mere suggestion: provide raw resources ([a set of JS docs](https://www.w3schools.com/jsref/default.asp), unlimited encouragement and support (the only stupid question is the one that never gets asked), and dedicated space on her computer for expirements). Using git/GitHub/GitLab wouldn't be bad either just for the rollback ability. (Maybe should be an answer if I wasn't so lazy today.)  
> **username_2**: Also see https://cseducators.stackexchange.com/q/6402/8837  

---

## 4 answers

### Answer by username_4 on 2021-02-10. Score: 4

My grand-daughter is interested in programming and has been from the age of 5 or so (and is now nearly 10).

I teach programming at university and my son-in-law (her father) teaches at secondary school level so we both have experience at teaching different age ranges.

We find the Usborne books to be very useful for that age range, and they are so interesting that I end up pointing some undergraduate students at them.

In particular I like the ["Lift-the-Flap Computers and Coding"](https://usborne.com/gb/lift-the-flap-computers-and-coding-9781409591511) title:

[![enter image description here](https://i.sstatic.net/bOI7b.jpg)](https://usborne.com/gb/lift-the-flap-computers-and-coding-9781409591511)

The child in question now programmes in Scratch† and Python.

---

† Scratch is from MIT and designed for teaching coding to younger ages using visual programming. See <https://scratch.mit.edu/>.

> **Comments:**
> **username_1**: I'm having trouble with the Usborne links as it redirects. After some trial and error note that the book uses Scratch (which is good) but supposedly isn't available in US. The publisher is in UK. But... Amazon... https://www.amazon.com/Lift-Flap-Computers-Coding-IR/dp/0794535747  
> **username_4**: I thought linking to the Publisher would be a better vendor-neutral place to give information on the book, but of course I could not detect regional specific viewing! Thanks for the note.  
> **username_4**: Further facts: It does appear to be available in the US in Spanish: https://usborne.com/us/los-ordenadores-y-la-programacion-9780794546038  
> **username_4**: And the English version for the US is here: https://usborne.com/us/lift-the-flap-computers-and-coding-9780794535742  

---

### Answer by username_1 on 2021-02-08. Score: 3

You might want to explore [CS Unplugged](https://csunplugged.org/en/) for use with any youngster. While it doesn't use programming, it provides some foundation in computational thinking and provides some metaphors, etc, that might be useful to learning even in an environment where the student is learning to program.

I don't think it is necessary to do everything in the CS Unplugged curriculum *prior* to starting programming. And you might not want to use any of it explicitly, but it is worth the effort for an inexperienced teacher to explore this at least.


---

### Answer by username_1 on 2021-02-08. Score: 1

For Java ideas, look at the free to join [Greenroom](https://greenroom.greenfoot.org) that is a resource collection place for the Greenfoot programming environment. There are a wide variety of project (see Resources) for programming projects within this environment.

Greenfoot is a scaffolding environment based on a grid like world that contains objects of various kinds that the student manipulates by writing programs. Each project is different and the granularity of the grid can be large or small.

It is mostly used in secondary school and beginning university courses for a first course.

For example, frogs might chase flies or just move to lily pads. Some of the scenarios are Turing complete but also minimal so that any program can be written with a minimum of constructs.

Greenfoot contains its own editor and compiler and is highly graphical.

---

One reason that I recommend Java, other than the wealth of resources, is that it is relatively easy to build the scaffolding of projects (worlds) within which the students program. Thus they don't need to start with a blank page and no conceptual guidance. The world itself provides a rich metaphor about what is possible and how to go about things.

In particular, I believe that avoiding the details of the primitive data types of programming languages is a good thing for the beginner. It is possible to teach about half of the first university course with programmer defined primitives (robots, frogs, ...) rather than ints and floats. The implication is that students learn first about the structure of programs, not the trivia, and can learn the lesson that *abstraction* is the big idea, whether function abstraction or object abstraction.

---

There is a more general site: [BlueJ](https://bluej.org), built by the same team, that is a bit more sophisticated and doesn't rely on a grid based world. It is a full development IDE. It also has an associated [Blue Room](https://blueroom.bluej.org/door) where instructor-supplied projects are collected.


---

### Answer by username_5 on 2021-05-06. Score: 1

I'm surprised that no one has mentioned [Code.org (computer science curricula for middle-high school students page)](https://code.org/student/middle-high) so I will! They have a plethora of courses and short activities that allow students to develop games, apps, and websites in block-based languages and Javascript for free. They walk through the concepts very slowly and have videos and tutorials for everything.


---

