Computer Science in Real-Time Interactive Simulation

Computer Science in Real-Time Interactive Simulation

Programme Overview
The Computer Science in Real-time Interactive Simulation programme provides rigorous training in foundational STEM modules that underpin computer science and simulations, and also focusses on deep programming skills that includes high level programming, low level programming, advanced C/C++, data structures, algorithms analysis and three progressive modules in computer graphics. Students will embark on a persistent studio-based software engineering project that spans across every trimester of the study and allows students to continuously apply their module-based knowledge in larger-scale projects, as well as hone essential soft skills in working within multidisciplinary teams. Graduates will be fully industry-ready with deep technical expertise in developing real-time interactive systems.

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

  • Software Engineering Projects
  • Game Implementation Techniques 
  • Advanced Computer Graphics
  • Machine Learning
  • 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

  • Computer Scientist
  • Software Engineer
  • Artificial Intelligence Developer
  • VR/ AR Software Developer
  • Machine Learning Engineer
  • Interactive Mobile Application Programmer
  • Game Engine Developer
  • Gameplay 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 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).
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
TBC
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.
CSD2160 Computer Networks

This course introduces the hierarchical network communication in a distributed computing environment. Course topics cover network technologies, architecture, protocols, and security (security will be an ongoing topic). The curriculum will give specific emphasis to the TCP/IP stack and in making students familiar with writing portable socket-based software. It will also discuss some of the unique challenges of networked games and strategies for addressing them.

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.
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
TBC
CSD4901 Integrated Work Study Programme
TBC
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