Best Introduction To Programming For Bright 11-14-Year-Olds?
firthisaword writes "I will be teaching an enrichment programming course to 11-14 year old gifted children in the Spring. It is meant as an introduction to very basic programming paradigms (conditions, variables, loops, etc.), but the kids will invariably have a mix of experience in dealing with computers and programming. The question: Which programming language would be best for starting these kids off on? I am tempted by QBasic which I remember from my early days — it is straightforward and fast, if antiquated and barely supported under XP. Others have suggested Pascal which was conceived as an instructional pseudocode language. Does anyone have experience in that age range? Anything you would recommend? And as a P.S: Out of the innumerable little puzzles/programs/tasks that novice programmers get introduced to such as Fibonacci numbers, primes or binary calculators, which was the most fun and which one taught you the most?" A few years ago, a reader asked a similar but more general question, and several questions have focused on how to introduce kids to programming. Would you do anything different in teaching kids identified as academically advanced?
I know several young people who've got hooked on programming because of this free book: http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/
There are versions of the book for Windows, Mac, and Linux. Although the book targets kids as young as 8, it would still be able to speak to an 11 or 12 year old I think.
Objective C gives them the ability to build applications quickly and easily using GnuStep or Xcode. If they have iPods, this also gives the them ability to develop apps for them as well. The intrigue and excitement in their ability to do that often will get them excited in developing in other languages.
This is my sig. There are many like it but this one is mine.
It wouldn't start with any specific languages, but using Alice and its younger cousin Storytelling Alice might provide a good intro to concepts.
I would judge how quickly those concepts are being integrated and then move on to an easy-ish language like BASIC.
Take a look at this: http://www.swaroopch.com/notes/Python
http://pinopsida.com
http://scratch.mit.edu/ Scratch is very cool, comes with an educational program for kids. It's an mit/ucla project
I recommend PostScript.
For kids, PostScript has the advantage of nearly instant gratification, because it allows them to draw graphics quickly. It has loops and conditionals. It uses stacks and variables and functions.
All you need to get going in PostScript is a text editor and a PostScript to PDF converter. On a Mac, it's built in. On Windows, I use GhostScript in CygWin and run ps2pdf, just like I would on Linux. Alternatively, Acrobat Distiller should do the trick.
I (and others) wrote a good wikipedia page on this topic
http://en.wikipedia.org/wiki/Educational_programming_language . I'd look at this list
I personally love and can recommend Alice http://www.alice.org/ and had a great deal of success with my daughter with this.
Seconded. You can't beat designed for the task. It's got an extremely low learning curve, immediate feedback, and lends itself nicely to exploration. And contrary to popular belief, it's not exactly limited. Brian Harvey at UCB has 3 downloadable books suitable for varying skill levels here.
/t
It was developed by MIT (http://scratch.mit.edu/) and has some cool stuff to keep their interest.
...But I digress. TREMBLE PUNY HUMANS!ONE DAY MY SPECIES WILL DESTROY YOU ALL!
I remember getting the RCX a few years ago, I think that was probably one of my first experiences programming even...
I would not recommend the default graphic programming language for 11-14 year-olds, however. There are a lot of third part languages you can use to program it, which not only allow you to do more, but also will be more educational and feel less like a toy to the kids.
I agree with you that programming something like a robot is nice because they get to do something in the real world, but at that age, the kids should really be doing something more than sticking blocks together on a screen.
On a similar note, you may want to try Processing/Wiring. Both are based on Java, so they are pretty easy. Wiring is used in a lot of micro-controllers, so it might be interesting to try that route instead of the Lego kit if the kids are really into it.
I would suggest Alice http://www.alice.org/. It is a drag and drop interface to a 3D environment. It is FREE and was designed at Carnegie Melon University. I teach high school sciene and have almost zero programming background. I learned the basics in two weeks at a summer workshop at Duke University. The last week of the workshop was a summer camp for middle school aged children. They picked it up easily, enjoyed making worlds, and learned quite a bit about basic programming. Once they learn it, they can easily start exploring languages like Java.
Alice and StoryTelling Alice
"Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience."
Thank you Randy Pauch. We miss you.
Or try
Myro using Microsoft Robotics Studio
or Pyro which was the non-MS precursor to Myro... program bots in Python with either real bots or simulation.
Either way, the graphical environments and real bots give kids a great way to SEE and TOUCH their results, which is more how they learn. You can cover all the important software constructs (variables, loops, events, data structs, etc) and avoid some of the abstract conceptualization required in more conventional languages/applications. They will learn the concepts through doing & using them. Then once they are hooked, they can dig into other languages.
Works great for middle school & college kids.... Pyro's got years of track record teaching intro to AI - to liberal arts majors!
Aw, I got it wrong: I mean Scratch (from MIT), not Squeak. Scratch is great! We have not looked at squeak.
Reality or nothing.