Computer Science and Game Design Modules

Semester 1

Computer Environment

CS 100

This course provides a detailed examination of the fundamental elements on which computers are based. Topics include number systems and computation, electricity and basic circuits, logic circuits, memory, computer architecture, and operating systems. Operational code and assembly languages are discussed and then implemented on a hardware platform, such as a personal computer or an autonomous vehicle.


High-Level Programming I – The C Programming Language

CS 120

In presenting the C programming language, this course serves as a foundation for all high-level programming courses and projects. It provides the fundamentals of programming, including control flows, such as statement grouping, decision-making, case selection, procedure iteration, and termination test and basic data types, such as arrays, structures, and pointers. Additionally, it intensively discusses the lexical convention, syntax notation, and semantics.


Composition

ENG 110

This course focuses on generating and discussing ideas for composition and engages in all stages of the writing process, with emphasis on the development and application of critical thinking skills. The primary focus of the course is developing the ability to construct, write, and revise argumentative/persuasive essays. Assignments may also include other types of writing, such as narrative, descriptive, and comparative essays.


Project Introduction

GAM 100

This class presents an overview of the way the game development industry works and a history of game development. It exposes students to the positions and job responsibilities that each member of a game development team has, along with the industry requirements for concept pitches, design documents and schedules. It also introduces sprite animation, object motion, and input processing, which students use in the creation of a game of their own design.


Linear Algebra and Geometry

MAT 140

The two main themes throughout the course are vector geometry and linear transformations. Topics from vector geometry include vector arithmetic, dot product, cross product, and representations of lines and planes in three-space. Linear transformations covered include rotations, reflections, shears and projections. Students study the matrix representations of linear transformations along with their derivations. The curriculum also presents affine geometry and affine transformations along with connections to computer graphics. This course also includes a review of relevant algebra and trigonometry concepts.


Semester 2

Interpersonal and Work Communication

COM 150

This course provides an introduction to interpersonal and professional communication. Particular attention is paid to verbal and nonverbal communication skills, small-group communication, and conflict resolution.


High-Level Programming II – The C++ Programming Language

CS 170

This course introduces the C++ language with particular emphasis on its object-oriented features. Topics include stylistic and usage differences between C and C++, namespaces, function and operator overloading, classes, inheritance, templates, and fundamental STL components.

 


Game Implementation Techniques

CS 230

CS230 presents game implementation techniques and engine architecture. Students investigate foundational concepts of game architecture, such as game-system component separation and game flow, while learning about essential elements such as the game state manager, input/output handler, and frame rate controller. CS230 introduces Windows programming, state machines, and collision detection algorithms, which students will integrate into their own remakes of classic games. As part of their implementation, students create and expand their own collision, vector, and matrix libraries, enabling them to incorporate basic physics engines. Students survey concepts in space partitioning, particle systems, map editors, and other elements as a bridge to more advanced concepts in implementation techniques and engine architecture.


Project I

GAM 150

This project focuses on the creation of a simple game or simulation. Students work together on teams of three or four members. All projects must be written entirely in C (C++ is not allowed) and cannot use external libraries or middleware of any kind (except those provided by the instructor). Topics include effective team communication, planning, documentation, debugging, source control, testing, and iterative software development techniques.


Calculus & Analytic Geometry I or MAT 180 Vector Calculus I

MAT 150

This course introduces the calculus of functions of a single real variable. The main topics include limits, differentiation, and integration. Limits include the graphical and intuitive computation of limits, algebraic properties of limits, and continuity of functions. Differentiation topics include techniques of differentiation, optimisation, and applications to graphing. Integration includes Riemann sums, the definite integral, anti-derivatives, and the Fundamental Theorem of Calculus.

OR

This course extends the standard calculus of one-variable functions to multi-variable vector-valued functions. Vector calculus is used in many branches of physics, engineering, and science, with applications that include dynamics, fluid mechanics, electromagnetism, and the study of curves and surfaces. Topics covered include limits, continuity, and differentiability of functions of several variables, partial derivatives, extrema of multi-variable functions, vector fields, gradient, divergence, curl, Laplacian, and applications.