Computer Science in Real-Time Interactive Simulation Modules

Year 1

Computer Environment

CSD1100

This module provides students with a solid understanding of the fundamental elements on which computers are based. Topics covered include number systems, representation of numbers in computation, basic electricity, electric circuits, digital systems, logic circuits, data representation, digital memory, computer architecture, and operating systems. This knowledge eliminates some of the “mysteries” about hardware and provides students with a well-rounded understanding of computers. The latter stages of the module focus on assembly programming, which enhances the student’s understanding of how the computer works at a fairly low-level.
 


Composition

CSD1610

This module 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.


Linear Algebra and Geometry

CSD1240

The two main themes throughout the module 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 module also includes a review of relevant algebra and trigonometry concepts.


High-level Programming 1

CSD1120

In presenting the C programming language, this module serves as a foundation for all high-level programming modules and projects. It provides the fundamentals in 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, there is an intensive discussion of the lexical, syntax notation, and semantics of the C programming language.
 


Software Engineering Project 1

CSD1400

This class presents an overview of the way the game development industry works and a history of game development. It will expose 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 will also introduce sprite animation, object motion, and input processing, which students will use in the creation of a game of their own design.


Calculus and Analytic Geometry 1

CSD1250

This module 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, optimization, and applications to graphing. Integration includes Riemann sums, the definite integral, anti-derivatives, and the Fundamental Theorem of Calculus.


High-level Programming 2

CSD1170

This module presents differences between imperative programming as practised in High-Level Programming I module and object-oriented programming. It also enables students to learn the concepts of data abstraction, inheritance, polymorphism and interface versus implementation. It introduces the challenges of building large-scale programs and how object-oriented programming facilitates it. Students learn the Standard C++ and Standard Template libraries and how to use them effectively in solving problems. Students also learn how to apply module concepts to implement data structures and programs to solve various problems.


Game Implementation Techniques

CSD1130

Game Implementation Techniques presents foundational data structures, algorithms, mathematical concepts and techniques used in the design and development of two-dimensional real-time interactive simulation and game software. Topics covered include event-driven programming, game engine design and architecture, real-time rendering, user interaction, state-machines, basic animation techniques and collision detection.


Interpersonal and Work Communication

CSD1650

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


Software Engineering Project 2

CSD1450

This project focuses on the creation of a simple game or simulation. Students will work together on teams of three or four members. All projects must be written entirely in C (C++ is also 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.