Dream education

Started by
12 comments, last by Eelco 12 years, 9 months ago
I am the lead technology educator at a science museum. I teach week long (15 hour instruction time) classes to middle and high schoolers on: video game programming, 3d modeling, animation, robotics, & electronics. [actually, the video game programming is taught as a sequence of 3 classes, for a total of 45 hours]

I basically have free reign to develop new tech classes. What exciting technologies, skills, concepts, etc do you wish you had been introduced to as a middle or high schooler? Go nuts - anything science or tech related is fair game.

Two quick things to keep in mind:

1) Software should be free (or rather cheap) and preferably cross platform. For example, we primarily use Game Maker, Unity3d, SketchUp, Arduino and GIMP over their alternatives. If its costly, the chance of them continuing to explore the subject at home is reduced to zero.

2) As part of our mission statement as a not for profit, students must make and take home something complete and tangible at the end of each week of instruction. For classes where this is not applicable (like video game programming) they must leave with a completed game they have made, etc.
Advertisement

I am the lead technology educator at a science museum. I teach week long (15 hour instruction time) classes to middle and high schoolers on: video game programming, 3d modeling, animation, robotics, & electronics. [actually, the video game programming is taught as a sequence of 3 classes, for a total of 45 hours]

I basically have free reign to develop new tech classes. What exciting technologies, skills, concepts, etc do you wish you had been introduced to as a middle or high schooler? Go nuts - anything science or tech related is fair game.

Two quick things to keep in mind:

1) Software should be free (or rather cheap) and preferably cross platform. For example, we primarily use Game Maker, Unity3d, SketchUp, Arduino and GIMP over their alternatives. If its costly, the chance of them continuing to explore the subject at home is reduced to zero.

2) As part of our mission statement as a not for profit, students must make and take home something complete and tangible at the end of each week of instruction. For classes where this is not applicable (like video game programming) they must leave with a completed game they have made, etc.

Kinda art/tech mixed and really requires an art teacher, but 3D art would be a lot of fun and Blender is free.

Outside that I wish there were an internet course that was more than basic HTML. Kind of annoying how all the low level classes spend 6 month teaching you html, which can be taught while teaching more interesting stuff like javascript/php/whatever.
It is unlikely that your students will create a complete game. Every few months there are competitions where groups of experienced developers spend that much time and still struggle to complete a toy game.




The choices of GameMaker and Unity are good, since it gives a solid base. You might include Maya since they offer the free Maya PLE (Personal Learning Edition), or Blender if they don't. It is more likely for them to extend an existing game, so that's a good choice but still difficult.

What you describe is a difficult time window.

For programming you need a significant educational investment before having the knowledge to do anything complete and tangible. Even with an engine, 15 hours is not enough time to take teens who have never seen code to comfortably writing Unity modules. 15 hours is not enough time to take teens who have never played with a modeling app to comfortably generating rigged models and scripting their animations.

But if they come to the class with any significant prior knowledge, starting them at that same level would be a waste of time. If a student has already been tinkering with C# for a few months, or the rare individual who has been using with it for a few years, these people can jump straight into Unity programming. In fact they probably have tried it already and are expecting bigger things from the class. The same is true for the kids who have already been using modeling apps on their own at home, they'll be a few hundred hours ahead of the complete novice.


Your requirement that they leave with something complete and tangible combined with the practical requirement that they may join the class with no prerequisites makes this a very difficult assignment. I don't envy you the task.




As for my wish list, it is short and nuanced:

Wish List ---> I wish more beginners had a more solid grounding in the fundamentals, and understating of the importance of the fundamentals.


I'll start with math. Games are applied mathematics, especially linear algebra. They need to know the fundamentals. Not just the raw math, but also how to apply it. I don't know how you'd teach that in your class, Linear Algebra for games: "In this hour we'll study normals, the dot product, and a few of their uses in games". Very useful, very important, and for most kids very boring.

Then there's the basics of algorithms and structures. They are the "how" behind every solution. Most beginners are asking for help writing complex rendering suites but don't have the fundamentals to even manipulate simple trees. Algorithms and data structures can be studied for years and they take years of real-world experience to master, but it isn't glamorous. "In this hour we'll learn about binary trees and red-black trees", followed by "In this hour we'll learn about depth-first and bredth-first tree navigation." Eventually you'll get to the point where they can build and navigate a scene graph in preparation for rendering. Again very useful and important, but also boring and unlikely to result in a completed game at the end of 45 hours.

The basics and fundamentals of communication. The basics and fundamentals of navigating a corporate maze. The basics of logical reasoning and simple problem solving. The basics and fundamentals of <insert many other topics here>

Most of these take far more than a 15-hour class, generally they are semester-long university courses.
I always liked robots. How about some simple electronics project they build that makes something walk/move?

I always liked robots. How about some simple electronics project they build that makes something walk/move?


This is actually useful in a lot of ways. It will help you with CS because you'll probably need to do some programming for it, but also in that it will make the students look at complex wholes in terms of their most basal components, which will help pretty much any avenue they decide to go down.

I always liked robots. How about some simple electronics project they build that makes something walk/move?


If the class gets founded, some Lego could do the trick there.
[size="2"]I like the Walrus best.
The classes I outlined already exist and have been taught successfully for the last couple of years. There is no 'unlikely they will make a complete game'.

