Spring game programming classes

UMBC computer science students should have gotten an email from me including the game development track classes this Spring. A few of those could be of interest to area game developers as well. There are options to take UMBC classes as either a graduate or undergraduate non-degree-seeking student. The ones I think could be particularly interesting to those of you already working in the industry:

  • CMSC 483 / CMSC 691 Parallel Programming (MW 5:30-6:45)
    This is probably the most appealing, at least among the PC game segment. We’ve been named an NVIDIA CUDA Teaching Center, and will have all new systems with spiffy new GPUs in our GAIM lab to show for it. We’ve revamped our parallel programming class to have a significant GPU computing component, though it will also cover multicore and cluster parallelism.
    Prerequisite: a college-level OS class
  • CMSC 479 / CMSC 679 Introduction to Robotics (MW 2:30-3:45)
    This class doesn’t really have a game spin to the content (you build a robot!), but there’s a ton of crossover between autonomous robot AI and NPC AI.
    Prerequisite: college-level introductory AI class or permission from the instructor
  • CMSC 491 / CMSC 691 Graphics for Games (MW 1:00-2:15)
    I’m teaching this one. It will consist of a bunch of advanced graphics topics relevant for games (mostly for AAA-level games). These will include light baking (path tracing, importance sampling, etc.), spherical harmonics, MLAA and other antialiasing methods, texture filtering and compression, shadows, normal map filtering, animation (skinning, inverse kinematics, quaternions), and data representation issues (floating point error, data oriented design, cache issues, etc.).
    Prerequisite: college-level graphics programming class (could be taken at the same time, though I expect that’s more classes than any working developer could handle), or at least enough knowledge of graphics that this description isn’t total greek (aka permission of instructor).

For all of these, the 4xx number is the undergraduate version and the 6xx number is a corresponding graduate version. Typically, these will have shared lectures but different assignments.