Programming for Designers
Course info
Programme
Staff
Course semester
Exam
Abstract
The course is an introduction to the basic theoretical and practical approaches to programming and game engine functionality using a general-purpose language. The course is intended for a general audience with no prior programming experience, and taught with an emphasis on small programming exercises.Description
Beyond the designated role of a programmer or a developer, also the other roles in a game development team benefit from a basic understanding of programming. This is particularly true to designers whose ideas need to be not only clear and well communicated but also, eventually, implementable. Understanding the basics of programming offers designers some of the vocabulary needed to communicate with programmers as well as an insight into how programmers work and why they make certain decisions. Moreover, programming as an exciting and empowering tool for creative expression offers new possibilities for designers. It is beneficial that a designer can create their own prototypes and software modifications even without a programmer.
The course addresses these needs by facilitating multiple hands-on exercises together with addressing their theoretical underpinnings. The students will learn the core concepts related to game programming (e.g. game engines, OOP vs. Entity-Component Architecture, game loops, 2D physics) as well as the key features, tools, and structures of modern game engines (e.g. game object composition, scene graphs, shaders, game loops, events). While Unity game engine will be used in class, the concepts are explained in a way that makes them transferable to other contexts. During the course, the various hands-on programming exercises will help the student to build their own portfolio of development projects.
Formal prerequisites
The course is intended for a general audience with no prior programming experience, and taught with an emphasis on small programming exercises. As an introductory course, there are no prerequisites.Intended learning outcomes
After the course, the student should be able to:
- Design and implement simple programs using a modern domain-neutral programming language
- Write documentation of their own code
- Select and integrate existing code and libraries
- Apply a range of basic algorithms
- Use version control systems
Learning activities
The course is organised around lectures, tutored 'hackathon' type programming sessions that relate to students' newly acquired skills, and presentation/feedback sessions around student solutions. During practical exercises, students work individually. Practical work will be interleaved with the theoretical lecture where there will be a lot of live-coding from the instructor instead of classical 2h lecture + 2 hour labs block structure.
Course literature
Recommended reading:
Nystrom, R. (2014). Game Programming Patterns. United States: Genever | Benning.
Spraul, V. A. (2012). Think Like a Programmer: An Introduction to Creative Problem Solving. United States: No Starch Press.
Gibson Bond, J. (2022). Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#. United Kingdom: Pearson Technology Group Canada.
Student Activity Budget
Estimated distribution of learning activities for the typical student- Lectures: 15%
- Exercises: 45%
- Assignments: 15%
- Exam with preparation: 25%
Ordinary exam
Exam type:D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D22: Submission with following oral exam supplemented by the submission.
For the exam, students are expected to submit a curated set of solutions to exercises that are done during the classes. The exam has an oral part where students are asked questions about their written exam submission.
20 minutes
reexam
Exam type:D: Submission of written work with following oral, External (7-point scale)
Exam variation:
D22: Submission with following oral exam supplemented by the submission.
20 minutes
Time and date
Ordinary Exam - submission Wed, 3 Jan 2024, 08:00 - 14:00Ordinary Exam Wed, 24 Jan 2024, 09:00 - 21:00
Ordinary Exam Thu, 25 Jan 2024, 09:00 - 21:00