Programming

For students interested in a career as a game programmer, the CSEE department offers the Game Development Track within the Computer Science BS degree. This track follows the best industry advice to prepare students for technical positions in the games industry. At the same time, it emphasizes fundamentals that will be equally valuable in other types of positions. Here is a synopsis of the track. Since several of these classes are shared by the non-game Computer Science students, for each we indicate some skills that transfer to the games industry.

All CMSC BS requirements plus…

  • Non-Computer Science Courses
    • PHYS 121: Introductory Physics I
      Physical dynamics: collisions, explosions, gravity, etc.
    • ART 380: History and Theory of Games
      Game design and what makes a game playable
  • CMSC 400-level electives must include
    • CMSC 435: Computer Graphics
      All visuals, efficient rendering, interaction
    • CMSC 471: Artificial Intelligence
      Opponent agent behavior, path finding, strategy
    • CMSC 493: Games Group Project
      Cross-disciplinary teamwork, software engineering
    • and two of the following
      • CMSC 437: Graphical User Interface Programming
        Concepts of user interfaces, especially menus
      • CMSC 445: Software Engineering
        Planning and development of large software projects
      • CMSC 455: Numerical Computation
        Sources of errors and ways to avoid them in both graphics and simulation. Especially important for graphics on game consoles.
      • CMSC 461: Databases
        Online game distribution systems, art content management
      • CMSC 479: Introduction to Robotics
        Path planning and agent AI
      • CMSC 481: Networks
        Peer-to-peer and client-server networked games
      • CMSC 483: Parallel Processing
        Massive multiplayer online game servers, using multi-core systems
      • others with permission (contact olano@umbc.edu)

The following have been pre-approved as additional courses satisfying the 400-level elective requirement:

  • Some CMSC 491 offerings (491 is used for one-time or occasional classes)
    • Computer Graphics for Games (Fall 2007, Fall 2008, Spring 2012)
    • Cell Processors and Applications (Spring 2008, Spring 2009)
    • Mobile Platform Development: iPhone and iPod touch (Fall 2009)
    • Game User Interface Programming (Spring 2010)
    • Multi- and Many-core Programming (Spring 2010)
    • Advanced Computer Graphics (Spring 2011)
  • CMSC 479: Introduction to Robotics (Spring 2010)
  • For BS/MS students, or with department approval to have a 600-level class count toward your 400-level electives:
    • CMSC 635: Advanced Computer Graphics (Spring 2008, Spring 2009, Spring 2010, Spring 2011)

There is also a flyer with the list of courses and a chart showing how they fit into the CMSC degree program.