A quick run down of what we already offer (grade range in brackets):

Video game 1 [6,7]: Game maker. We make a simple game first day (3 hours), & spend the remainder remaking the classic arcade scrolling shooter 1945. Teaches logic, inheritance, scope, Pythagorean theorem.

Video game 2 [7,8]: Game maker. Create a competitive multi player 2d tank game. Teaches scripting, looping, variables, branching, functions.

Video game 3 [8,9]: Unity. Create a single player 3d platform/exploration game. Teaches Unity-specific concepts, JS scripting, how to read documentation and leverage the community properly.

Modeling [6,7]: Half the class is spent in SketchUp recreating a house. The other half is spent in Unity creating a terrain with procedural tools. House is placed into Unity; this nontrivial with free SketchUp.

Animation [8,9]: First half focuses on 2d animations made in GIMP to create optical illusions. Second half is in Unity.

Electronics [9,10,11]: Hydraulic analogy to particle theory to PNP gates to servos. All basic/common components are covered.

We have robotics programs targeting everyone from 2nd graders to high school seniors (hand-soldered Arduino-powered car controlled by Playstation2 controller). I also coach about a dozen First Lego League teams. Students (9-14 yro) learn about integrals, derivatives, and create their own PID single sensor line follower.

Funding for these classes is not a problem, but due to the format per-student costs must be manageable (can be higher for older students).

HTML class is not out of the question, but Im not sure how to make it worthwhile/engaging. Ive written plenty of HTML, but it was all in notepad. Times have changed and I dont know what the tools are to write it.

I get maybe two or three students per season for whom the material is boring/below them. They are accelerated through the other classes (as maturity allows) and I volunteer on the weekends to help them excel.

My background is in math/comp sci (but my talent is teaching), so I squeeze math into every course in every way I can think of that wont disenfranchise the 'math is boring' crowd. Karnough maps, calculus of infinitesimals, dot product, big O notation, trigonometry, etc all regularly make their way into my classroom. Quaternions and tensors are mentioned, but I dont try to teach them.

In general the modeling/animation classes need the most work. Im pouring a lot of effort into getting my right brain into shape, but we will be hiring someone who specializes in those areas. The video game 3 class will be retooled next year, hopefully with additional high school offerings.

Im currently working on minimalist DotA clone I hope to teach in a special, 2 week long class. Time is of course an issue, as Im sure you are aware. Id go so far as to say almost every part of such a game could easily have 15 hours devoted to it (as a short introduction!): networking, gui, ai, shaders, etc.

It is unlikely that your students will create a complete game. Every few months there are competitions where groups of experienced developers spend that much time and still struggle to complete a toy game.


This is true, but I think most of the difficulty in making a good competition game comes from the fact that it's actually meant to win, meaning a lot more effort needs to go into design, play-testing, and polish. Making a working prototype is really only 1/10 the work of making a finished product and still quite satisfying. It's by no means easy, but also not necessarily completely unattainable.

As for my wish list, it is short and nuanced:

Wish List ---> I wish more beginners had a more solid grounding in the fundamentals, and understating of the importance of the fundamentals.
(...)
Very useful, very important, and for most kids very boring.
(...)
Most of these take far more than a 15-hour class, generally they are semester-long university courses.
[/quote]

I think there is, in fact, no shortage of kids who like math, logic, business, and communication; they're just not necessarily the same people who are going to be taking a class dedicated to making games. As you mentioned, those can (and should) all be complete classes as well, so why try to consolidate them all into one class that can't possibly teach any of them?

At this point there are perfectly viable options that let someone skip out on most of the "boring" linear algebra and make a good game all while still exercising their programming and logic faculties. I'd say it's perfectly reasonable to learn these skills after someone has already started making games. In fact, I'd say that this gives them a better chance of actually finishing something.

Consider that it's possible to write working C code without having the faintest idea about assembly, processor architecture, or what "malloc" even does. The traditional style of teaching says that when a person does learn these things, they'll start writing better C code as well, but that doesn't necessarily mean that they need to know these things first.

As you say, it's hard enough to make anything in three weeks, so why worry about things that couldn't really be covered in any useful way in a three-week game programming class?
-~-The Cow of Darkness-~-

It is unlikely that your students will create a complete game. Every few months there are competitions where groups of experienced developers spend that much time and still struggle to complete a toy game.


Just to address this one point, I completely disagree.

When I was a teen I did a two-week course at Digipen and all of us came out with a finished game. Many of the kids there had NO experience with programming. A game from scratch is more than doable, you just have to adjust what "scratch" means and what a "finished" game looks like. We were given a working wrapper to handle any complex code. Bitting, drawing, windows code, input, etc was all handled via the wrapper.

Yeah no one had a game with 40 hours of gameplay, but we all had something we could play and show our friends, and it was awesome.

If you want to see what our team made, here is the link. You can see it's nothing complicated, but we had a blast with it: Duck Slaughter
There is no point to debating whether or not you can make a fun game in 15 hours.

You can, and we do.

---

Blender has a hell of a steep of a learning curve. If I could figure out how to overcome that, Id do it.

This topic is closed to new replies.

Advertisement