Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm going to teach the basics of programming to a group of young kids (c.a. 10 year old) and was wondering if asking them to solve puzzles or play simple games with programming might be a clever thing to do?

For example by asking them to write down the though process behind playing Tic-Tac-Toe. (1. Can I make a line? Then put a marker there 2. Can the enemy make a line? Then put a marker on that line. 3. Otherwise just put a marker anywhere.) Or something like that? If so are there any specific puzzles or simple games that are more suited to simple algorithms?

Or should I just do it the traditional way by explaining variables, conditionals, etc. using examples and a console program?

share|improve this question
5  
What is programming, but puzzle solving? #meta-philosophy –  Michael K May 2 '12 at 14:26
2  
A lot, lot more! Algorithms are mostly puzzle solving but as you know programming is about a lot more than just algorithms. –  user357320 May 2 '12 at 14:27
1  
How much time do you have? And what is the main goal? Should they be able to write simple programs or mainly understand the concepts behind computers and programming? In any case, maybe the good old Logo Turtle would be a nice and interesting approach for younger kids, since it gives immediate feedback in a graphical form. –  thorsten müller May 2 '12 at 14:39
add comment

7 Answers

up vote 8 down vote accepted

If you have computers available, I recall LightBot as a good game to introduce programming to children. Children have very short attention spans and static activity does not help much. An active game like this one is a good starter to get them warmed up on thinking algorithms.

Some references,

  1. Light Bot: Learning Objectives and Game Elements
  2. LightBot 2 -- second version
share|improve this answer
    
Thanks. Had forgotten about the brilliant Lightbot game! –  user357320 May 2 '12 at 14:31
    
I would advise against LightBot 2. The first one was quite good, but the decision making added in the sequel is so roundabout that it's difficult even for full-time programmers. –  Izkata May 2 '12 at 18:05
add comment

Scratch may be something worth checking out. Its a project by MIT to create a programming language to teach kids about programming. Its a more visual way to program and gives visual feedback which can keep kids interested. It was developed for a younger target than 10 year olds, but I think it could still meet your needs.

share|improve this answer
    
I want to second that. I introduced my 9 year old to Scratch, and he had a lot of fun with it. More importantly, he was able to grasp simple programming concepts very quickly. One thing I liked a lot is that it wasn't me giving him puzzles to solve. Instead, he created tasks for himself based on what he wanted the characters to do. –  Steven Burnap May 8 '12 at 17:14
add comment

Some games use logical paradigms similar to programation as their core game play. For instance, Spacechem or RoboZZle are definitely programming games, which make the kid think logically.

As Ryathal said, Scratch is also a great start for kids.

On a more advanced topic, you could also take a look at Robocode, in which you must program a tank's AI.

Update

I just ran into Cucumber which is a natural language development tool. I guess it could be worth taking a look at this.

share|improve this answer
    
+1, was going to suggest SpaceChem myself. –  Leo May 2 '12 at 19:31
    
+1 Robocode looks brilliant. Will have a look at that at the weekend, as i've been meaning to learn Java to complement my .Net skills. I also have no idea about AI, so should prove to be a good challenge. Have you tried it yourself? Is it accessible or is there a steep learning curve? Thanks, –  Darren Young May 8 '12 at 18:13
    
Yes I tried it, a few years ago ,though, so it may have changed since then. But it's quite easy to get into, you have a few callback to implement (like OnEnemyDetected), use a few methods (Rotate, MoveForward, Fire) and Voila ! –  XGouchet May 9 '12 at 7:51
add comment

I think languages like Python and Ruby are good for kids too.
Some references (note, I am not recommending these specifically). `

  1. 36 Resources To Help You Teach Kids Programming
  2. Stackoverflow: Ruby and Rails book or tutorial for kids?
  3. Python Tutorials for Kids 8+
  4. Manning -- Computer Programming for Kids
  5. O'Reilly -- Python for Kids
share|improve this answer
add comment

Another possibility might be LabVIEW. Its an ENTIRELY visual IDE (no code whatsoever) -- you are given a bunch of different operators and a bunch of different data types, controls, displays, etc, to hook up to each other. You can also do loops and conditionals, of course. It's actually pretty powerful. It was the first programming "language" I ever wrote in, and I can almost solely attribute my interest in programming to it.

And for the tic tac toe example, I could probably have a working TTT game written with LabVIEW in 15 minutes.

share|improve this answer
add comment

LEGO Mindstorms?

Personally, if I were 10 years old again and my parents wanted to teach me programming, that would be how they'd get to me. Let me build something that looked cool, and then the programming would make it come to life. AFAIK the programming software is a very simple drag/drop interface, incorporating simple commands, loop structures, etc that can nevertheless make for a very complex set of behaviors. This would give kids an insight into what programming can do, as well as force them to solve the logic problems inherent in getting the creation to do what they want.

The downside would be cost; at $400 for the basic NXT kit, that's probably prohibitive for a single demonstration.

share|improve this answer
add comment

I came across this educational program when searching for one for my son:

http://www.bootstrapworld.org/

Bootstrap is a standards-based curriculum for middle-school students, which teaches them to program their own videogames using purely algebraic and geometric concepts. We work with schools and teachers to integrate Bootstrap into their algebra classes and technology programs, as well as parents and afterschool programs across the country.

Unlike most programming tools, Bootstrap uses algebra as the vehicle for creating images and animations. That means that concepts students encounter in Bootstrap behave the exact same way that they do in math class. The entire curriculum is designed from the ground up to be aligned with state standards. Bootstrap lessons cover mathematical topics that range from simple arithmetic expressions to the Pythagorean Theorem, Discrete Logic, Function Composition and the Distance Formula. The program is based on cognitive science research and best practices for improving critical thinking and problem solving.

Most of our students use WeScheme, a cloud-based IDE that lets anyone with a browser start writing code - no downloads necessary! Currently, anyone with a Gmail login can also save and share their work with others.

http://www.wescheme.org/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.