Creative Coding and Software Design 2: Dataflow programming

Spring 2020

Instructor - Grigore Burloiu / or.ctanu|uiolrub.erogirg#or.ctanu|uiolrub.erogirg
Credits - 6 ECTS

Course Prerequisites

This class assumes a high degree of computer and media literacy, but not a high degree of programming ability. A logical, structured approach to solving creative problems is encouraged. Previous experience with visual or interpreted programming languages is a plus, but not required.

Course Description

This course builds on the programming experience gathered in the first semester, turning the focus to visual, interpreted (non-compiled) programming. We continue the exploration of event-driven, concurrent real-time processes, and how to design them into systems that implement various behaviours, user interfaces and multimedia outputs. The results will be complete user-facing interactive applications, made possible by a swift prototyping and experimentation workflow.

Course Objectives

Students in this course will:

  • aquire a solid level of audio/video programming proficiency using Cycling’74 Max
  • gain conceptual and practical knowledge of human-computer interaction using Max
  • complete an interactive / research creative coding project

Course Structure

This course will be comprised of 11 weekly classes, 1 final project proposal, and 1 final project. Additionally, there will be small weekly homework assignments, which we will go over and build upon in class. Homework assignments will often be supplemented by reading unless otherwise noted.

The grading breakdown is as follows:

  • Weekly homework studies (80%): to be published on Classroom by the due date. Each assignment is graded out of 10. Grading: 0 (missing) - 4 (superficial attempt) - 8 (complete) - 10 (extra). Every 7 days' delay detracts one point. Maximum accumulated points is 80, out of a potential maximum of 11*10 = 110 points.
  • Final project (20%): each project is individual, and will be a simple application showing creative skills and design clarity, as chosen from a list of subjects.


  • Electronic Music and Sound Design - Theory and Practice with Max/MSP, by Alessandro Cipriani and Maurizio Giri.
  • Multimedia Programming using Max/MSP and TouchDesigner, by Patrik Lechner.
  • Max Documentation. Link
  • MOOCs

  • Guides (older)

Class Schedule

2019 students & later: go to Google Classroom. 2018 syllabus is archived below.

This schedule is subject to change depending on the interests and pace of the class, etc. All code prepared for the class is available here.

Max Cheat Sheet

Week 1 (23.02): Introduction to visual programming and Max.

  • Slides
  • Reading: recap CC first semester.
  • Assignment (due before following class): Max Tutorials 1 - 5.

Week 2 (1.03): Different media types and Max. Good patching practices.

  • Slides
  • Assignment (due before following class): Max Tutorials 6 - 8.

Week 3 (8.03): Data mapping. Control interfaces.

Week 4 (15.03): Timing, sequencing and temporal form in Max. Algorithmic composition, probability and randomness.

  • Slides
  • Reading: Student choice
  • Assignment (due before following class): Create a generative sequence in Jitter.

Week 5 (22.03): Sensory input and physical computing: Arduino, sensors, and HCI.
Live & recorded video processing and analysis in Jitter.

  • Slides
  • Reading: Student choice
  • Assignment (due Week 7): Control a generative patch via sensors.

Week 6 (29.03) Guest lecture (Ion Aramă): Introduction to spatial design in Unreal Editor.

Week 7 (4.04) Network communication. Networked performance.

  • Slides
  • Reading: Student choice
  • Assignment (due before following class): prepare project proposals.

Week 8 (19.04) Project proposals.

Week 9 (26.04) Sensors, Arduino and Max. A case study: Nova Lab.
Elements of OpenGL in Jitter (//Unreal?). Physical models.

  • Slides
  • Assignment (due before following class): project first steps.

Week 10 (3.04) Max software encapsulation, abstractisation and presentation. JS in Max.

  • Slides
  • Assignment (due before following class): set up project structures.

Week 11 (10.04) Live. Max for Live. Instrument and effect devices. The Live API.

  • Slides
  • Assignment (due before following class): set up project timeline.

Week 12 (17.04) Interactivity design issues.

  • Slides
  • Assignment (due before following class): prepare project prototype for preview & discussion.

Week 13 Final project discussion.

Final: Final Project Presentations.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License