At my school we have both a Software Engineering (SE) programme and Games Development(GD) programme(which focuses on game programming & technology). Both are 4 year bachelor degrees(B.Sc).
Both programmes have a lot in common, stuff that every programmer should know
- programming
- s/w engineering
- computer architecture-
- data structures
- some DB
- some networking
- some general math
The SE programme then has modules which are applicable for general purpose software development
- Operating systems
- systems analysis
- more networking
- computer science
- software quality
- databases
- more software engineering
The GD programme focus more on topics of particular interest to game programmers;
- graphics programming
- some AI for games
- physics & simulations
- maths for graphics
- animation
- on-line gaming
- HCI
- internships with game companies
These aren't exhaustive lists, they just show the intent of both programmes.
The technologies used over the 4 years also reflect the direction of the two programmes
SE= java, c++, c#, .NET, prolog, linux
GD= XNA, c++, opengl, havok, ogre3d, a little python & javascript.
The GD graduates have enough programming and s/w engineering skills to get work as general software engineers and developers, and they regularly do. A GD degree is no guarantee that you will get a coding job in a games company, a good portfolio is also required and the development of a portfolio is supported and encouraged in the structure of the GD programme.
A lot of people sign up for the GD program thinking (without reading the prospectus carefully) that the course is about gameplay, art work, game mechanics, level design, story telling, you know, all the 'fun' stuff. The get a reality check in the first week, when they have lectures in c#, linear algebra & line drawing algorithms (this is fun stuff for me!).