Looking for ideas on a course to teach GLB to youth

Previous topic - Next topic

Falstaff

Hello everyone,

I have been offered the opportunity to put together a course on computer game programming for youth at a local community center. They'll probably be in the age range around 12-15, and I think the course will run once a week after school for about 90 mins for 8-10 weeks. I am looking to use GLBasic to teach them!  :) I was wondering if anyone had any suggestions on what sorts of things I should include? I'll be covering of course the basics (variables/loops/functions), but I was wondering what might be a cool and realistic game project we could aim to work towards in say the last four or five classes. Maybe something like an old classic game like space invaders, or possibly a plants vs zombies clone?

Also, I am looking to get some feedback about the best way to approach such a class.. I have only taught programming to my son before, and it was obviously 1 on 1, so I could directly guide him through every statement. With an entire group (of say 10) kids, I won't be able to give the same attention to each individual. Should I maybe lead them through some code on a projector as a group, and then pose a problem for them to try to solve own their own? Also I was considering having them pair up and do "paired" programming, but maybe the kids might not appreciate that since they likely may not know each other before hand..

ah well just some ideas, let me know what you guys think!

hardyx

Tron, Space invaders or Pacman clones are easy to make. But you must to begin with little simpler proyects like "guess the number" or "hanged man" to practice the basic sentences, PRINT, IF, WHILE, etc. For example, you can begin with a little program that ask the name and says "Hello " + name$. Then you can modify to ask a secret password, and you can explain the IF command. Then you can show how to print "I musn't talk in class" 100 times with the FOR sentence, like a little joke.

erico

Hi Falstaff,

I have been working preparing a practical GLB game programming workshop too.
Classes will sustain 10 kids on a probable 4h per day through 5 days.
Target is around college and pre-college kids so they may fall more on the 18-20.

I plan to start with the infamous ´hello world´ but quickly extend that into a text adventure with rooms and simple decisions (CYOA).
I will follow the if-adventure-book kind of structure on that and such dosen´t even require a loop.

So I hope with this I can start mining some creativity from them to apply into the simple code and I hope they can extend that code content wise(more rooms, more options).

A good study of those game books prior to teaching it is important (IMHO).
You get a great study of them here:

http://samizdat.cc/cyoa/#/_

ps: I take the concept of a looping program just a bit too much for starter as when I was a kid it took me an year of self teaching to actually understand such concept (I was 14).

From there, I intend to get to the gfx part, so improving on the CYOA game should do good.
Then Pong to get to the ´looping´ thing, input, sprites, etc.

This is more or less how I plan to start. Hope it gives some inspiration.
Be aware that TEXT is not the kind of thing kids are interested to start with.
But if you are going to teach an extended group of more mature people, it will do good as text is somehow easy.

Also, when creating a CYOA, things are infinite textwise, you can do that describing how you woke up today or even make a game on you baking a cake.
The ability to quickly have friends playing such games makes it versatile and to add pictures is easier as anyone has cameras nowadays.

The simple CYOA game without loops can actually be seen as an engine, remaking a different adventure content wise is easy. So I also hope to get the concept that "when you code a game, you are actually coding an engine for that specific game" through.

erico

Quote from: hardyx on 2012-Sep-20
... Then you can show how to print "I musn't talk in class" 100 times with the FOR sentence, like a little joke.

No joke, I believe that is the way.

See, in my path of finding a way to break the taboo of programming (yes, the general people believes only aliens can do), I best correlate it with something people of several generations are bound to understand ( I mean USE).

So, creating a game/app can be perfectly compared (in my solo toasted mind) to writing a letter to someone. Better, write an email to someone, kind of the same thing. You can use WORD for your letters, you can also use gmail or even notepad, as they are all text editors.

GLB is a text editor to send emails to your computer and, when you write him, you only tell him orders.
He will always immediately read it and obey the orders.
But there is a special way to talk with him, must be in english , and in a very direct way.

I think that is a good approach/start, as everyone with a hint of interest in game/app programming is at least bound to have used a text editor or email program/site.

Now, as with this path, you see, your computer is your most loyal friend, as if you email him ordering to write "I musn't talk in class" 100 times he WILL do it (really fast!), in fact, he is so much of your friend to the point of writing that forever if you wish.

