nl en

Creative Programming


Admission requirements

Bachelor degree (completed). This course requires some experience of coding as a prior requirement.


In this course we will explore programming as a medium for creative expression. We will explore the use of multiple programming languages (e.g. Processing, Pure Data) applied across various domains (e.g. visual, audio) to produce dynamic, generative, and interactive experiences.

Students will create programs every week to explore different approaches to programming as a creative medium. Students will produce dynamic generators and animations, as well as, interactive experiences and tools. This course trains students to think algorithmically to express their ideas.

The course recognises the importance of being familiar with different programming languages and coding styles to best support different creative goals. In addition, the course will explore how systems can be constructed by combining components developed using different programming languages and tools.

Teaching materials will be distributed through Brightspace. Students will need access to a laptop, which they will need to bring to each class, and Internet access at home.

The course is part of the Media Technology MSc core curriculum. Students with significant knowledge and experience 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 requiring assistance to participate in this course should contact the lecturers as soon as possible.

Course objectives

This course will provide an overview of creative programming. After the successful completion of this course, you will be able to:

  • Demonstrate algorithmic thinking to problem-solving

  • Modify existing programs to adapt their behaviour to achieve significantly different creative goals than those of the original

  • Develop substantial programs as creative outputs (e.g. image/sound generators, dynamic animations, interactive artworks, toys/games, etc.) or creative support tools (e.g. sketches, editors, instruments, etc.)

  • Combine components written in different programming languages to take advantage of different strengths and overcome limitations


You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

Lecture, Seminar

Assessment method

The final grade for the course is established by determination of a weighted average of partial grades for two components: homework assignments (50%) and programming projects (50%). Each of the two component grades may is turn be made up from multiple partial assignments. Uncompleted partial assignments/projects are graded with 0.

Retake rules: If and only if the final course grade is lower than 5.5, then a retake possibility exists for homework assignments or programming projects. Retake assignments may take place in the form of an oral exam.

Reading list

Study materials will be provided by the lecturers during the course.


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.

Extensive FAQ's on MyStudymap can be found here.


Contact the lecturer(s) for course specific questions and the programme coordinator for questions regarding the programme, admission and/or registration.


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

This course is not available to students who completed Introduction to Programming (Level 400, 4 EC) before 1 September 2020.