Computer Science in Interactive Media and Game Development

Computer Science in Interactive Media and Game Development

Programme Overview
The Computer Science in Interactive Media and Game Development programme arms students with a strong foundation in mathematics, programming and design theory. Building off this strong foundation, they will be well-versed in programming game logic, interaction design, artificial intelligence, databases, design tools and game design theory for digital and non-digital games, level design, system design, and UI/UX design. This programme will address the growing need of the local industry for software engineers that have deep design skills and understanding of user experience in the current digital age.

Curriculum Highlights
Students focus on the following core areas of study:

  • Software Engineering Projects
  • Game Implementation Techniques 
  • Introduction to Game Design 
  • UI/UX Design
  • Artificial Intelligence for Games 
  • Eight-month Integrated Work Study Programme (IWSP)
  • Overseas Immersion Programme (OIP)

Career Opportunities
Graduates of this programme are prepared to enter the video game industry as

  • Software Engineer
  • Software Developer
  • Interactive Mobile Application Programmer
  • VR/AR Software Developer
  • Tools Programmer
  • Level Designer
  • UI/UX Designer and Developer
  • Gameplay Designer/Programmer

Eligibility and Exemption

Diploma holders from any of the five local polytechnics, A level / IB / NUS High School Diploma graduates and equivalent qualifications are welcome to apply. Applicants who hold local diplomas from other local institutions and other qualifications equivalent to Year-12 formal qualifications may be considered for admission to selected programmes on a case-by-case basis.

Subject to approval, diploma applicants may be granted module exemptions, based on the modules taken and minimum grades achieved in their diploma.

A-level Pre-requisites:

  • A pass in one of the following H2 subjects (Mathematics or Physics or Computing); or a pass in H1 Mathematics
  • Obtained passes in at least two H2 subjects and offered either General Paper (GP) or Knowledge & Inquiry (KI) in the same sitting while satisfying Mother Tongue Language (MTL) requirements.

IB Pre-requisites:

  • A pass in one of the following HL subjects (Mathematics or Physics or Computing); or a pass in SL Mathematics
  • Obtained a minimum grade five for at least two HL and one SL subjects and the IB Diploma while satisfying the Mother Tongue Language (MTL) requirements.

MODULE SYNOPSIS

Year 1
CSD1100 Computer Environment

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.
 

CSD1610 Composition

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.

CSD1240 Linear Algebra and Geometry

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.

CSD1120 High-level Programming 1

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.
 

CSD1400 Software Engineering Project 1

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.

CSD1250 Calculus and Analytic Geometry 1

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.

CSD1170 High-level Programming 2

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.

CSD1130 Game Implementation Techniques

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.

CSD1650 Interpersonal and Work Communication

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.

CSD1450 Software Engineering Project 2

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.

Year 2
CSD2200 Calculus and Analytic Geometry 2

This module builds on the introduction to calculus in CSD1250. Topics in integration include applications of the integral in physics and geometry and techniques of integration. The module also covers sequences and series of real numbers, power series and Taylor series, and the calculus of transcendental functions. Further topics may include a basic introduction to concepts in multivariable and vector calculus.
 

CSD2180 Operating Systems

Linux/Unix as implemented on modern PCs. After an overview of what an operating system is and does, we cover the following: organization and design (the kernel and various subsystems), process management (creation and management of processes and threads, including an introduction to multi-threaded programming), inter-process communication, process synchronization (locks, semaphores, and methods to avoid deadlocks), memory management (hardware and process views of memory layout and demand-paged virtual memory), file systems, and security and protection (viruses, worms, and Trojan horses).

CSD2510 Introduction to Game Design
This course is an introduction to game design theory and the process of designing games. Topics may include design principles, writing rules, playtesting, game state, randomness, hidden information, and game balance.
CSD2125 Modern C++ Design Patterns

This module builds on the foundation created in the first two high-level programming modules (CSD1120/CSD1170). It presents advanced topics in the C/C++ programming language in greater detail. Such topics include advanced pointer manipulation, utilizing multi-dimensional arrays, complex declarations, and standard library functions. Advanced C++ topics include function and class templates, operator overloading, multiple inheritances, runtime type information, the Standard Library, and performance issues.

CSD2400 Software Engineering Project 3

This project is divided into two trimesters and focuses on the creation of a simple real-time game or simulation with 2D graphics (3D games are not allowed, unless on special permissions). Students will work together on teams with average of five/six members to implement technical features such as audio effects, music playback, pattern movement, simple artificial intelligence, same-machine multiplayer (networking is not allowed, unless on special permission), particle systems, scrolling, and simple physics. All projects must be written with a core of C++ code and cannot use middleware such as pre-existing physics engines, networking engines, AI, etc. Additional topics may include basic software architecture, essential development practices, fundamentals of team dynamics, and task prioritization methods.

