nl en

Creative Programming


Admission requirements

Bachelor degree (completed). This course requires some understanding of coding as a prior requirement. Specifically, you will need to have an understanding of variables, conditionals, loops, and functions as a basic starting point. Make sure to reach this level to follow the course successfully.


In the Creative Programming course we look at programming as a tool for creative expression. Rather than excel at one specific programming language, this course encourages students to understand the basics of multiple programming languages and domains, and ultimately, to see them as tools that can be used to create scientific experiments, games, or interactive experiences.

As part of the course students create programs every week on the basis of requirements that are meant to challenge their problem-solving skills. Some of the programs will carry out work, while others are playful or aesthetically interesting. Whatever the functionality, students are asked to find a way to create it. This course trains students to approach programming as a tool to express their ideas, and to creatively deal with unforeseen challenges. The course emphasizes interfacing between different platforms to overcome restrictions of individual environments and languages.

All teaching material used in this course is freely available. Students will need access to a computer with Internet access at home, and bring their laptop to each class.

The course is part of the Media Technology MSc 'core' curriculum. Students that have a lot of pre-existing knowledge across multiple programming languages are encouraged to substitute this course with a different, advanced computer science course. The study advisor of the Media Technology MSc. can provide further information on request.

Students that require specific assistance of any kind in class or after are asked to let the lecturer know as soon as possible, either before the start of the course, or very soon thereafter. We are happy to discuss options.

Course objectives

  • Create programs that can act as tools or as artifacts for entertainment (e.g. games, interactive artworks)

  • Gain the ability to understand and modify programs written in a range of programming languages

  • Interface between different programming languages and environments to create projects that can overcome idiosyncratic limitations

  • Find different ways to solve a task and make informed decisions when choosing specific solutions


The timetable is published in uSis and MyTimetable (manual). Please note that (last-minute) changes in the schedule are communicated in the course's Brightspace.

Mode of instruction

Lecture, Seminar

Assessment method

  • Weekly assignments with check evaluations (1/3 of the grade)

  • Programming projects plus protocoling code functionality (2/3 of grade)

The final grade is determined by the weighted average.
Retakes for this course take place in the form of an oral exam.

Reading list

  • The Nature of Code by Daniel Shiffman (

Additional study material will be provided by the lecturer during the course.


  • You have to enrol for classes and exams (including retakes) in uSis.

  • Elective, external and exchange students (other than Media Technology students) need to contact the programme's coordinator due to limited capacity.


Contact the lecturer(s) for course specific questions and the programme's coordinator Barbara Visscher-van Grinsven for questions regarding the programme, admission and/or registration.