Advice on teaching programming to math genius 11 year old girls
September 15, 2008 11:38 AM   Subscribe

Advice on teaching programming to math genius 11 year old girls? I've agreed to teach an informal programming class for some neighbor kids who all attend an advanced math+science school. I'll be using processing as the platform. I have a fair amount of successful experience teaching processing to adults and college students, so I'm looking for tips on how to adjust my teaching for talented preteens. I'm taking it for granted they'll be better than me at math.
posted by puppy kuddles to Education (7 answers total) 3 users marked this as a favorite
 
I learned to program in BASIC at around that age. For me the big draw for programming was that I could make up something myself and write code for it, rather than working through canned exercises.

I would suggest that you teach them the building blocks of the language and give them a lot of sample code that they can use as a base for trying new things on their own.
posted by burnmp3s at 12:24 PM on September 15, 2008


Best answer: I have limited experience with teaching programming, but I taught my 11 year old daughter to use Scratch and Alice--after seeing some examples, she pretty much took off on her own. I'd recommend for the kids you are working with that you do not underestimate them. Show examples, but leave the specifics of their projects up to them, so that they can focus it on something they enjoy.

Don't have them all work towards the same example, or the goal for students becomes "how quickly can I get this done". If they pick what they are going to create, then it becomes "how can I make this do what I want it to do"
posted by midwestguy at 12:26 PM on September 15, 2008


I don't know what teaching materials exist for Processing. But you might want to take a look at the Little Schemer/Little LISPer series of textbooks, which use a really interesting question-and-answer format to teach programming from first principles. This kind of approach, if not these exact books, would be how I'd try to start teaching programming to pre-teens.
posted by RogerB at 12:27 PM on September 15, 2008


Here's a link I had saved. It deals more with younger kids, but you should find some useful info.

Teach a Kid to Program (Wired How-To Wiki)

And seconding the idea of not underestimating them. I've taught a couple of younger teens and a few tweens in college-level courses, and they were my best students each time. Just remember they won't get your jokes, because you are hopelessly old and out-of-touch no matter how old you are. :-)
posted by SuperSquirrel at 2:16 PM on September 15, 2008


If you're looking for a text and aren't wedded to Processing, there's Snake Wrangling for Kids and LiveWires.
posted by PueExMachina at 2:56 PM on September 15, 2008


Following about the previous comment referencing Python, I would go with rur-ple, then Snake Wrangling for kids and LiveWires.

If you want to see a preview of what rur-ple is about, there is a very, very primitive web version in current development (no lessons included, whereas rur-ple includes about 40 lessons), at
Reeborg's world
posted by aroberge at 3:47 PM on September 15, 2008


Best answer: I used to teach a course on theoretical computation for gifted middle schoolers. We taught it in Scheme, using the "The Schemer's Guide." Of course computers were slower then, and Processing did not exist (this is the first I had heard of it, and it looks interesting as a teaching tool), so some things may be a bit different.

Anyway:

1) Do not over emphasis the computer. Believe it or not paper and pencil are still pretty valuable. Working through problems a bit without being able to just hit the compile or run button tends to cause the students to get a better idea of what actually works. Don't take that too an extreme though, experimentation in the environment is also quite valuable.

2) Try to teach about logical systems. Flow control, the concept of a predicate, etc. Teaching them how to do things in the language you are using is great, but it is more important to teach them the fundamentals that will be useful in the future, and then let them experiment with how they function in your given language.

3) They may be geniuses, but they will still be missing fundamental math skills. I don't doubt their intellect, like I said, I used to teach this stuff to young kids. We had 13 year olds who could write language interpreters when we were done with them. They have the ability to incredible things, but they will likely be missing some of the knowledge that most teaching materials assume. At 11 in a magnet they may have had Algebra, but it is not a given. They probably have not done any boolean logic (if, and, exor, etc). They will likely pick up on these things fairly quickly, but you need to figure out some way to assess what they know early on, and be prepared to build the scaffolding you need to teach them.

In particular I would spend some time working on boolean logic, truth tables, etc. You can find ways to make it interesting by finding visual tools that let them configure truth tables, or explaining how it effects their google searches. Even if they take nothing else away from a programming course, this will be a valuable skill.

4) Attempt to find some way to visualize the code. In the case of scheme it is possible to represent a subset of the language there a very simple flow charting language. We used to spent the first few days of the class teaching the kids about the various language functions, and having them draw flow charts that did various things. We totally ignored syntax, etc. Then we taught them how to convert their flowcharts into code.

This had the effect of separating learning about logic from dealing with language syntax and minutiae. It also gave them a way to reason about the programs later when they were having issues. It always made a me smile when someone had a bug, and would proceed to whip out a piece of paper and convert their function out into the equivalent flowchart in order to visually debug it ;-)

Admittedly, 4) was easy with scheme because it is a functional programming language, it may prove less feasible in general.
posted by lgerbarg at 2:35 AM on September 16, 2008


« Older How do we support our abused friend and her...   |   How to watch shows together? Newer »
This thread is closed to new comments.