Sixth grade questions

Saturday 14 February 2004

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?

Comments

[gravatar]
Jim 10:49 AM on 14 Feb 2004

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.

[gravatar]
freddyMac 7:22 AM on 15 Feb 2004

How about getting the kids to draw wrestlers, then vectorize them using Streamline:

http://www.adobe.com/products/streamline/main.html

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

Make liberal use of #FF0000.

[gravatar]
Peter 11:50 AM on 15 Feb 2004

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.

[gravatar]
Bob 10:53 PM on 15 Feb 2004

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.

[gravatar]
David Boudreau 11:29 PM on 15 Feb 2004

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 www.sirlin.com which is full of great deep academic considerations of this matter.

[gravatar]
Joe Grossberg 4:42 PM on 16 Feb 2004

Ned:

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

And segue into whatever you want.

[gravatar]
David Boudreau 1:07 AM on 17 Feb 2004

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....)

[gravatar]
Ned Batchelder 5:07 AM on 17 Feb 2004

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".

[gravatar]
Darius Squeak Clarke 1:07 PM on 17 Feb 2004

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.

[gravatar]
Darius Squeak Clarke 2:16 PM on 17 Feb 2004

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
http://www.papert.org/articles/Doeseasydoit.html

For a Python 3D education app check out Alice from Carnegie Mellon University: here

[gravatar]
Andy 3:16 AM on 22 Feb 2004

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:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.