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.


Year 1
CSD1100 Computer Environment
This course 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 course focus on assembly programming, which will enhance the student’s understanding of how the computer works at a fairly low-level.
CSD1610 Composition
Students will spend time reading extensively and generating ideas for writing, as well as sharing and analyzing their writing and ideas, revising their ideas, and learning more about themselves as a result. Furthermore, this course encourages students to utilize reading and writing as tools to explore and discover their thought processes, beliefs, and world concepts. It also motivates them to employ reading and writing as tools to develop critical thinking skills. It is believed that in the process of using these tools to organize their ideas and develop their critical thinking skills, they will be able to express these ideas into various compositional styles and forms and in the process become critical, intelligent thinkers, readers and writers.
CSD1240 Linear Algebra and Geometry
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 linesand 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.
CSD1120 High-level Programming 1
In presenting the C programming language, this course serves as a foundation for all high-level programming courses 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 will be 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 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, 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

1. Understand the differences between imperative programming as practised in CSD1120 and object-oriented programming. 2. Understand concepts of data abstraction, inheritance, and polymorphism. 3. Understand the concept of interface versus implementation. 4. Understand the challenges of building large-scale programs and how object-oriented programming facilitates it. 5. Understand the Standard C++ and Standard Template libraries and how to use them effectively in solving problems. 6. Apply course concepts to implement data structures and programs to solve various problems. 7. The successful student will be prepared for the next programming course in the sequence (CSD2125). 8. The successful student will be able to use the C++ language in the second year game courses.

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, animation techniques and collision detection.
CSD1650 Interpersonal and Work Communication
Students explore how their culture, gender, economic status, age and other personal characteristics influence their workplace communication. The course explores verbal and non-verbal communication skills in a global work environment. Students learn written communication techniques most effective for use in the technology workplace. Additionally, students explore and practice negotiation skills, both internally and externally at their workplace.
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 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, optimization, and applications to graphing. Integration includes Riemann sums, the definite integral, anti-derivatives, and the Fundamental Theorem of 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.
CSD2400 Software Engineering Project 3
This project is divided into two semesters 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.
CSD2250 Linear Algebra
This course presents the mathematical foundations of linear algebra, which includes 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 course begins with abstract vector spaces and the study of linear independence and bases. Further topics may include orthogonality, change of basis, gen-eral theory of linear transformations, and eigenvalues and eigenvectors. Other topics may include applications to least-squares approximations and Fourier transforms, differential equations, and computer graphics.
CSD2300 Motion Dynamics and Lab
CSD2181 Data Structures
The objective of this course 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 course enables you to reason about and apply them. CSD2125 is a prerequisite for this course.
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.
CSD2182 Artificial Intelligence for Games
The objective of this course is to introduce data structures and algorithms related to the artificial intelligence applicable in real time interactive applications. It will introduce students to a wide range of concepts and practical algorithms that are commonly used to solve game AI problems.
CSD2258 Discrete Mathematics
This course gives an introduction to several mathematical top-ics of foundational importance in the mathematical and computer sciences. Typically start-ing with propositional and first order logic, the course 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.
CSD2701 Introduction to Psychology

Psychology is an essential study of mental processes and behaviours. Students should find this course practical for everyday life and for the practice of game development. This course 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 will also be 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.

Year 3
CSD3130 Algorithm Analysis
This course 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 rela-tions and generating functions. Students will examine examples of algorithm analysis from searching and sorting algorithms. Second part of the course will concentrate on classification of algorithms and building a strong knowledge base of existing algorithms.
CSD3240 Probability and Statistics
This course 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.
CSD3400 Software Engineering Project 5
This course is the first semester of a two-semester project, which will be continued in CSD2450, and focuses on the creation of a polished, professional-quality, realtime game or simulation. It 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 semester focuses on pre-production to ensure the technology, tools, design, art, audio, and team are ready for full production in the following semester.
CSD3125 User Interface and User Experience Design
This course presents fundamental topics in the field of human-computer interface design. Topics covered in the course 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 course will guide the students towards an implementation of a novel user interaction.
CSD3185 Machine Learning
The objective of this course is to introduce basics concepts on Machine Learning algorithms that are useful for many industrial applications. It will introduce 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.
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 course will provide 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 course 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; augment reality; and development tools and frameworks.
CSD3450 Software Engineering Project 6
This course is the second semester of the three-semester project begun in CSD3400. This semester focuses on moving into full production, ending with the project ready to enter post-production in the following semester.
Year 4
CSD4620 Research, Reasoning and Writing
Owing to the belief that writing logical arguments based on sound research is an essential skill in school as well as in the workplace, this course is specifically designed to hone the research, argumentative and documentation skills of students. As such, all students will undergo intensive training on research methods, documentation styles, argumentation skills and strategies.
CSD4400 Capstone Project
CSD4901 Integrated Work Study Programme
CSD4650 Professional Communication
This course prepares students for the communication challenges that await them in the professional world. As such it offers them a set of definitive theories that help them understand the essentials of communication in a demanding setting such as the workplace so as to achieve not just professional but personal success as well. Apart of these theories, the course offers them an in depth insight into the second set of essentials skills for personal and professional success in the workplace; interpersonal communication skills, leadership skills and skills to handle the ever growing new media.
Campus Location
SIT@SP Building
SIT@SP Building

Singapore Polytechnic
510 Dover Road, Singapore 139660