I made a game programming course under the title "Practical Game Programming" in my school in the fall of 2010. It was surprisingly rough, and I completely hated my voice for the next day after the first session. After that it became somewhat easier..
The structure of the course was such that I talked all sorts of theoretical stuff for a couple of hours, and then we went to a computer lab and played around with source code (based on my graphics/game programming tutorial).
I've posted the course slides here. Bear in mind that this is kind of the 1.0, "alpha" version of the course. Additional thing to keep in mind is that the target audience was bunch of kids who had never programmed outside of school, even though some kind of programming was a prerequisite.
Introduction. Who's who, what the course is about, some philosophy.
What the mandatory project is really about.
High-level structure of a computer game.
What I mean by "physics" in computer games.
Basics of optimization
What AI in games is, and what it isn't, and some techniques.
Intro to graphics
Some aspects of the games business
A few common blending algorithms
Some simple 2d collision detection algorithms
Turning ideal primitives into pixels
Some simple collision response algorithms
Getting from 0 to 1 in various ways
Some talk about asset management in the game
A few words about accessibility in games
Concept of a world larger than the screen
Particle system basics
What is good enough?
Picking apart the tower defence genre
Picking apart the match three genre
Picking apart the hidden object genre
Picking apart the breakout genre
Picking apart the visual novel genre
Picking apart the platformer genre
Some notes about how to return the project
Comments, etc, appreciated, as always.