Gromit, for one - most programming teacher (notice I said MOST!) can only do stupid programming copy/pasted from a book. None of them do really difficult stuff.
If they knew how to do really good programming they'd get a programming job and make a lot more money.
Now on to answering the actual question - If you're writing this for DOS (which a fair amount of CS classes are still DOS-based) then you'll have to look at overriding the keyboard ISR, that involves some nasty 80x86 Assembly and other garbage that would take too long to explain here.
If you want a full explanation of keyboard ISRs and a good intro book for DOS game programming look for "Teach Yourself Game Programming in 21 Days" by Andre Lamothe. It'll take you longer than 21 days to read and fully understand probably, but it's well worth it.
However, DOS programming is becoming almost nonexistent in games, so you might as well make the move to Windows as soon as possible.
In windows simultaneous keyboard input is a cinch, and the general code is in a post above me.
However, if you want an explanation of how this code works, or an introduction to windows programming, or an intro to game programming in windows then I'd HIGHLY, and I mean HIGHLY suggest the book "Trick of the Windows Game Programming Books" by Andre Lamothe.
I barely knew what "Win32" meant when I got that book, and now I feel confident that I know DirectX, basic Win32 code (very basic, but enough for a game) and all kinds of cool stuff.
Anyway, that's my thoughts.
P.S. - one last note : If (when) you go to windows, use VC++, it has the least problems with DirectX and all the documentation on MSDN assumes you're using it (to my knowledge...)
------------------
gameguru4@yahoo.com