Curriculum for a primary school learner 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;).
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, 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?
You might want to explore CS Unplugged 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.