Ask Slashdot: Best Book Or Game To Introduce Kids To Programming?
New submitter connorblack writes "My very gifted nephew is about to turn nine this month and I would love to get him some sort of fun, engaging book or game to introduce him to the basic concepts of programming. I have a feeling if approached correctly he would absolutely devour the subject (he is already working through mathematics at an 8th grade level). What I first was looking at were the Lego Mindstorm programmable robots- which would have been perfect, if only they weren't around 300 dollars... So if there's anything similar (or completely new!) you've either heard praise about or used yourself with your kids, it would be great to get a recommendation. Also if possible I would want to stick to an under 100 dollar budget."
Would a nine year old be able to follow The Little Schemer?
Because it's hard =)
http://en.wikipedia.org/wiki/Obfuscated_Perl_Contest
Isn't your nephew's future worth the price of a couple days at Disneyland?
My kids started using Scratch when he was 6 and has written two player race car games and other stuff with it.
Google for Redstone Circuits and go to town. There's that running EE joke that you can build any logic circuit with nothing but NOT gates. Redstone pretty much gives you exactly that.
For real programming, maybe just throw them at http://learnpython.org/ and give them an ipython shell to play with until they're ready to start programming a dungeonmaster / chatbot for their minecraft server. That's my plan with my kids (10 & 7) at the moment.
How about you first show him this:
http://www.mygamefast.com/
Then you show him the ORiley Python Book.
He should try ROBLOX. It was a great and fun way to learn programming concepts. It's a 3D block building game, like legos but programmable. www.roblox.com
Scratch is too basic and childish, IMO.
Let your son know that if he messages me on ROBLOX I can give him a LOT of the currency (my account is Ozzypig) but only if you buy him the Builders Club ($6 a month). I'd still be able to help him out - I help manage the two largest scripting help groups on that site.
That was the first game I ever changed the code on. Of course, first we played it as is to figure out what we could do. Then we went into the code and broke it - who says bananas can't fly straight through solid buildings?
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
Is there a video game he is particularly fond of?
Games that are easy to hack and mod are a great start - they are tweaking something they already love. I wasted many hours of my elementary school days tweaking the rules.ini file to make command and conquer's AI a more capable opponent. That lead to scripting one player levels in an attempt to make my own campaign. That lead to...nothing at all....but it might be a start.
The tools available today seem a lot more complex, but also a lot more open than they were when I was young.
Good luck.
-I only code in BASIC.-
Check out Code Monster: http://www.crunchzilla.com/code-monster
It's a game-like site that teaches javascript programming.
Scratch, visual multimedia programming system from MIT. http://scratch.mit.edu/
My 8 year old and 10 year old play around with this and love it. Strange coincidence that it's built using Scala which I use in my day job AND that means I can start using them in my child programmer sweat shop.
ZZT is how I got my start. It is a very old game and of course the "graphics" are terrible, but the game is solid and it's fun. Once you get a little way in you'll come across levels such as The Bank. The Bank is an amazing room (for a ten year old) and for me the concept of programming soon clicked from that experience. In The Bank, you see how you can combine pushers, blocks, and sliders to create a really cool combo lock mechanism. Then, as I recall, there is a little character with some basic programming.
Anyway, the neat part of ZZT is the editor. You can make your own rooms and as you build your own rooms, you are effectively programming. From simple things like placing monsters and choosing types of breakable walls, to creating physical machines using pushers and sliders, and, finally, to programming using the ZZT object scripting language which allows you to create objects that react to events (e.g. 'touch', 'shot', 'timer', etc.) with actions (e.g. 'print message, aka talk', 'move', 'shoot', etc.).
ZZT is the game that did it for me. After a little time there I was moving on up to Turbo Pascal and QBasic. I don't know what contemporary kids would think of ZZT today, but I would think you might be able to convince them to give it a shot.
ZZT is freely available to download and still has a small dedicated fan group following online.
http://www.khanacademy.org/cs - uses the processing.js language.
http://scratch.mit.edu/
It is what has gotten my 5 year old engaged.
Good security is based upon reality and common sense. Common sense is a function of having common knowledge.
This blog posting seems apropos:
http://hostilefork.com/2012/03/06/a-word-on-programming-education-and-spacechem/
I don't care if it's 90,000 hectares. That lake was not my doing.
Get him something larger in scope than programming. Look into astrophysics or biology or botany sciences, or aeronautics, mechanical engineering, chemical engineering, materials sciences, anything engineering related or high math or high tech, but not programming.
Think about promoting something where they seek interests and career lines that might work for themselves or create their own corporation.
If you want to shoot for an interest leading to most likely employment, get him something for marketing and business. Entrepreneurship as well.
I don't recommend these as careers for everyone, but there will be lots of need.
Alternatively, get him a book on how things are actually made, not how they say they are on How It's Made or Mythbusters.
Something with a lot of good photos of Injection molding, machining, forging, casting, metal injection molding, powdered metallurgy, 3D printing and Selective Laser Sintering, Fused Deposition Modeling, etc.
It's an educational game involving programming robots. You're an astronaut with a mission to explore space, and you have a variety of robots at your disposal. You can control them individually, or more effectively, you're supposed to program them to be automated. Sort of third-person FPS with RTS elements, where you code your own units. It uses its own somewhat OOP language, and is just fun with variety of missions.
Considering how old it is it's kinda still expensive, but give it a go (there should be a demo iirc).
the game
Hands on. That is the most fun way to learn programming. If I were you I would buy a raspberry pi/arduino-kit and let him do something he wants to do and encorage him on the way ("hey, if you want to ask me something, I'm always there for you!"). Encouragement from my parents and/or a other programmer was one of the things I missed as a newbie programmer. But hey! I've a lot of fun on the way too without it! I began programming when I were 12 and I've a lot of use of my knowledge in my school subjects (especially math). Maybe he will too!
The main development language is C# for using XNA. Microsoft gives you a GREAT example driven e-book (and free tutorials are everywhere), and all the tools FOR FREE. He can program straight to PC (and Xbox if you buy the $99 a year membership), and use a controller for interface for either. It's pretty easy to pick up, as it explains just about everything. I've been programming since Kaypro][ days (when I was 6), and to get started, you really don't have to go much past if/then, basic integer and boolean variables. I'm still using my 2nd grade level programming skills today!
Without hesitation, I'd go with GameMaker along with the book The Game Maker's Apprentice, and followed by The Game Maker's Companion. The first book includes an older version of the GameMaker software which is all that will be needed to complete the exercises. If your child likes the process, move onto the second book which covers more advanced concepts. Those books, along with either GameMaker 8.1 or GameMaker: Studio should your child want to move onto more current versions, will all fit within your $100 budget, and it will only cost you $20 or so to get started.
The books are excellent learning tools and the GameMaker software itself was originally created by co-author and Utrecht University professor Mark Overmars to teach programming. It's a great way to get ones feet wet and very good games can be created with it if one is willing to put in the effort. If you child wants to move on to more popular languages, GameMaker will provide them an excellent foundation for learning them.
+0 Meh
I seriously attribute my love for adventure games to help me refine my troubleshooting skills and drive to "find the answer".
I believe that it's troubleshooting and the drive to find the answer that makes someone stand out in the work place, whether it's programming or anything else.
I played a lot of Kings Quest, The Secret of Monkey Island, Space Quest, Myst, etc.
http://littlebits.cc/
I saw the founder Ayah Bdeir demonstrate these modular kits this summer and can't wait to get some for my daughter once she's a bit older.
RoboRally, if you can get it!
Richard Garfield, creator of Magic the Gathering, didn't win awards for it for nothing.
Race your robot against your opponents to get to the goal first. Program your robot figurine for each round selecting and ordering basic movement cards (forward, forward x2, backwards, turn left, right, u-turn) using a larger set. If you are damaged, your set of cards to choose from reduces until your registers you've programmed lock into place. Teaches how to think ahead and very basic programming skills. My five-year-old has been slowly learning how to play by laying out cards in order and having me beep-boop the robot into horrible predicaments he programs out. After two games, he seems to have gotten the hang of it and is able to guide the bot to the goal without falling into pits. Soon he will be up against me and my lasers; then he'll know true pain.
Robot Odyssey. You can use an Apple ][ emulator to run it. (Which, itself would be educational.)
http://en.m.wikipedia.org/wiki/Robot_Odyssey
Way back when, at that age, I first got interested in programming via the game Robot Odyssey (http://en.wikipedia.org/wiki/Robot_Odyssey)
According to the Wikipedia page there are modern day clones and derivatives:
"The engine for the game was written by Warren Robinett, and variants of it were used in many of The Learning Company's graphical adventure games of the time, including Rocky's Boots, Gertrude's Secrets, Gertrude's Puzzles, and Think Quick!, all of which are similar but easier logic puzzle games. The gameplay and visual design were derived from Robinett's influential Atari 2600 video game, Adventure.
Carnage Heart involves programming mechas that then fight without any user input.
Cognitoy's MindRover is a relatively recent game which is similar in spirit to Robot Odyssey, but uses different programming concepts in its gameplay.
ChipWits by Doug Sharp and Mike Johnston, a game for the Apple II, Macintosh, and Commodore 64 computers is similar in both theme and implementation, although the interface to program your robot differed.
Epsitec Games created Colobot and Ceebot in recent years for Windows machines which are in many ways spiritual successors to Robot Odyssey. In these games the player program machines to accomplish puzzle tasks. Instead of using logic flops, switches, etc., these two games instead teach the player the fundamentals of object oriented programming like Java, C++, or C#.
One Girl One Laptop productions created a spiritual successor called Gate which uses the same digital logic puzzles as Robot Odyssey.
There is also a clone written in Java, Droidquest, which contains all of the original levels and an additional secret level."
Yep, get him into Python, he should be able to pick that up quickly enough to keep him interested but it will also offer him challenges for years if he wants it. Or... at the risk of being downmodded (again) for not being a MS/Nokia hater, you could get him a cheap WP7 phone (plenty around right now with WP8 coming) and take a look at the amazing TouchDevelop scripting environment that lets you write anything from one-liners to quite complex apps right on the school bus, mostly without having to actually write anything - you connect up various blocks and pipes to get results. https://www.touchdevelop.com/
"Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
My 6 year old has been asking me to teach him to program. He played with kturtle for a little while, but turning is relative to the current position and in degrees, and he always ends up distracted by games and videos.
Recently I've started teaching him TI-86 Basic. He is very excited about printing things to the screen.
A couple of pros:
* It's self contained with no distractions
* Commands are all on the screen so you don't have to memorize them
* It's one place where Basic is still useful
* IO is simple
The other TI calculators are probably just as good, but I had the 86 in my closet.
https://www.facebook.com/digitizeicm -- Show your support for the digitization of the Iron County Miner newspaper archiv
I'm pretty sure there's new versions of it out, and it's a good start to what engineering (in pretty much any sense) is all about.
Mentors are the most significant educational source. Match wits with the kid. Say "look what I can do, and here's how I did it". Then challenge the kid to do something similar himself. Build from "Hello, world" to a text adventure, or an animation, or a video game, or whatever else he shows some talent in. First just spend time with the kid, and let the programming interest grow naturally. If it doesn't, don't force it.
You do not have a moral or legal right to do absolutely anything you want.
RPG Maker. This game is a great way to introduce programming logic. I use it in classes and the students that use this game have no problems with going into programming...
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
"First things first -- but not necessarily in that order"
-- The Doctor, "Doctor
This is pretty dated now, but there's an old game called Mindrover: The Europa Project that was absolutely perfect for this. Kid-friendly but challenging, used a sort of graphical programming that was easy to understand. The only problem is that it's such an old game now that the kid is likely to be turned off by the graphics.
It's been a whole month? Jeez, the Ask Slashdot editors are really off their game. We should be seeing this at least once a week.
http://en.wikipedia.org/wiki/Logo_(programming_language)
Will get him ready for the computer skills needed to learn the ideas that keep many big US companies old apps running.
Domestic spying is now "Benign Information Gathering"
I started with programmg in Applesoft Basic on an Apple ][, and mostly doing stuff like drawing lines and figuring out how to make it draw a circle. (trigonometry was a lot more interesting when I found how you needed to know about sine and/or cos to do that) . If it had existed at the time, I wish I had started programming in c++ instead of having to struggle with those concepts later. Set up a basic graphic framework, give him the tools to draw dots, lines and circles and get him started in writing programs to draw stuff. Just because you are using a C++ compiler doesn't mean you have to know how to write object oriented programs to start with - he could start off with writing pure functional programs, but it will be a lot better to start with a full fledged programming language that will be capable of anything he cares to write, and will be a solid choice for any project.
The synax is easy - the biggest difficulty will be in learning what the various errors mean, but he'll get the hang of that pretty fast.
I'd suggest mabey QT if you want to do windows & widgets stuff.
Don't waste time mucking around with a toy language.
The Blockly Maze Demo is fun, and simple, but it won't occupy the kids for all that long.
(Somebody already posted about Scratch, which seems to have a similar programming interface but is more mature.)
I'm actually partial to Alice 3d from Carnegie Mellon.
http://www.alice.org/
The original creator also did "The Last Lecture." YouTube it, pretty powerful.
AT-Robots, by Ed T. Toton (the third). Assembly in a virtual environment. It's not... the newest, or the hippest language, the best, or possibly even a good idea... but by god's teeth if it was good enough for me, it'll be good enough for my kid.
You know, when he reaches highschool age.
Why C? Let them learn it the right way from the start, get them a MIX emulator for them and give them the three volumes that collect dust on your top bookshelf.
visual pinball is open source and you can also build your own pinball tables on the PC.
The Micro Adventure series of books was written for kids about that age. They had type-in programs for various home computers, some required that the reader correct an intentional error in the program to make it work correctly.
You can find them online for ~$1/book on Amazon and eBay, and an old 80's micro to go along with them can be had for almost nothing. (Plus it'll add some much-needed novelty to get that initial interest going.)
What do I win?
Required reading for internet skeptics
I tinkered with this thing for a little pet project once and at that time decided that it would be a great tool for a child to become accustomed to the basic concept of programming. They can script simple macros with the visual widgets and then create more complex steps with shell script callouts and the such. There's a text-to-speech ("say" command) that is always a huge hit with kids, at least it was for me :)
while [ 1 ]; do echo -n -e "\xe2\x95\xb$((($RANDOM&1)+1))"; done
you'll need the MSP430 launch pad, a hosepipe, some electronic water valves, some simple electronics and a swingset to make one of these waterfall swings.
You could probably make one for less than $100, you would be one of the coolest aunt/uncles ever, bonus points when you get it to write his name in the air
Nullius in verba
Try Scratch using this guide:
Super Scratch Programming Adventure!: Learn to Program By Making Cool Games by the LEAD project.
It looks like a well organized way to build projects that explain the different features. Later you can try python or processing.
And if he is interested then C and C++ for the real thing :-)
Check this out: https://www.youtube.com/watch?v=wgJfVRhotlQ
http://en.wikipedia.org/wiki/Rocky%27s_Boots
I remember playing this on my CoCo2. THAT DARN ALLIGATOR ATE ME AGAIN!!!
Have a look at video included in this ACM article describing the use of AgentSheets and AgentCubes as part of the Scalable Game Design project: http://cacm.acm.org/magazines/2012/5/148567-programming-goes-back-to-school/fulltext You can see other 9 years olds.
robozzle.com
This game would be excellent as a new port.
http://en.wikipedia.org/wiki/RoboSport
"The player creates teams of robots and maneuvers them around a board to map out one "turn" of movement. The other players and AI do the same and then all movement is played out simultaneously."
You can also set minor programming branches (if see enemy stop and fire).
Check out: Scratch
My 9 y.o. daughter loves it. It gets through a LOT of programing basics in a fun way.
Or you could use MIT's Scratch programming environment and not get yourself icky with MS.
I have a theory that the truth is never told during the nine-to-five hours. - Hunter S. Thompson
Kodu! Free for PC, cheap for Xbox. Build a game and it's environment using programming concepts without typing. Great for teaching "if this then that" logic, and hugely fun, which is great for keeping kids engaged.
http://research.microsoft.com/apps/mobile/showpage.aspx?page=/en-us/projects/kodu/
Also take a look on YouTube for a slew of games people have built with it.
Emacs is for experts. Pico is for beginners. VI is a disease.
http://robocode.sourceforge.net/
My other account has mod points!
As someone who's been into programming since grade 4 (good lord.... 28 years), I can't THINK of anything larger in scope than programming in terms of any of the things you mention:
Programming teaches logic, patience, critical thinking, planning, and attention to detail.Programming teaches you to examine any given topic (whatever you're most into) in a systematic, rigorous way. It teaches you to look at how any given thing works and to try to analyze it and break it down into understandable components.
Programming encourages an interest in math, the sciences generally, and boosts self confidence.
And all of that is just personal growth.
In terms of career, it's a marvelous business for entrepreneurship: almost no start-up cost, distribution cost, etc.: If you're smart, capable, and interested in the world there's no end of business opportunities. And if entrepreneurship isn't your thing, there's no end of jobs for well-paid self directed work as a programmer. And because it can be done essentially from anywhere and at any time (I work nights so as to spend time with my family, and can work small amounts while we're vacationing to pay for expenses), it provides amazing flexibility to engage in other aspects of life, to travel, to explore other interests, etc.
It's true that it's getting easier for anyone to program, and that there are more tools out there to help people who don't really know anything about programming do things programmatically. Neither of these things is going to decrease the need for capable programmers.
I could go on.... but I've got programming to do!
I started programming at about 6 because I wanted to make games. So I came up with game ideas and then learned what I needed to in order to make them. Then I got into web programming 10 years later because I wanted to make web sites. I make a good living making other people's web-sites and still make own as well when I need something. I needed to track my time for clients and projects so I wrote my own site to do it the way I wanted to do it. I needed to track my finances so I wrote a site to do that.
What does the kid want to do that involves programming?
What problem does he want to solve?
Java is free and it's not too terribly difficult to get a simple software rendering app going that he can start rendering math functions and apply what he's learning to graphical visualizations.
C# is free as well now. Visual Studio Express is more than sufficient to do graphics programming. Even JavaScript has gotten good enough to handle software rendering using the Canvas. I used that to show students how parameters affect a function during my student teaching.
Money is not a problem. Everything is free. There are tons of resources on the internet and libraries tend to have programming books. The problem is that you're looking for a solution to a problem the kid hasn't found yet.
Work Safe Porn
All these games share something in common. Arrange graphics to tell the computer how to achieve a goal. They require thought, problem/puzzle solving, are addictive through positive reinforcement, and teach that the computer will do exactly what you tell it to do.
They are just hard enough that 5/6 year olds, with very little coaching, will be able to figure out how to play the games. Puzzles get progressively harder at each turn. Each of them add an amount of basic physics to the learning.
My 6 year old love's Bad Piggies. I wish I had a copy of Lemmings to give him.
-CF
Learning a programming language is just as useful as learning a foreign language. It teaches kids how to communicate with computers. Programming by itself may be a questionable field to get into as a life long career path, but as a skillset it can benefit many professions. Are there any sciences, engineering or math career paths that would not benefit from the ability to let computers do the repetetive work?
My 10 year old loves The Scratch programming environment from the MIT Media Lab. It's free from http://scratch.mit.edu/ -- there's an online community that lets kids post their projects, and my kid was highly motivated to enter and win several little community competitions. The graphical coding interface is easy to tweak and allows clever kids to push things a bit more than you might expect. One essential aspect of the experience is that you can download the source scripts for the projects, which is a fantastic way to speed learning (one of my favorite ways to improve my code is to see how others tackle similar problems).
very weird and fun intro to programming in ruby - heavily illustrated with quirky cartoons
also: http://web.archive.org/web/20090627004409/http://poignantguide.net/ruby/chapter-1.html
If they have any interest in making things happen on the web then I naturally suggest html/css/javascript. Especially since if they have a few websites that they spend a lot of time on, they can get started easily writing greasemonkey scripts to add cool functionality. With a fairly brief introduction, they can start hacking right away with the javascript console that ships with most browsers and see results immediately.
So, yeah, I'd suggest Python or Javascript for the 9 year old. Probably Javascript as he'll get the most bang for the beginner buck out of it and most importantly he'll be able to impress his friends sooner!
The soylentnews experiment has been a dismal failure.
I started programming at 8 or 9 years old with QBasic on an old computer. My dad just showed me how to do one or two simple programs (simple loops), but I learned pretty much everything by myself with the included documentation. I know QBasic is a really shitty language for real projects, but it's fun for a kid because it has a lot of basic functionalities included, he can easily do simple I/O, draw graphics, etc. A few years later I moved to php, and then to C and C++. I've forgotten pretty much everything about basic, but I know how to code. So just give him a QBasic environment, QB64 provides an IDE that looks and behaves like the original QBasic/QuickBasic IDE, and runs on modern hardware/software. It should be perfect. (Though I don't know how good the documentation is)
Give him an old Commodore 64 plus manual. In that way he can learn programming computers on the lowest level. If you know how that works, everything else is easy.
-- Cheers!
There's a 3D version, but I mean the original 2D version. Scan north south east west, fire laser, fire missle, turn, move. Basic conditionals and iteration. Variables and constants. Code executes at a constant speed per line. Program your bug to survive in an arena of other bugs. It's dead-on application, and pretty much the software side of simple robotics.
Of course, there's LOGO, which will always hold a place in my heart as a programmable etcha-sketch. But that might be growing more than old at this point.
I have no first-hand experience with this book, but it looks good, and Python is a good option for anybody IMO.
This post was generated by a Cadre of Uber Monkeys for Monkey-Man2000 (603495).
The Incredible Machine, or its modern counterparts.
A very good introductory book on computer networks for children has been previously discussed on slashdot some time ago.
Let's see, there's Bangai-O Spirits:
Bangai-O Spirits
Wario Ware DIY:
Wario Ware D.I.Y.
KORG DS-10 Plus:
KORG DS-10 Plus
"MIT betrayed all of its basic principles."
A book co-written by a father-son team as the son learns Python programming developing small games
http://www.manning.com/sande/
And when you're done with that, move on to slightly bigger games, still in Python
http://inventwithpython.com/
Why are questions like these posted again and again? just learn to use a f-ing search engine like google..
I know people have differing opinions on Java but I used the book 'Objects First with Java: A Practical Introduction Using BlueJ' when I began programming, it starts with the basics and is very easy to follow. BlueJ is also an excellent IDE for teaching/learning programming, although not useful for any real software projects and you are likely to want to move on to a proper IDE such as Eclipse or Neatbeans. Java is the only language I have learnt from a book, all other languages I have learnt from following documentation, googling problems, and posting on StackOverflow.
Many games use java and or lua.
Minetest-C55 Block style 3D building game. (Open source)
http://minetest.net/
also
http://www.codecademy.com/
http://www.lua.org/
http://en.wikipedia.org/wiki/Category:Lua-scripted_video_games :)
I haven't tried Infon Battle Arena (yet) though it looks promising.
15TW = 15,000 Nuclear Reactors. (Approx. one accident a month.)
Wait until your kid learns that he can make the computer do his math homework for him (by writing programs to solve the problems). Then your kid will really start programming.
Anyway, programmers are a dime a dozen. But someone who is good at mathematics is very rare. If he is already excelling in mathematics, then he has a future in any form of engineering and the real sciences.
As for your original question...you could consider getting him a TI-83 and let him go with TI-basic. Or get a programming kit for that. Or put a compiler on your computer. Back in the day we had QBasic, I guess the modern attempt at that is python.
Most importantly: listen to what he says he wants to learn. The best thing to teach him is whatever he wants to learn. If he just wants to learn math, then a good puzzle book for mathematics is great. (Not sudoku or crosswords, but actual mathematical/logic puzzle books targeted for kids is what I'm suggesting).
First off, pencil and paper. Teach them how to make and play wirh Turing machines and finite state automata. Enjoy the awe when you tell them about the Universal Turing Machine.
Low-level:
The HP15C User's Manual and an HP15C, or HP's 15C iApp.
High-level:
David Touretzky's Gentle Introduction.
My personal favourite language of all time: Icon.
S.
If your nephew has access to an iOS device, try Cargobot:
http://twolivesleft.com/CargoBot/
At that age, that being said, kids usually prefer Cut the Rope:
http://www.zeptolab.com/ctr/
The latter isn't technically programming, but it certainly teaches them problem solving.
Rather than a book or game why not set him up with the developing environment for something that interests him?
A fun board game, and excellent for teaching the basic mental skills used in queuing up a list of instructions and then having them all execute in the order that you specified.
http://www.amazon.com/Wizards-of-the-Coast-217580000WOC/dp/B0009HLSP0/ref=sr_1_1?s=toys-and-games&ie=UTF8&qid=1350385716&sr=1-1&keywords=robo+rally
(no sig)
Sure, it was published over 30 years ago, and FORTH gets (and often earns) the the moniker of a Write-Only Language,
but it allows concepts and code to be tested interactively, and as a language written in itself, lets the interested user learn
how it works, not just how to work it.
It's not exactly a resume builder, but knowledge of FORTH makes the concepts underlying other languages a lot easier to comprehend.
Mission: To provide products that consume time and energy as entertainingly as permitted by the laws of thermodynamics.
SpaceChem is amazing, but the learning curve might be a bit rough on younger kids. I still have trouble around the seventh or eighth planet. On the other hand, I loved Ninja Gaiden at that age, so who am I to talk?
Looking at the sample chapter at http://www.ccs.neu.edu/home/matthias/BTLS/sample.pdf seems to confirm this.
BTW, I'll add my vote for Scratch. Also, Mindstorms is intended for ages 10+, of course that may be adjusted down with mechanical *and* language giftedness but I find it's more than what my 7yo is comfortable with. There is a simpler LEGO product called WeDo for ages 7-12 (http://www.legoeducation.us/eng/categories/products/elementary/lego-education-wedo), it's for the education market but I've seen it available online. It's also a touch less expensive. Interestingly, there is an option to program it with Scratch (http://info.scratch.mit.edu/WeDo).
The programs are short, but can instill some much-needed paranoia about how things can go wrong interacting with even a simple environment:).
This is a fantastic mathematical, programming, and home creation project which you can do with your son. Its a great teaching tool, and looks awesome once your done. Take a look! The best part is that its relatively cheap as well.
http://www.ladyada.net/make/conway/
"It's not stealing if you don't get caught!"
No your 9 year old nephew couldn't handle the little schemer. But 9 is a great age for Logo. Alice is also easily doable for kids that age.
http://c-jump.com/
There was post about this game on slashdot many years back. It's like candyland, but with C like expressions. It's not going to teach a kid how to program, but it will help lay the foundation.
I picked up the iPad version of this puzzle game and was surprised at how much of my old coding brain cells it woke up. This sort of thing is a great way to introduce the concepts of programing without jumping right into code. I also concur with the RoboRally mentions out there.
This question keeps poping up on slashdot every once in a while!
Get him a lego mindstorm, let him build robots that he controls from his computer code, then flash the java firmware on it uses java instead of the OEM UI interface.
Mind storm http://mindstorms.lego.com/en-us/Default.aspx
Java firmware http://lejos.sourceforge.net/
Disclaimer: don't have fun instead of him. I find I play with my kids mindstorm just as much as he does.
I would strongly recommend the adventure creation kit.
http://mozomedia.com/ack/
All your attention are belong to my old internet meme.
All are fun and totally free! Kodu introduces programming logic without "real" code, it's good for younger kids but still fun for older kids too. RoboMind combines the Kodu game aspect and real code. Hackety Hack is code-only but it shows fun step-by-step instructions.
Buy two baseball gloves and a ball. Give him one glove. Throw the ball back and forth with him. He will probably appreciate and remember that more as an adult than programming books.
Floating in the black seas of infinity without a paddle.
Not so much programming as it is design, but It allows you to play with motion, physics, skeletal structures, geometry, environments, etc. It's cheap, and a helluva lot more fun than MSPaint. It could turn out to be a good stepping stone into game design. If you want to go strictly programming, I'd seriously consider introducing the kid to the LAMP stack. Linux and Apache are easy enough for a young kid to learn the fundamentals of, as he/she gets older, bring on the SQL and Python/PHP/PERL. Web applications are going to be the future for the foreseeable future, and Python isn't quite as daunting as C, C++ or C#.....
Took about a minute to print a new grid of asterisks on a teletype then.
Both systems make the conceptual leap that a number can be represented by a name rather than digits. Then both systems give you a large number of recipies for manipulating that name to compute something.
Usually most people can hand abstraction after a few years of arithmetic. But I've seen some people go mentally blank after leaving the concrete system of digits and never grasp algebra or programming.
Thats why I am a little skeptical about hearing of 5 or 6 year olds "programming". I dont think the foundation is really there yet. But I think some 9 or 10 year olds can handle both kinds of abstraction. I could by that age.
....if he's truly "gifted" then he would already be programming ....sounds like another wishful thinker --- say, are you one of those undecided jackh....I mean, voters, they are hosting at the Presidential Town Hall????
from the friendly people who pioneered educational drag and drop programming (AgentSheets) comes AgentCubes, the first 3D creativity tool integrating the creation and programming of 3D shapes with advanced end-user development tools.
Watch this movie and tell me if you think this could have been done with any other tool (in 3 minutes) http://youtu.be/jgiGoLYFA0A
I recommend Colobot too: it uses Java, has immersive 3D visuals, and I enjoyed it a lot loong after I learned to program. I now search for a copy to give to my nephew. Next best would probably be Windows Robot Battle, but it doesn't have a nice story behind it.