CSD2258 Discrete Mathematics

This module gives an introduction to several mathematical topics of foundational importance in the mathematical and computer sciences. Typically starting with propositional and first order logic, the module considers applications to methods of mathematical proof and reasoning. Further topics include basic set theory, number theory and applications to cryptography, relations, mathematical induction, and basic probability. Other topics may include graph theory, asymptotic analysis, and finite automata.

CSD2300 Motion Dynamics and Lab

This module introduces the various physical laws that describe the motions of objects around us. Students learn to internalize concepts involved with kinematics, Newtonian dynamics, work and energy, momentum, rotational motion and condition for the static equilibrium of rigid bodies and develop keen problem-solving skills in motion dynamics.

CSD2512 System Design Methods

This module focuses on how to analyze and simulate game systems. Topics may include system analysis, system simulation, system balancing, combat systems, and economic systems.
 

CSD2181 Data Structures

The objective of this module is mainly to introduce the classical Abstract Data Types (ADTs) in Computer Science. The ADTs provide the hierarchical views of data organization used in programming. Fundamental data structures and their associated algorithms as well as complexity notation are introduced. Simply Reading about data structures and algorithms and listening to a lecture is insufficient to master and implement these fundamental concepts. Every non-trivial program you write at DigiPen and in the real world will make heavy use of data structures and algorithms and this module enables you to reason about and apply them.

CSD2450 Software Engineering Project 4

In this class, students work to complete and polish the projects they began in CSD2400. Additional topics may include intermediate software architecture, advanced debugging techniques, bug tracking, formal playtesting, game pacing and game balance.

CSD3182 Artificial Intelligence for Games

The objective of this module is to introduce data structures and algorithms related to artificial intelligence applicable in real-time interactive applications. It introduces students to a wide range of concepts and practical algorithms that are commonly used to solve game AI problems. Topics covered include the game AI programmer mindset, AI architecture (state machines, rule-based systems, goal-based systems, trigger systems, smart terrain, scripting, message passing, and debugging AI), movement, pathfinding, emergent behaviour, agent awareness, agent cooperation, terrain analysis, planning, and learning/adaptation.

CSD2701 Introduction to Psychology

This module introduces major topics in psychology, specifically as they relate to cognition and learning. These topics include perception, cognition, personality and social psychology, and biological aspects of behaviour. Students are also introduced to human information processing, memory, problem solving, attention, perception, and imagery. Other topics covered may include mental representation and transformation, language processing, and concept formation.

CSD2540 Level Design

This module introduces the basic principles of level and encounter design. It focuses on the design of spatial environments, player guidance techniques, and controlling pacing through encounter frequency and variety.
 

CSD2250 Linear Algebra

This module presents the mathematical foundations of linear algebra, including a review of basic matrix algebra and linear systems of equations as well as basics of linear transformations in Euclidean spaces, determinants, and the Gauss-Jordan Algorithm. The more substantial part of the module begins with abstract vector spaces and the study of linear independence and bases. Further topics may include orthogonality, change of basis, general theory of linear transformations, eigenvalues, eigenvectors, as well as applications to least-squares approximations and Fourier transforms, differential equations, and computer graphics.

Year 3
CSD3130 Algorithm Analysis

This module provides students with an introduction to the analysis of algorithms specifically proving their correctness and making a statement about their efficiency. Topics for discussion may include loop invariants, strong mathematical induction and recursion, asymptotic notation, recurrence relations and generating functions. Students examine examples of algorithm analysis from searching and sorting algorithms. Second part of the module concentrates on classification of algorithms and building a strong knowledge base of existing algorithms.

CSD3240 Probability and Statistics

This module is an introduction to basic probability and statistics with an eye toward computer science and artificial intelligence. Basic topics from probability theory include sample spaces, random variables, continuous and discrete probability density functions, mean and variance, expectation, and conditional probability. Basic topics from statistics include binomial, Poisson, chi-square, and normal distributions; confidence intervals; and the Central Limit Theorem. Further topics may include fuzzy sets and fuzzy logic.

CSD3515 Technical Design Methods

This module focuses on designing and implementing digital game prototypes, with an emphasis on integrating mechanics, controls, and camera. Additional topics include building tension to create engagement and implementing player feedback techniques.

CSD3099 Career and Professional Development

