NEED TO KNOW CODE! PROGRAMMING FOR GAMES - 2026/7
Module code: DMA1021
Module Overview
This module provides a rigorous grounding in the programming techniques that you need to know to create video games. You will explore programming using languages such as C#, and learn about object-oriented approaches which are used in video games and IT industries. This module takes you through the fundamental principles of computer programming, as applied to the context of making video games. We will look at areas such as programming environments and tools, data types, variables, operations, scope, functions and selection. Whilst you explore these essential techniques by practicing your coding, we will also be looking under the hood at how concepts such as memory, bits and bytes. As the module progresses, you will gain increasing fluency in coding and problem solving, as you develop your ability to program game mechanics. As we explore concepts such as classes and inheritance, you will develop object oriented thinking, which allows you to design and structure your programming in ways that promote reliable, reusable code. By the end of the module, you will have gained a richer understanding of programming for games, opening the doorways to subsequent work in different programme languages and game engines. This module provides an essential grounding in industry-standard programming techniques, providing a deeper understanding of how to design and structure code effectively for creating video games. The concepts this module introduces will allow students to gain confidence and fluency in programming for video games.
Module provider
Music & Media
Module Leader
WEINEL Jon (Music & Med)
Number of Credits: 15
ECTS Credits: 7.5
Framework: FHEQ Level 4
Module cap (Maximum number of students): N/A
Overall student workload
Independent Learning Hours: 96
Lecture Hours: 24
Laboratory Hours: 12
Guided Learning: 12
Captured Content: 6
Module Availability
Semester 2
Prerequisites / Co-requisites
N/A
Module content
Indicative content includes:
- Programming fundamentals
- Data types, variables, selection and iteration
- Memory, bits and bytes
- Functions and methods
- List, arrays and collections
- Encapsulation, inheritance and polymorphism
- Interfaces
- Inheritance vs composition
- Error management and debugging
- Saving and loading
- Libraries
- Programming video games
Assessment pattern
| Assessment type | Unit of assessment | Weighting |
|---|---|---|
| Coursework | Weekly Lab Tasks | 30 |
| Coursework | Programming Project with Report | 70 |
Alternative Assessment
N/A
Assessment Strategy
The assessment strategy is designed to provide students with the opportunity to demonstrate achievement of the module learning outcomes. Laboratory sessions provide students with a series of structured tasks that they will submit and complete, providing the foundations for this module. Building on this, a substantive programming project will give scope for indepedence and flexibility in applying the concepts learned on the module. Students will thereby be assessed on their ability to analyse and apply coding techniques, design and test gameplay solutions, and situate their creative and technical work.
Assessment 1: Weekly Lab Tasks
This summative assessment is an opportunity for students to demonstrate their understanding of fundamental programming techniques for games, by submitting their completed solutions to a series of lab tasks.
Assessment 2: Programming Project with Report
This summative assessment represents a culmination of the module's output with students presenting a substantive programming project and report, which provides scope to apply the principles of the module on an indepedent project.
Formative assessment and feedback will be provided throughout this module during lectures and labs. Lab sessions will provide opportunities for students to receive feedback from the tutors on their work-in-progress.
Module aims
- Provide a foundation in programming fundamentals such as data types, variables, scope, functions and selection.
- Explore fundamentals of programming in relation to computer architecture and memory.
- Develop object-oriented thinking for designing classes
which make use of principles such as abstraction,
encapsulation, inheritence and polymorphism. - Gain an understanding of processes for manging errors and debugging code.
- Reflect and evaluate programming using appropriate termionology.
Learning outcomes
| Attributes Developed | ||
| 001 | Develop competence in the use of object-oriented programming | CKPT |
| 002 | Demonstrate an understanding relvant programming terminology | KPT |
| 003 | Explore approaches for testing and debugging code | CKPT |
| 004 | Apply programming with game design skills to realise an original video game demo | CKPT |
Attributes Developed
C - Cognitive/analytical
K - Subject knowledge
T - Transferable skills
P - Professional/Practical skills
Methods of Teaching / Learning
The learning and teaching strategy is designed to provide students with a strong foundation in programming. They will be provided with in-depth discussion of essentail programming techniques and concept and will apply these through a series of structured lab tasks which provide scope to develop indepedent problem solving and creativity. They will be challenged to apply these to create a game project which gives scope for flexibility, indepedence and the intergration of their game design and asset creation skills from elsewhere on the programme. The foundation in programming this module provides will feed into later coding, visual scripting and collaborative work on the programme.
The learning and teaching methods on this module include lectures and labs. Lectures will introduce fundamental programming principles and explore their application to video games through applied examples. Labs will provide students with structured programming tasks, and later, the opportunity to work on a game project which fosters increased indepedence and problem solving. Feedback will be provided throughout the module in labs, allowing students to iteratively improve their programming techniques, building resilience and communication skills which will help them to pursue programming roles and/or roles where working and communicating with programmers is necessary.
Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.
Reading list
https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: DMA1021
Other information
The Department of Music and Media is committed to developing graduates with attributes encompassing Employability, Digital Capabilities, Global and Cultural Capabilities, Sustainability, and Resourcefulness and Resilience.
Employability: This module deepens the technical expertise of students and their problem solving abilities when working with games programming fundamentals. These skills complement a range of specialist disciplines and industry roles, preparing students for work in roles relating to programming, games design and development.
Digital Capabilities: Digital capability is fundamental to this module, which immerses students in the technologies and workflows used across professional game development. Through this work, students develop not only their coding skills but also their understanding of how different technologies interact to support complex production processes.
Global and Cultural Capabilities: The module recognises that games technology and digital tools are part of a global creative and technical ecosystem. Where relevant, students are encouraged to consider how technical tools, workflows, and coding practices are shared and adapted across diverse studios, cultures, and platforms worldwide.
Sustainability: Where relevant this module will encourage students to engage with sustainable production practices. Students will consider aspects such as efficiency in code and the implications and impact of AI technologies within modern workflows.
Resourcefulness and Resilience: Games programming techniques requires persistence, experimentation, and problem-solving. Students will be challenged to design, test, and debug their own code and tools, learning to adapt to problems and revise their solutions based on feedback. These activities help students to build confidence, independence, and the resilience required to work effectively in professional technical and creative contexts.
Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2026/7 academic year.