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, you will create programs on a weekly basis, based on a list of requirements. Some of the programs are meant to carry out work for you, while others are playful or aesthetically interesting. Whatever the functionality, you are asked to find yourself a way to create it. This approach will allow you to choose the best tool (i.e. programming language or platform) depending on what it is you want to achieve instead of sticking to familiar tools. But also, it allows you to raise the bar and make assignments more challenging for yourself, if you can already program. The course especially emphasizes interfacing between different platforms to overcome restrictions of individual environments and languages. In addition to getting acquainted with different languages, you will also practice to version-control your code with GIT to support collaborative work.

All teaching material used in this course is freely available. You will need access to a computer with Internet access at home (Windows, Mac or Linux), and bring your own laptop to each class.

Note that the course is part of the Media Technology MSc curriculum. If you are a student of the programme, the content of this course will be important for subsequent courses. If you are unsure if this course is right for you, write the course lecturer with your concerns. If you require specific assistance of any kind in class or after, be sure to let the lecturer know as soon as possible, either before the start of the course, or very soon thereafter.

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 modern programming languages

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

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

  • Work with version control in a collaborative setting


Date, time and location of this course is included in the Media Technology calendar.

Mode of instruction

Lecture, Seminar

Assessment method

  • Written weekly graded evaluation at the beginning of each lecture (20%)

  • Open-laptop exam (30%)

  • Team-based programming assignment (50%)

The final grade is determined by the weighted average. Weekly assessments can be missed for health-related reasons as long as at least 60% of the weekly assessments have been attended.

Retake opportunities are offered for the open-laptop exam, and for the programming assignment. Weekly assignments cannot be retaken.

Reading list

  • The Nature of Code by Daniel Shiffman (

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


  • You have to sign up for courses and exams (including retakes) in uSis.


Media Technology MSc programme coordinator/study advisor: Barbara Visscher-van Grinsven MA