This is a capstone module for students to prepare their application materials and learn how to effectively search for an entry-level job in their field. The goal of the course is for each student to have a polished resume, cover letter, business card, and online/web presence by the end of the semester, as well as a search strategy for seeking employment.

CSD3400 Software Engineering Project 5

This module is the first trimester of a two-trimester project that will be continued in CSD3450. It focuses on the creation of a polished, professional-quality, real-time game or simulation, and provides the opportunity to work together on cross-discipline teams of three or more members, implementing the technical features needed for the project. This first trimester focuses on pre-production to ensure the technology, tools, design, art, audio, and team are ready for full production in the following trimester.

CSD3125 User Interface and User Experience Design

This module presents fundamental topics in the field of human-computer interface design. Topics covered in the module will help students understand human capabilities, design principles, prototyping techniques and evaluation methods for human-computer interfaces, with special emphasis on natural user interfaces. The module guides the students towards an implementation of a novel user interaction.

CSD3185 Machine Learning

The objective of this module is to introduce basics concepts on Machine Learning that are useful for many industrial applications. It introduces students to a wide range of concepts and practical algorithms that are commonly used to pre-process data and extract useful patterns from large amount of data. The topics include early machine learning algorithms such as genetic algorithms, classifier systems, neural network, and various clustering algorithms. It also explores probabilistic algorithms, including Bayesian networks, hidden Markov models, and Monte Carlo methods.

CSD3156 Mobile and Cloud Computing

By facilitating a large variety of transportable human-computer interactions, mobile devices have become an essential and integral part of human life. Cloud computing is a model for enabling on-demand access to a shared pool of configurable computing resources such as servers, storage, networks, and applications as services over the Internet. Many popular mobile applications such as Gmail, Netflix, Facebook and WhatsApp are implemented as cloud applications but accessed from mobile devices. This module provides a practical and application-oriented introduction to implementing cloud computing services that bring the vast data processing and storage abilities of the cloud to mobile devices.

CSD3120 Introduction to Virtual Reality

Virtual reality is a real-time, interactive computer simulation that senses a user’s state and augments sensory feedback information to one or more of the user’s senses so as to provide the user a sense of being immersed in the environment. This module provides a practical and project-based introduction to the concepts, techniques and algorithms to design, develop and implement virtual reality applications. Topics covered include physical principles and technologies for multi-modal input/output interfaces; representation, rendering and display of virtual worlds; interactive techniques for multi-modal interactions; augmented reality; and development tools and frameworks.

CSD3450 Software Engineering Project 6

In this module, students work to complete the projects they began in CSD3400. This second trimester focuses on production to bring the project to the point where the target audience finds it engaging. Furthermore, techniques are explored for creating effective resumes, interviewing, and pursuing internships.

Year 4
CSD4620 Research, Reasoning and Writing

In this composition module, students practice advanced argumentative essay writing with a focus on research, critical analysis of the research, thesis presentation, and defense. During the semester, students write several research essays on various topics using both traditional and new information techniques.
 

CSD4400 Capstone Project

This is a two-trimester module. In the first trimester, the aim of the capstone project is to allow students to undertake a substantial piece of individual work, involving planning, specification, design, execution, evaluation of a complex systems that is related to the theme of Smart Nation and IoT.

In the continuation of the first part of the Capstone Project. The students are required to develop the scope and requirements of the project together with their academic and industry supervisors during IWSP and complete the implementation of the project in their final trimester of study. They will be required to present their project in a short seminar and submit a thesis report describing the results of the project.
 

CSD4901 Integrated Work Study Programme

The Integrated Work Study Programme (IWSP) is uninterrupted 8-month duration (2 trimesters) work placement programme that provides students with unique learning opportunities to achieve the following objectives: (1) applied learning – integration of theory and practice, acquisition of specialist knowledge and development of professional skills, (2) exposure to real-world conditions - appreciation of real-world constraints in respective industry contexts to develop skills of adaptability, creativity and innovation, and (3) smooth transition to jobs - practical experience which shortens work induction period.

The extended period of IWSP, coupled with real work being performed, allow placement organizations to evaluate the suitability of a student as potential employee, in effect making the IWSP equivalent to a job probation period. Students will also have many opportunities to immerse themselves in their placement organization’s business and culture, and decide if this is a good organization to work in.
 

CSD4650 Professional Communication

This module prepares students for the communication challenges that await them in the professional world. Topics covered may include professional networking strategies, career search materials, self-presentation and interview skills, and effective communication across all levels and functions of the workplace.

Campus Location
SIT@SP Building
SIT@SP Building

Singapore Polytechnic
510 Dover Road, Singapore 139660