Hope it inspires, I´m more or less taking that approach on course plan here as people will be older, it gets really funky explaining pong that way :).
I´m not sure though, that would be good on the 12-18yo range. Their attention spam might require more then TEXT on the action side of things.

hardyx

Quote from: erico on 2012-Sep-20
A good study of those game books prior to teaching it is important (IMHO).
You get a great study of them here:

http://samizdat.cc/cyoa/#/_
Great page, thanks. I was a big fan of this type of books.

erico

Strangely, I happen to own all those book from my childhood, I got them home now from my parents place so I hope to use it in class to get the message through should the course work. That page is really a work of love, I have posted about it last year while I was working out a simple engine to push such.

It is really funky when you think of games, like in the past, mostly board games. Then books evoluted to a certain level of interaction (hyper text?), it´really crazy.
One way or the other, converting board games or book games to computer is more or less a simple thing to do compared to a visual action game.

I wonder should we be on the steam technology and books kept evoluting on the interaction where would we be with it nowadays?
Most famous book games must be the AD&D kind of things, where you use dices. CYOA I guess is the most simple of its types.

...but then, you also have some marvelous book games gems, like this one I have from childhood:
http://www.boardgamegeek.com/boardgame/798/ace-of-aces-handy-rotary-series

Ace of aces, it is an action visual biplane dogfight book game, first person perspective. Played a lot with my brother, isen´t it insane?
Shame no one wants to port DOOM to books :(

But on that page, check the other book games with similar mechanics, you get tie fighters, dragons, jets, etc, hehe.

[attachment deleted by admin]

Falstaff

That's an interesting idea to relate programming to emailing orders to a friend, maybe I'll try something like that :) I was definitely going to drive home the point that computers can only do exactly what you tell them to, so you have to think about exactly what it is you want them to do to make them work!

I'm now thinking of maybe trying to take the approach of having a lecture at the start with me going through some concepts on a projector or something, and then giving them some sort of simple program to code, and then just running around trying to give everyone a few minutes of time for 1 on 1 questions.


erico

Great, I´m still working on this course of mine too.
It is actually part of a plan to implement a technology/digital pole on a great institution.
We do have backups from some really nice companies, like IBM.

Biggest part of this pole, is related to mainframe computing and low level programming.
My part, is to prepare a test-workshop on games to check the market on it.
People down the instituion already knows games are a high point into getting people coding.
They did show a special interest on it.

Should the institution send us a green light on moving this, I will have to prepare/finish material for this course.
I hope I can make that material available to all of us, so we can use, improve and discuss it.
It will primarily be in portuguese, but I should have no problem getting it translated.
Also, should it work, it will start early next year.

On the ´email a friend orders´ idea, it is mainly because I want the workshop to be 99% practice.
I want people to learn doing, I will try to avoid theory as much as I can and work on relationships on things people already do.
It may sound weird, but that is more or less how I learned myself.

Now, one nice way of working an explanation on the ´email´ thing.
Suppose you send your friend an email telling him things to do, like:

QuoteHi uncle, how are you doing?
I need this favor from you, could you please get that paper sheet I left there, paint it blue and write "Hello world" on the top left corner in white?
When you finish doing that, show me the result by email and  wait for me to call you on phone? I then may go pick it up.
Thanks man, see ya.

Pretty clear uh? Now you don´t talk to uncle Lazarus that way (best put a name :P), he is your most loyal friend but he kinds of don´t like chit chats, he is the kind of guy that will only read straight clear detailed orders, and if you say ´hi´ or ´thanks´, he won´t even read your email and won´t do the things you ask him.

That way, you can slowly convert such simple email into code and take the chance to teach GLB nomenclature in a funny way with the excuse that uncle Lazarus is a very excentric person (this could have a great fun impact on kids).
So, the first step, is to clear the chit chat and get the precise orders in line and clear on our email, even though that would not be polite when talking to someone.

QuoteGet the paper sheet.
Paint it blue.
Write "hello world" on the top left corner.
Show me by sending a pic.
Wait for my call.

Ok, so that way is better and clear right? But uncle Laz, as excentric as he is, won´t read it either. Why?
Because the order ´paint´ is not clear enough, paint with what? how?
´Top left corner´ can be soo many things, Laz don´t like subjective things, you have to tell him precisely what this ´top left´ means, you have to give him coordinates where you want it so there is no mistake.
Now, about ´Blue´, what the heck, there are millions of blue tones, you have to be precise on that, similar to going into a store to buy a buck of paint of an specific color,
you don´t say blue, you give them precise information on what exact blue you want, so is with Laz.

