Game Programming and Complimentary Skills for the FLL Project

Several years ago I started trying to offer some programming and other technical courses in the local community.  As a scientist, engineer and father I was eager to give my kids and others early exposure to some of the rigorous and systematic thinking of STEM.  I also hoped to demonstrate to them the fun of transforming creative ideas into useful working creations – a unique benefit of engineering in our increasingly abstract world.

Engineering+Habits+of+Mind+infographic

The general rule of thumb is that kids can start to cognitively deal with the complexity of programming around 8 (although some start as young as 5 or 6).  My oldest was already 10 after several failed attempts in launching something with existing local organizations, so I was determined to get something off the ground this year.

My initial idea was to teach game programming due to the broad appeal, ubiquity and growing influence of gaming culture.  However, FIRST LEGO League had well-designed, comprehensive, and successful turn-key program.  There is no such equivalent alternative in for teaching gaming to kids.  The closest equivalent I could find were gaming contests such as using Microsoft’s Kodu Challenge which are narrower in scope and less field tested.

ms_kodu_cup

One nice aspect of FLL is that it allows for growth as a team ascends the experience curve.  For example, I’ve been told veteran FLL teams that master the Robot Challenge often pour their energy into the Research Project.  The fact that patentability seems to be something of a Holy Grail for a world-class Research Project shows that FLL wants to drive top teams into new fields of STEM research beyond just robotics.

The open-ended nature of the Research Project allows teams to incorporate a wide variety of other technologies into their FLL experience.  Some of the more interesting Research Projects we saw at our last competition were web sites, apps, games, and even microcontroller (Arduino)/microcomputer (Raspberry Pi) devices.

Therefore, if my schedule permits, I’d still like to offer some courses outside of FLL robotics that would be complimentary in equipping our kids with technical skills they could bring to bear in the FLL Project.  These other engineering skills are valuable in their own right by offering a very different engineering perspective and cognitive challenges than the FLL Robots Game yet they can be folded into FLL to create some impressive Research Projects.

thinklikeanengineer__course-landing-still-1414460666.45

With this in mind, here is an excerpt from a recent email exchange I had with an early high schooler who is very interested in game programming.  I discuss several approaches I could take to teach this as well.  I’ll be querying our existing FLLers and potential others students as to which direction would be of greatest interest.


(excerpted email exchange)

Before speaking with you, I was thinking of taking a more traditional approach to teaching programming via SCRATCH or creating a simple 3D JavaScript Game.  This approach would teach the kids computer and game programming from the ground up with everything from syntax, data/logic structures, drawing 3D on a 2D surface to collision detection.  The two books I perused and would generally follow were:

http://www.amazon.com/Game-Programming-Kids-Interactive-Programmers-ebook/dp/B00HUEG8O6/ref=sr_1_1?ie=UTF8&qid=1421348673&sr=8-1&keywords=3d+javascript+game

http://www.amazon.com/Scratch-Programming-Adventure-Covers-Version/dp/1593275315/ref=sr_1_2?ie=UTF8&qid=1421348693&sr=8-2&keywords=scratch+programming

I’ve seen Unity and other physics/3D Game engines around which have the advantage of creating more interesting games by sacrificing learning about the nuts and bolts of computer programming.  My kids are constantly on Roblox which is a Minecraft-like virtual world that users can easily mod to create and offer their own multi-player game worlds to others.  I was thinking this may give them the added incentive to apply themselves if they can see all the cool things they could do.

The Unity engine looks like the default choice to teach more interesting 3D Gaming, but I’d be teaching it from scratch for my boys and others.  I would hope to cover the introduction to Unity equalivant to something you’d find in a book like:

http://www.amazon.com/Beginning-Game-Development-Unity-All-/dp/1430248998/ref=sr_1_1?ie=UTF8&qid=1421349459&sr=8-1&keywords=beginning+3d+game+development+with+unity+4

Would this coverage of Unity be too basic for you?  If I went this direction, would you be interested in being a TA for me running this class?  Although I’m not a game programmer per se, I hope there would be a number of interesting issues that would arise that would be useful for you to see how I discuss/solve them – an insight to how computer scientist think perhaps?

If I took the other approach with a more low-level, basic game programming with SCRATCH or JavaScript you could probably pick up a better understanding of programming.

One caveat is that I am trying to construct a class targeted to talented and/or passionate 9-11year olds, so at times it may seem too simplistic.  Still, a cool thing about engineering and computer science is that it is very self-paced.  So, if you’re more advanced you can hopefully still get something out of it thinking about things at a deeper level (or you can simply go home, do research and do amazing things beyond what the others are doing).

Let me know your thoughts.

game_scratch_pic-of-pacman-3unity3d

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s