Skip to main content
Back to top

Update: The NUSH-DigiPen Honors Track will be unavailable until further notice.

The NUSH-DigiPen Honors Track allows selected students from the NUS High School of Math and Science (NUSH) to study and earn credits at DigiPen (Singapore) while taking other subjects in NUSH’s main curriculum. If these students eventually matriculate to DigiPen, the credits earned during the Honors Track will be recognized toward fulfillment of their coursework. This can be beneficial to students who plan to attend any of DigiPen’s global campuses, as the transferred credits can reduce their workload during their first year of study.

Available courses are in computer science only. Students will receive a DigiPen (Singapore) transcript upon completion. Interested students may contact their respective teachers in NUSH.

For more information, please email

For new incoming students, please submit your application for the NUSH-DigiPen Honors Track through this form.

Modules offered for NUSH-DigiPen Honors Track

Prerequisite moduleCSD1170: High-Level Programming 2
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.
Honors Module (Choose 2 out of 4 modules)UXG1175: Scripting Languages
Topics may include classes, inheritance, interfaces, polymorphism, and data structures. This module covers the concepts and implementation strategies for using high-level scripting languages in game development. Students will focus on object-oriented programming, high-level English-like structure, speed of development, and ease of use. The module includes a survey of commercial languages, as well as proprietary scripting languages from industry applications. Students will examine the process of conceptualizing a syntax for a game-based scripting language and examine how such a language is compiled and interpreted by a game engine. Using the syntax they have created, they will create a number of scripts that could be used in a game. Additionally, the class will cover relevant topics such as data-driven technology, modular coding, function calls, and procedures.
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).
CSD2100: Introduction to Computer Graphics
This course presents fundamental mathematical elements, data structures, and algorithms required to implement interactive 2D and 3D graphics applications on programmable graphics hardware using modern graphics frameworks. Topics covered including the graphics pipe, programmable graphics hardware, affine transforms, projections, rasterization techniques, texturing pipeline, visibility techniques, frustum culling techniques, clipping algorithms, and applications of the perspective transform including 3D picking, planar shadows, and hyperbolic interpolation.
CSD1130: Game Implementation Techniques
Game Implementation Techniques presents foundational data structures, algorithms, mathematical concepts, and techniques used in the design and development of 2D 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.