As a high school teacher (13-17yo kids) in Brisbane, Australia, I am looking at some new ideas in the classroom for my teaching areas...... IT , Physics and Maths.
In the IT area I am currently working up an extended work proposal that will have the senior students (16,17 yo) developing game scenarios that I can re-use for with my younger maths and science classes.
As this is not an education/teaching forum I won't labour the teaching side of this but rather outline my thoughts on the other side of it.
Imagine a classroom where the senior IT classes no longer have to write a "salary database and Payroll system" for their major assignment (how dry is that!!) but rather they get to script up a game scenario based on a specification (giving them enough "room to be creative" but also making sure that the demonstrate the necessary competencies so we can assess their work.
There would also be good scope for collaboration across subjects with the multimedia/design classes helping with some of the artwork, and I have at least two english teachers who see the gaming environment as an increasingly significant "storytelling discorse" (much as movies are now recognised as a valid story telling genre - Bladerunner is a much studied movie in schools)
Anyway, the specification I would give my C++ programming classes would relate to the tasks I have in mind for my other classes. The study of AI is another area of extention into the gaming world. Maybe my programming tasks would guide them through modding out a scenario in which certain maths concepts are "discovered" within the game play.
I have spent some time now messing with UnrealEd and the Unreal engine, but am thinking I will eventually swap to a game engine/framework that places less emphasis on blood and carnage and more on problem solving and observation.
As an aside, I am also going tobe teaching senior science/physics in a year or two and see games like Half Life 2 etc being a rich simulation environment there.
I'd be happy to collaborate as well on any shared resources. As part of my post-fgrad studies I am currently working through some of this stuff in a formal way and would be willing to share throughts.
Cheers,
Jkay
If only there were more teachers like you.. last IPT lesson I had at school the teacher told us to open VB and explained that we were going to make a racing game. The game consisted of two pictures racing across the screen using an inbuilt clock to judge who would win. Anyway it was completely unorganised and I fixed many things wrong with it (I don't bother with VB so I don't get how I fixed it, logical thinking I guess.)
But yeah C++ should be brought into the classroom. I know my school doesn't teach it. Good luck with the proposal hope it goes through, you may even start a new umm, forget the name, well anyway I have a memory block but I am sure you know what I am talking about, compulsory topic in the subject.
I am personally against trying to teach C++ in High School, or even at University.
First of all C++ is a very advanced langauge in the scheme of langauges, I would pick something easier such as Visual Basic, Blitz Basic, Java, Ruby, or some other scripting language first. In those languages you can get immediate visual results of what you've programmed which makes it easier on the student learning where they can get positive feedback without the teacher being there with them. Scripting langauges are also better as they can be sandboxed more easily so that the student can be prevented from destroying the system.
Secondly, teaching C++ can, and probably will, be boring as hell to those people that are not technically inclined and not into programming games. Those people would just be bored stiff with this programming concept and would likely not choose it as a future career. For the other people then they would come out of the course with a mistaken impression that they can program in C++, which would most likely not be the case. C++ is a complex beast, the different compiler implementations, the different runtime environments, the different irregularities and complexities of the langauge mean that you'd have to learn and keep using it for several years in order to at least become proficient at it.
I know this might sound a bit harsh, but it's the truth. I though I knew a lot about the language when I was in High School, but I was as clueless as they would come. It's only after completing University and learning about a whole sleuth of other languages and using C++ during that time that I have realised how complex a language it is. I now would rate myself about a 8.5-9.0 / 10.0 in programming it, but every now and again I read an article from someone and am in awe of how much more detail they know, and it reminds me that I have long to go before I can be a master at it.
My apologies for people who consider this too much of a rant.
^ Good point - I dived in the deep end and started learning C++ as a first language. It took me a good year just to force myself through the first book I bought, and even though I understand the main concepts (inheritence, polymorphism, etc.), I'm still pretty awful at it (often looking up exact syntax, peculiarities... ugh). As much as it pained me doing I.T. last year (11), being forced to build trivial VB examples (that racing 'game' rings a terrifying bell), learning C++ in high school is probably the other extremity.
If you want more focus on artwork and storytelling, you could always have them use a game maker of some sort. Maybe they're taboo here [;)], but my first experience with game development was via Klik 'n' Play in Grade 6; I learnt basic concepts, such as variables and flow control, whilst using RPGMaker. They're not as flexible as coding, but eh.
BTW, I'm new. Do you guys have an intros thread, or shall I just continue butting into threads? [:D]
From the lan that I attended last weekend I was shown a nice prototyping toolset called BlitzBasic, basically a really easy to use fast prototyping tool - language, compiler, IDE, etc, all the nice things that you'd want, including demos with source code, 3d models (I Think). I would say that this might be a very good tool to use, it currently costs about $100 US for the package, but there is an email at the bottom to contact if you're interested in using it for educational purposes.
Personally I would try and stay away from the full blown 3d engines containted in current games, as they require a hefty knowledge of C++, and most of them (information gathered from various sources that have used these engines) are very messy/hard to work with. Even if you are teaching C++ I might suggest looking into something like the torque engine by Garage Games, though that will cost a bit none-the-less. But then another question comes into my head, why teach C++ as a first language? Java, Python, Basic would all be more suitable I would imagine.
(P.S. Sorry for being soo rambly, I've just come back from working a graveyard shift.)