Teaching Programming

Started by
34 comments, last by MaulingMonkey 19 years, 6 months ago
Skipp basic, it's no point, also skip teaching them 3d at their first course. The most important thing is to understand how to build a game engine.

I tech several game related courses at college level.
Below you can find a brief layout and the order of some technical courses.

The initial gamedev courses (year 1 & 2) looks something like this:
- Math (discreet)
- Java
- C++ (including some STL)
- Gameprogramming 1 (game engine dev with SDL, incl. collision, animations etc)
- Advanced C++ (singletons, factories, more template prg, avd. polym., memory managers etc)
- Math (algebra, algo, graphs)
- OpenGL
- Gameprogramming 2 (3d engine dev incl. collision, quad & octree etc)
...
then it continues like this with network, ai, physics etc..

So do NOT try to have a 3d game dev. course without good knowledge in c++ or in graph theory, they need to understand bsp techniques etc.

Better if you go for 2d or something more easy so they will actually learn how a game works.

/martin
Advertisement
I've done a course like this using QBasic in the past, the students coming into the course had qbasic experience but who ever the hell taught them got them to label their lines with numbers instead of labels. Most of their code was total mess. goto 1020 isnt exactly descriptive...

Anyway, With QBasic, it is fairly restrictive.

I would say to just pick C as your language, but only teach them what they need to know. The basics of memory, pointers and functions should do.

Maybe just start off building up a text based adventure then perhaps introduce glut when you feel they are ready for it.

Good luck
~ Steve
C++ + SDL. Python would be my second choice. As long as you keep to the basics, C++ will do fine. I have this C++ book that's incredibly hard to understand, and I skipped the OOP part, read another book that explained structs very nicely, and made my first game. So, keep to the basics and use SDL. SDL is good because it's simple and can be extendable (they can make their games support 3D fairly easily). Python/PyGame is my second choice because it is not a full-fledged programming language, and so is a bit simpler and more lenient, but is still very useful in the modern world. Whereas I don't know many people who use or have even heard of any form of BASIC. Besides, Dev-C++/SDL is free, Python is free, DarkBasic is not.

Well, that's my opinion, hope it helps!
- fyhuang [ site ]
I'll have to try that combo out seems like a good idea given how the course is going to be taught. Thanks.
---------------------------------------------Warning: This post may contain traces of Q-Basic
I teach 3D games programming to university students, i would stay away from C/C++/STL/Java/SDL or any other lib of that sort. Ok, so most people on this forum have probably gone off and learnt this stuff themselves; and for a longer course, then yes these are certainly possibilities.

I would say that a course of that sort would require about 10hours a week for a whole year - It is not something suitable for a mini-course. (Especially if the students have not done programming before and are just looking for an overview of the concepts).

This year I ran a summer school for 16-year olds. I went through the same list of possible languages, and simple game engines, in the end i opted for flash for the following reasons :

1. Graphics editing is built in (and is quick and easy)
2. It's very very easy to add simple animations
3. Action script is easy to learn and you can easily knock out a simple game within a lecture. (I use pong as the very first game, asteroids is another possibility)
4. There's no need to ever go outside of flash within the lectures.
5. Most action script tends to be event driven, so you only need to look at very small chunks of code.
6. Students are doubly enthusiastic if they are learning a 'trade' as well. Since Flash is used all over the place now, they feel that what they are learning, is a skill to put under their belt.
7. Teaching C or C++ may only provide a benefit to a couple of the best students in the class, the rest (though they may want to learn games) will probably only attend the first session.
8. Not everyone finds programming enjoyable, so you do have to work hard to keep their enjoyment - non graphical text puts students to sleep.

I really suggest you stay away from QBasic, but not because it is a language not used in the 'real' world. Rather, it is an OLD language, and the only compiler for it (that I know of) runs in dos, etc etc. Basic is probably a good choice, but find a newer basic with a windows compiler and either a nice color-coded editor or make some keyword files yourself for a generic editor (like Crimson Editor. Such considerations would allow it to be even more accessable, since keyword typos would be readily apparent when the color doesn't change and things like that.

Python might be a good choice as well, but I know nothing about it.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Quote:Original post by fyhuang
Python/PyGame is my second choice because it is not a full-fledged programming language...
Oh god.
Sorry, I don't use Python much and I don't know too much about it... not meaning to start a flamewar though.
- fyhuang [ site ]
even Borland Turbo Pascal 3.0 released in 17-September-1986 or so is alot better choice than qbasic.
And
5.5
is alot better as well(have almost everything 7.0 have, minus oop text-mode user interface lib and some extensions to OOP). (there's even OOP in it!)
You can use slightly old version of Borland Delphi, or FreePascal(preferable).

I'm remembering swiching from QBasic to TurboPascal 7.0 That was like swiching to absolutely _ideal_ programming language. Really. Someone might say, "TurboPascal 7.0 sucks", but if so, QBasic sucks many orders of magnitudes more.

IIRC QBasic had things like
line (1,1)-(20,20)
and lack of structs. And you badly need structs for any project >8kb big, and really badly for any graphics thing.
Well if its just a mini course teach something that is easy and can be taught in only a few weeks such as flash. For a full-time course I would say C++ or Java. They are very similar so maybe even a combined course :) I would love to teach a class. That would be a lot of fun. From my experience many of my computer science teacher truely love their job.
Cheers,
-Goten

This topic is closed to new replies.

Advertisement