Creative Coding and Software Design 3: Machine Learning

Fall 2019

Instructor - Grigore Burloiu / moc.liamg|uiolrubg#moc.liamg|uiolrubg

Credits - 6 ECTS

Course Prerequisites

This class builds on the creative coding foundation acquired in the first year. Previous experience with machine learning is a plus, but not required.

Course Objectives

Students in this course will:

  • obtain an intuition of machine learning models and techniques for advanced interaction and control
  • use stochastic processes to generate material
  • create complex real-time interaction schemas for mixed-media art projects
  • master domain-specific programming tools
  • gain fundamental and applied knowledge of machine learning theory and technique

Course Structure

This course will be comprised of 12 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 (50%): to be published on Classroom by the due date. Each assignment is graded out of 10 points. Grading: 0 (missing) - 4 (superficial attempt) - 8 (complete) - 10 (extra). Every 7 days' delay detracts one point. Maximum accumulated points is 50.
  • Final project proposal (10%): to be presented to class and approved.
  • Final project (40%): each project is individual, and can be any application showing creative skills and design clarity, as approved based on your proposal.


All code prepared for the class is available here.


  • The Mechanics of Machine Learning, by Terence Parr & Jeremy Howard Link.
  • Machine learning for audio, image and video analysis, by Alessandro Vinciarelli & Francesco Camastra.
  • Introduction to Machine Learning with Python, by Andreas C. Müller & Sarah Guido.
  • Introduction to Machine Learning, by Ethem Alpaydin.
  • Online:

Class Schedule

2019 students: 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.

Week 1 (11.10): Introduction to ML. Interactive machine learning basics.

  • Slides
  • Assignment (due before following class): Download and explore Wekinator.

Week 2 (18.10): Classification. Decision trees and k-nearest neighbours. Classification-based control schemas.

  • Slides
  • Assignment (due before Week 4): Classification examples.

Week 3 (1.11): Classification. Probabilistic models. The perceptron.

  • Assignment (due before following class): Rough Wekinator prototype.

Week 4 (29.11): Regression. Linear and polynomial. Neural networks.

Week 5 (13.12): ML in Max and in Python. Semester project brainstorming/discussion.

  • Slides
  • Assignment (due before following class): Prepare semester project proposal.

Week 6 (20.12): Project proposal presentations. Prototyping.

Week 7 (9.01): More neural networks. ml5.js

  • Slides
  • Assignment: Project work.

Week 8 (17.01): Final project discussions.

Final (6.02): Final Project Presentations.
The complete source code is due by Monday 5 Feb @ 23h59, on your Github repo. Projects will be graded on:

  • completion of the task proposed in Week 6 (and amended up to Week 8)
  • clarity of style (incl. appropriate indentation, comments etc)
  • elegance of design (well chosen ML model and data, logical program structure, good modularity etc)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License