MM-117 Ludic Programming and Design (Autumn 2026–Spring 2028)
- ECTS Credits:
- 20
- Responsible department:
- Faculty of Engineering and Science
- Course Leader:
- Christian Robere Simonsen
- Lecture Semester:
- Autumn
- Teaching language:
- English
- Duration:
- 2 years
Table of contents
The course is connected to the following study programs
Teaching language
Learning outcomes
On successful completion of the course, the student:
- Can explain the relevance of games and play in modern society and account for the historical development and cultural significance of games in general, and Esports in particular.
- Can apply terminology and theories related to games, game design, and esport to analyze games, game mechanisms, and contemporary trends.
- Can demonstrate knowledge of core principles of game design, including mechanisms, components, rules, and player experience.
- Can explain cognitive concepts and biases as they pertain to players, game systems and ethical considerations.
- Can design, document, and evaluate game concepts.
- Evaluate and critique game designs
- Can create appropriate prototypes.
- Understands fundamental programming concepts, including variables, control structures, functions, data structures, basic architecture and scope.
- Can analyze and debug code
- Can develop programs using iterative and agile work processes, including planning, documentation, testing, version control and continue deployment.
- Create simple distributed multiplayer systems.
- Understands programming paradigms, including but not limited to; object oriented, procedural, functional, test-driven, behavioral
- Can use common design patterns.
- Can use third-party libraries, APIs, and existing tools to support game and software development.
- Can do basic beta testing and distribution.
Contents
Games have played a central role in human culture for millennia, evolving alongside society, technology, and forms of play. This course explores games both as cultural artifacts and as technical systems, with a strong emphasis on programming as a tool to
make games. The course introduces the historical and cultural development of games and connects this foundation to modern games, Esports, and interactive media. Students will analyze how game mechanics, rules, and systems shape player experiences and reflect cultural trends. Problem solving is skill gamers often master well and is a good introduction to the tools used for creating games.
The major focus of the course is programming as a tool for creating and expressing games and play. Students will learn core programming principles such as problem solving, variables, data types, control structures, functions, and data structures, and apply them in game-related contexts. The course progresses from smaller scripts to larger, structured programs, emphasizing clean code, debugging, and iterative development. Programming paradigms are introduced to support the development of more complex game systems. Students will work with version control systems, third-party libraries, and APIs, and gain experience with agile project methods such as Scrum and Kanban. Programming is presented as a practical and creative tool for making and expressing game designs.
This course aims to have a more holistic view on problem solving, programming and game design. Focus on process and deeper understanding and create a more focused view. Effectively allowing students to create larger more meaningful game projects.
Teaching and learning methods
Examination requirements
Examinations
The course is divided into four semesters. Each semester concludes with a graded portfolio assessment, counting 25% each.
Information about the content of the assignment will be given in Canvas by the start of the semester. It will be possible to retake each portfolio assignment individually in the semester the assignment is running. If the mandatory tasks have not been accepted, the student must retake the semester.
Student evaluation
Reduction of Credits
This course’s contents overlap with the following courses. A reduction of credits will occur if one of these courses is taken in addition:
| Course | Reduction of Credits |
|---|---|
| MM-109 – Game History. | 5 |
| MM-112 – Game Design. | 5 |
| MM-201 – Programming 1 – Automation and Gaming. | 5 |
| MM-203 – Programming 2 – Useful Technology. | 5 |
| MM-908 – Game Design. | 5 |
| MM-913 – Basic programming 1. | 5 |
| MM-914 – Basic programming 2. | 5 |
| MM-905 – Game History. | 5 |