Sixth grade questions

Saturday 14 February 2004This is more than 19 years old. Be careful.

I’ve volunteered to go talk to my son’s sixth grade class about writing software. I spoke with their computer teacher about what I do, including professional work, this site, and little projects I’ve done with and for my boys, notably simple game programs. The teacher had them think up questions ahead of time and mail them to me. The first was:

How do you make any wrestling games?

I’ve never made a wrestling game. Where to begin?


Hmm. I'd talk about how to break down the game into managable components. So you'd talk about how computers are quite dumb, so you need to teach it how to draw a person, and how to draw the background, and how to combine the two. Then you'd have it listen for user-input, and have that bit of the program tell the drawing bit of the program what to do.
How about getting the kids to draw wrestlers, then vectorize them using Streamline:

Save as SWF and pull them into Flash and off you go.

Make liberal use of #FF0000.
Do you remember the java program called robotwars or something like that. Sun provided it to encourage beginners to start learning Java. You inherited a baseclass for robots in an arena, then it was up the programmer to code how your little robot should work.
The API provided very basic things such as fire(), move(int steps), turn(int degrees) and with that you combine it as you liked.
Very intuitive, very easy and very effectfull.

So maybe you should write a wrestling game with pygame and provide a basic API that the students could fiddle with.
Peter: good idea. It's called Robocode and was written by Mathew Nelson at IBM. It's available on AlphaWorks, see here

Another thing that comes to mind is Logo. Lots of kids have been exposed to it and it has the "immediate feedback" that kids love.
These posts are good- I am certainly interested in the java thing with Robocode! I wonder how many kids are taking advantage of such convenient tools these days. However from what you described Ned, as I don't think the student is all that interested in something so object-oriented, or even code itself. (He probably doesn't want to hear about first securing a major license deal with the WWF characters for the next SmackDown event, either.) So I think Jim had a good approach to the question... even just to mention that games development is a huge effort involving the coordination of many things going on at once... so if you mention anything about page flipping that should suffice. That might capture the most you can fit into a good answer since the concept explains a lot of what's going on behind-the-sceenes. You could also mention that 2 player fighting games must be thoroughly play-tested for balance issues, compared to other kinds of games. For a really complete answer, you can point him to which is full of great deep academic considerations of this matter.

Start with "well, video games -- including wrestling video games -- are a kind of software".

And segue into whatever you want.
Ned, would you please cc: me on your answer back to him? You've given very good advice on this topic already so I'm curious as to what you'd offer, particularly with regards to the scope of your answer. You say you've never written a wrestling game before, but we all know that's a poor excuse and ducking the question entirely with what you'd be capable of! (as if you would have no idea how to make it happen....)
The question for myself is not, "could I make a wrestling game", but "how do I begin to explain to kids who have never programmed (or worse: who have done HTML and thought it was programming) how to make a wrestling game".
Try blindfolding one of the kids and call him the "computer".

Assign two (or more) kids to be "programmers" to tell the blindfoleded kid how to wrestle by telling him how to move each limb. (Their limbs are object variables.)

Notice that they'll automatically break down the problem into subproblems and give names to frequently used routines. They'll use the word "with" to subclass those routines.

Now add another blindfoleded kid to be the "other wrestler" in the computer game.

I think they'll begin to get the idea what programming is.
They'll also see how programming in a team on the same, shared code base causes bugs.
Try having the "programmer" kids instruct the "computer" kids how to send one word messages (mini language).

When really confused allow the momentary removal of the blindfold (exception handling).

Remember, programming is mostly codes and ciphers.

For more ideas check out "Does Easy Do It? Children, Games and Learning" by Seymour Papert

For a Python 3D education app check out Alice from Carnegie Mellon University: here
Darius' ideas (especially the first one) are great. Aside from that, though, my advice is simple. GOOD LUCK, you'll need it.

I'd advise starting with an outline and three or four backup plans. Go with what works. They'll love you, brother.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.