Motivating Programming for a 12-Year-Old
posted by jesstess Apr 2, 2010 @ 1:44 PM • 10 comments
I have a sister who is 12. She loves her math and science classes, but her school doesn’t seem to be interested in teaching computer skills (not even typing – I bought her some typing programs to get her started when I found that out).
I love computers and I love programming because of the limitless applications and ways to help people. My enthusiasm has yet to convince her that programming is something she’d be interested in, though. I’ve tested the programming waters with her on a few occasions using Python, but she is quickly bored by the need to understand basic data structures and flow control before being able to do anything interesting.
I’m not sure how to better motivation programming for her. Super-high-level kid-oriented languages exist, for example Scratch and many other projects from the Lifelong Kindergarten group at the MIT Media Lab, but as the group name suggests, these programming platforms are geared towards kids half her age.
One idea I’ve been toying with is setting up a Moo for her and her friends and seeing if exploring the world inspires her to want to learn how to add things to it (although Lambda is maybe a sadistic choice for first programming language).
Has anyone has success with introducing programming to someone this age? What worked for you?
Comments
Create a free account to comment on this post!
at 6:45PM 04/02/10 clara said:
A friend on Twitter suggests LOGO… maybe also something related to interactive fiction?
at 6:57PM 04/02/10 clara said:
If you like the text adventure route, this is cool.
at 3:49AM 04/03/10 sbisaac said:
Of course LOGO is a classic first language. (I’m a big fan of LISP and I’d like to be the kind of person who likes ML …) However, sometimes it is good to tinker with a low-level language first. Also, the language isn’t as important as a good problem that requires programming to solve.
Here’s one that I really like. Please forgive me if you’ve heard it already: take a sheet of paper, fold it right-over-left and then unfold so that the bend is 90 degrees. Now look at the profile of what you get: there is a single “left turn” as you move from right to left. Now fold right-over-left twice; you get a left turn, a left turn, and then a right turn (let’s code that “LLR”). If you fold right-over-left three times, you get “LLRLLRR”; four times, you get “LLRLLRRLLLRRLRR.” Incidentally, if you fold four times, you will get a curve that meets itself. This is about as far as you can get with actual paper. There is a fancy description of this process in the Wikipedia article for “Dragon curve.” A good problem is to find some algorithm for simulating paper-folding; you can use LOGO to draw the resulting curves quite easily.
at 5:06PM 04/09/10 chrisg said:
I actually run an after-school Scratch Club at a middle school in Lexington (ages 11-13). Scratch itself is a pretty good choice as a language for this age group. The trouble is getting girls to show up and stick around. What I’ve found is that when two or three girls come together, and work together they do more and stick around longer. So my suggestion might be to get her to start on something with a friend or two.
at 5:06PM 04/09/10 wakeupsilver said:
Hello,
The name Lifelong Kindergarten implies that we can learn the way people learn in kindergarten for our whole life. Hence Scratch was designed with someone your sister’s age in mind, and 12 is in fact right in the most common age range of use.
Also, I wonder if your sister wants to learn to program? Has she said that she does not want to, or that she does want to?
at 6:20PM 04/09/10 jesstess said:
wakeupsilver: she hasn’t expressed either interest or disinterest (although she loves her math and science classes and she loves using the computer, and having watched her grow up I think this is something she would like). I’m not trying to force a lifetime of programming on her, but what I would like to do is get her to try it out in some context and see if she likes it. The problem has been that we don’t get to the fun part – using programming to express yourself or do something useful – at all before she is bored with syntax and structure, and that doesn’t seem like a legitimate trial run for her. The problem is on my end – how I can motivate programming and minimize the ramp up cost so that she actually gets through creating something interesting and can then decide if this is something she’d enjoy doing more of?
at 6:10PM 04/11/10 phewner said:
Ok, I have a little experience with many of the neat-o cs ed toys being a cs-ed researcher. Only second hand knowledge of how this stuff actually works with 12 year old girls so YMMV. Here’s my thoughts:
1. As others have said, don’t sell Scratch short. True, it has sort of a cartoony look and limited primitives but in some sense this is a strength. Much less time spent both learning language constructs, and feeling like you have to make graphics and art “perfect” to fit in. This would be what I would use, and the research shows it can be excellent in this age range.
2, For some interested in arts and crafts, PicoCrickets can be neat but you need to buy hardware.
3. I have heard some anecdotal evidence that if you can get your hands on a Pleo programming that can get some insane buy-in. But getting the device is not so easy, plus not much existing cirricula.
4. Alice from CMU is more advanced but like Scratch. The 3D makes things more complicated than they need to be, so I’ve heard.
5. Kodu from MS looks quite appealing. Can’t say that I’ve used it enough to really weigh in.
6. I’ve actually tried to teach some age 10 boys with i7, and it did get a lot of love. Only problem: the text-like language is difficult for a professional to debug, which can lead to disappointment. Students don’t like watching you search around through documentation – I think it’s both boring and confusing for them. So be sure to give yourself plenty of time to understand the underlying architecture before you jump in.
Hope some of that helps! Sorry to talk your ear off.
at 2:53PM 04/12/10 veeerules said:
There is a free program called Alice, and one for younger (middle school) kids called Storytelling Alice. I haven’t been able to play around with the program at length, but the intention is to present programming syntax with instant visual representation. The earlier suggestion of LOGO is a good one; I think it is now called microworlds and there are free incarnations available.
at 6:19PM 05/07/10 AlexInSpace said:
I think Scratch is great, but you’d just have to show that it can be used in cooler, more adult ways.
I remember being really into gurl.com at that age and especially their comics. I think using Scratch to make webzine-ish interactive comics and animations translates well.
Also, if she’s at all into fashion/art…maybe look into Lilypad arduinos. Of course, as phewner said, PicoCrickets are also nice, but I think the kit’s more expensive than one of the arduinos.
at 7:02PM 10/27/10 forefinger said:
I got into programming when I wasn’t much older than that, and I did it by reading two books of BASIC programs. (Basic Computer Games and its sequel More Basic Computer Games) It was just a bunch of programs, and for each program it would have a page or two of what the output would look like.
I didn’t even have a BASIC interpreter, I just read the programs. I probably missed a lot of what was going on, but I understood enough to be really fascinated by it. I was excited enough to bug my parents for a book on programming and a working programming environment. (Since they are CS professors, this was a one-step process.) And I was excited enough to get through the confusing parts of Pascal, which was my first language.
I feel like this process worked for me because Basic is actually a very simple language conceptually. If you like logic puzzles, it’s actually kind of fun to just sit there and trace out the execution with your finger. Basic is obviously a terrible language to actually teach someone.
The books I linked to above are out of print, so maybe someone should make a online version of them. It could be a BASIC interpreter written in javascript, and you could start off by just showing people the source code next to an interactive session of the code. And you could start off with a bunch of fun games that are simple enough to read through.
Edited to add: the books are online! First one Second one