You can go working on this idea till you get to this:

Quote
setscreen 320,240,0
clearscreen rgb(0,0,255)
print "hello world",10,10
showscreen
keywait

Sorry I got carried away here, I´m currently working on it so the subject hits right on my head.
Imagine explaining such on a pong...
hey clear the screen, draw a pad, show me, now check if I want it to move, if I want, then clear the screen, draw that a bit up...
You can actually have a game going that way, but if it is a human way, it is going to move 30 frames per month (30 fpm! :O)

edit...forgot the showscreen hehe.

bigsofty

The most important thing with teaching kids is to grab their interest as quick as possible. Entertain first, educate a very quick second. You will need to have them interested within the first 10 minutes to hold that interested. Games are a universal passion, start of with the simplest of games, say Noughts and Crosses for example. Give them a random AI player, let them beat it, show them then how to add rules to improve the opponent. All this can be done with text input and output to speed development. Techniques include, variable assignment, arrays, IF/Then statements, logical operators, loops and basic I/O. Work your way towards graphics, then animation and sound.

Planning will make your life easier, if you do not have time, grab a good book with great examples. Take these and make them your own, add notes for the students and teaching ones for you(think of it as your script), give them some informal home work(it does not need to be code, some research into a subject for example). Encourage group suggestion via question and answer sessions. But the most important thing when teaching kids is to maintain a fun within an edutainment atmosphere, with regular rewards IMHO.
Cheers,

Ian.

"It is practically impossible to teach good programming style to students that have had prior exposure to BASIC.  As potential programmers, they are mentally mutilated beyond hope of regeneration."
(E. W. Dijkstra)

erico

"regular rewards" hehe, say, bigsofty, that just reminded me when once I was teaching kids (not game, other things) and as rewards, I bought a bag of those hardcore acid pepper chewing gum as rewards of correct answers... :D

The most fun class I ever tought...people there remembers me dearly till this very day. seriously! :good:

r0ber7

Hey Fallstaff,

Awesome!  =D

I haven't taught any classes, but I have worked as an internet helpdesk guy and I've helped many people with their computers over the years. One thing I use a lot in explaining what I'm doing is metaphors. Like erico's example, people understand quickly when you talk in concepts they already understand.

I have one additional thought. While it will be good to start with the basic IF THEN and FOR stuff, make it visual as fast as you can. Moving a sprite with the arrow keys shouldn't be too hard to understand once the basics are in place, and it's incredibly rewarding.

Best of luck to you. :)

hardyx

This is the first book I take in a public library when I was 12 yo and made me crazy for computer programming. In this book, aimed for kids, explain BASIC programming in a funny way. They use metaphors and comics to teach this. The computers are like dumb robots wich you can give orders for making a task. Explains the variables like boxes where the robots save values of the program. You can imagine a computer like a place with micro-robots executing your orders. I have a good memories of this book.

http://pictures2.todocoleccion.net/tc/2011/09/29/28699405.jpg

mentalthink

I don´t read the thread completly... but I think the best way for teach kids, it´s whit a lot of graphics and a lot of colors... when we are kids, what computer was better... Amstrad CPC and C64, of course Spectrum was very fun, but don´t have a lot of colors...

I think will be very nice make games, whit some "heroes" they like... I suppose in this generation all kids meet Mario , sonic I´m not sure, but begging whit simple things and making a bit complex programs...

Another point this it´s very interesting... I thinked the kids don´t like program yet, the forum had a trehad called, "Because Jonny don´t want program"... get again the 80´s spirit can be very nive for this childrens in the future...

okee

hardyx, I remember that book, wanted to get it so bad when i was a kid but we didn't
have a computer so my mother didn't see the point.
Would be an idea to take one of those old books and update it with GLBasic code
Android: Samsung Galaxy S2 -  ZTE Blade (Orange San Francisco) - Ainol Novo 7 Aurora 2
IOS: 2 x Ipod Touch (1G)

erico

What? How come she didn´t see the point?
It says " No necessita computadora" right there! :D :P

The cover is not strange to me, I had some books too, but most insisted in teaching more trs80 stuff then the color computer variation.
So,  I had to deal making it work... poor me.