Core class for first-year GDD majors; Prerequisite: Game Software Development II

Languages Used: C#

Software Used: Visual Studio

Course Description: This course builds upon the fundamental problem solving skills presented in Game Software Development II. Students will learn the more advanced data structures and algorithms commonly used in game development. In order to demonstrate knowledge of such techniques within the realm of game development, students will work in teams on a term long game development project.

Topics Covered:

  • An introduction to the XNA framework including assets and basic animation
  • Introduction to algorithmic complexity using Big-O notation
  • Recursion, including advantages and disadvantages with iteration
  • Trees, including binary search trees
  • Tree traversals, including pre-order, in-order, and post-order
  • Introduction to client/server (network) programming
  • Sorting algorithms (bubble sort, selection sort, insertion sort, shell sort, quicksort, mergesort, heapsort)
  • Hash tables (and dictionaries), including collision handling
  • Graphs, including terminology and representations
  • Graph searches (breadth-first and depth-first) and Dijkstra's shortest path algorithm

Expect a midterm and a final, as well as a term-long group project using XNA, where the groups create their own games. Also expect approximately 4 homework assignments over the duration of the course and at least 1 ICE (in-class exercise) per week.