If you have a promising young programmer in the family, you might want to take advantage of the extra time together during the holidays to teach a little programming. Michael Norton wrote this tutorial for his fourth grade son, and offers it to Mac DevCenter readers and their children. In just seven easy lessons your child can program a fun drawing program … and I’m sure that will be just the beginning.
Elementary Computer Graphics: Drawing with Pixels
2003-12-17 General Development 13 Comments
I found this interesting and might well follow try this with my kids. However, since I’m not based in the US, I do have one query – what age is fourth grade child?
9-10 years old or so.
He’s teaching the poor kid Tcl?!? Why not go all the way and teach them Perl, at least then the kid could get a job as a “webmaster”…
There are probably at least half a dozen other languages with nice GUI/”game” support even under Mac OS X. Python springs immediately to mind…
Remember Logo? Teach drawing and programming.
Maybe he could have used Objective C so the kid could program in Parallel, or some kind of assembly language… because anyone who programs should know how everything works… WHATEVER!!! I think it’s great he’s using TCL. Sure, there may be other languages better suited for graphics/game support… but for someone wanting to know how to program their first game, TCL is just fine.
I don’t think we should critisize the language used, but rather his ability to teach a 4th grader how to program. I am very impressed that he was able to bring some of the programming principles down to that level. Granted, towards the end of the lesson, it started to get a little more difficult. I would be worried the student/child would loose interest by that point because there were a lot of larger words/concepts.
This is a great tutorial… and there are a lot of people, not just 4th graders, that could use this as a good primer to the language. Great job Michael!
I don’t know if this is available for OSX, but you can build some decent games with it.
BR is right, go for LOGO. Alot of very clever people worked to create that language. Have a read of the M.I.T. AI Memos written about early versions and realise that it just a dynamically scoped LISP with graphics primitives and a child friendly syntax, a real low floor – high ceiling language. Read Brian Harvey’s excellent “Computer Science Logo Style” books and stop thinking about it as a graphics programming language and start to think about doing some AI with it.The UCB Logo (which Brian Harvey was involved with” is GPL free and very usable. It was the first language they taught me at secondary school then things went downhill with COMAL and 6502 assembler. I didn’t realise it at the time though. I wish someone had taken the time to present the language as a symbolic programming language and not just a turtle manipulation tool *sigh* Took me years to discover rediscover LOGO.
Smalltalk was designed as a language that would be easy enough for children to learn. Squeak is a Smalltalk environment that is well-integrated into a simple graphics and GUI system. In fact, Alan Kay (its inventor) goes around teaching Squeak to elementary and middle-school children.
There seem to be a lot of nice resources at that site about getting kids started in programming. I’m using this winter break to get my little brother started in programming (he’s 13 now, so he’s starting a bit late I’m still deciding between Python, Scheme, and Smalltalk. What’s important is you find an interactive environment that’s well-integrated with graphics. Kids don’t like the frustration of a compile/test cycle, and they like to see immediate results from their work.
Seymour Papert’s book, “Mindstorms” outlines Logo as does some of Turkles (Shirley?) work. Highly recommend it (was interested in computers and pedagogy while in university).
Some trivia: did you know that the “Turtle” graphically represented in Logo implementations is based on a real robotic “Turtle” they used in the lab with the children when studying and developing LOGO? Very cool stuff.
This makes me wish I had the net when I was younger, all I had at my disposal was a GW-Basic book. I did have a lot of fun with it though. I liked the little program he made, reminded me of when I made a very similar program in assembly about 2 years ago, only I had coded _everything_ from scratch.
While in 3rd Grade, 1986-1987, I vaguely remember using Logo & the programmable robotic turtle that would move around. I think the computers we used were Apple 2E’s.
We learned to type but typing sentences and having a cereal box placed over the keyboard so we couldn’t see our fingers / keys.
Those were the days haha.
There is no reason that every skill a person learns has to be directly related to their job. Programming is a very powerful skill, and will become even more important as computers become integral parts of our lives. Beyond that, expanding your horizons is always a good thing. All else being equal, the more things you know the better a person you are. While one can’t learn everything there is to learn, it should be everyone’s goal to at least give it a try
BASIC is a good langauge for young kids, too. I taught myself BASIC by reading a book a friend gave me (had to read it several times though), at about the same age.