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?
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.
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/
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.
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.
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.
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.
Obfuscated Perl is redundant.
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)