Computational Creativity and Multi-Agent Systems

Algorithms and machine learning
Advanced studies
An introduction to central concepts and models of computational creativity and creative multi-agent systems. The course includes a programming project on creative multi-agent systems. Material will be provided in the course (original articles, no text book).


19.12.2016 17.00 A111
Year Semester Date Period Language In charge
2016 autumn 31.10-14.12. 2-2 English Hannu Toivonen


Time Room Lecturer Date
Mon 14-16 C222 Hannu Toivonen 31.10.2016-14.12.2016
Wed 10-12 C222 Hannu Toivonen 31.10.2016-14.12.2016

Exercise groups

Group: 1
Time Room Instructor Date Observe
Fri 14-16 C222 Simo Linkola 31.10.2016—16.12.2016

Information for international students

The course is given in English.


  • (30.10.16) The course area is available in Moodle. It is used to return your assignments. Course key is: ccmas2016
  • (30.10.16) The weekly exercises and other useful material can be found from github repository.
  • (16.11.16) Preliminary final deadlines for the project and take-home exam (see Course events below)
  • (29.11.16) No more Friday's workshops starting from 2.12.! The Wednesday's sessions are workshops for the group projects.
  • (2.12.16) Take-home exam has been published!
  • (23.12.16) The course has now been graded. See the grades.


The course serves as an introduction to computational creativity and its use in creative agent-based systems. The course covers the fundamentals of computational creativity, some aspects of linguistic creativity, and application of these to multi-agent settings, such as societies of creative agents. The course will not go into depth in traditional multi-agent systems.

Learning objectives for the course.

The course contains a substantial amount of practical work in implementing creative, agent-based software. Taking the course also requires compulsory group work during the period.

Students who have already taken the course Introduction to Computational Creativity, can also take this course. However, due to overlap in course contents, such students will be awarded only three study points for this course, and are not required to do some of the exercises during the course.

The official programming language (and version) on the course is Python 3.5.x.

Course Events

  • Mon 31.10. Starting Lecture - Introduction to Computational Creativity and Multi-agent systems (MAS), course format
  • Wed 2.11. 10-12 Workshop session (switched from Fri 4.11. 14-16 for the first week)
  • Thu 3.11. 23.55 The first essay due (Dan Ventura. Mere generation: Essential barometer or dated concept?)
  • Fri 4.11. 14-16 Discussion about the first essay and groupwork
  • Sun 6.11. 23.55 The first weeks exercises due (see github for the exercises)
  • Mon 7.11. 14-16 Lecture on multi-agent systems and social creativity
  • Tue 8.11. 23.55 The second essay due (Rob Saunders and Oliver Bown - Computational Social Creativity)
  • Wed 9.11. 10-12 Discussion session
  • Fri 11.11. 14-16 Workshop on the second exercises
  • Sun 13.11. 23.55 The second week's exercises due
  • Mon 14.11. 14-16 Lecture on linguistic creativity
  • Tue 15.11. 23.55 The third essay due (Geraint Wiggins - A preliminary framework for description, analysis and comparison of creative systems)
  • Wed 16.11. 10-12 Discussion session
  • Fri 18.11. 14-16 Workshop on the third exercises
  • Sun 20.11. 23.55 The third week's exercises due
  • Mon 21.11. 14-16 Lecture
  • Tue 22.11. 23.55 The fourth essay due (Anna Jordanous - A Standardised Procedure for Evaluating Creative Systems: Computational Creativity Evaluation Based on What it is to be Creative) Read: The first ~16 pages (until the section: Application of the SPECS Methodology to an Evaluative Case Study), you can also skip the Survey-part  (starting from: Survey of Current Evaluative Practice for Computational Creativity) from the background section if you so wish. The article is somewhat longer than in the previous weeks, but it is easy to read. When reading the article, try to answer the following questions in particular:
    • How the FACE/IDEA models designed for the description and evaluation of a creative system differ from the evaluation procedure presented in the paper?
    • What are the pros and cons for the procedure presented in the paper?
  • Wed 23.11. 10-12 Discussion, etc.
  • Fri 25.11. 14-16 Workshop on the fourth exercises
  • Mon 28.11. 14-16 Machine learning in CC and group projects
  • Wed 30.11. 10-12 Workshop for the group projects
  • Fri 2.12. Take-home exam published (updated 14.12.)
  • Sun 4.12. 23.55 The fifth (and last) essay due (Hojt et al. - An Overview of Cooperative and Competitive Multiagent Learning) Read: The first ~16 pages, until section 4 (Competitive MASs).
  • Mon 5.12. 14-16 Group project meeting
  • Wed 7.12. 10-12 Workshop for the group projects
  • Mon 12.12. 14-16 Group project meeting
  • Wed 14.12. 10-12 Obligatory demo session for all projects, deadline for project reports
  • Sun 18.12. 23.55 Deadline for the take-home exam.


Course Format

The course in given in two parts. First part consists of lectures, discussion sections and individual assignments. Second part is a group project. Course will also have a take home exam which students take towards the end of the course.

Part 1

The first part lasts the first 4-5 weeks of the course. In this part we will have three sessions per week (Monday, Wednesday and Friday) and two deadline times per week (Tue 23.55 and Sun 23.55).

The week schedule is as follows. On Mondays, we will introduce a new topic in a lecture like session. We continue to work on the topic on Wednesday, when students have read an article about the topic (see below). Sessions on Wednesday is more relaxed and consist of discussion, group work, etc.. Friday’s sessions are meant to be workshop-like sessions where students can work on their weekly exercises (see below). None of the sessions are compulsory, however, you will get course points from attending Wednesday’s sessions.

Each week we will have two kinds of assignments: A short essay from an article, and a set of other assignments. Although the articles are also on the course website, all the assignments are published in this documentation. Assignments are returned through Moodle (see Assignments).

Each week, Students read a short original article and write a short essay of the article summarizing its main points in pdf format. The hard limit for the essay length is 250 words, however, 150-200 words should be sufficient. Check your word counts! Article deadlines are each week on Tuesdays 23.55 (excluding the first week when the deadline is on Thursday 23.55), and the article for the next week is revealed latest on the previous week’s Wednesday.

Other assignments consist of programming, mathematical and other practical work. Their deadline is on Sunday 23.55 every week, and they are revealed latest on Monday of the same week. These exercises should be returned as a compressed file (zip, tar.gz) that extracts to a folder containing the exercise code and other documentation. The folder has to be named with your UH username! If there is any possibility for misinterpretation, add a README file explaining the file(s) associated with each exercise.

Part 2

Exact details of the group project will be revealed later. However, you can assume that a group is 3-4 persons, and a single person is not a group.

The second part consists of group projects and covers the rest of the course. In the second part, there is a weekly meeting where the groups present their work so far and on the last week there is a demo session which is compulsory for all the students. The demo session date is fixed later, but a good alternative is Friday 16.12. 14-16.


Weekly exercises will be updated to a github repository.

All assignments are returned via Moodle.

Take-Home Exam

Get the latex template. (updated 14.12.)


Completing the course

The course is taken by doing the individual exercises in the first phase, implementing the group project in the second phase, and taking an individual (take home) exam at the end of the second phase. Course grading is based on the following weights:

  • Weekly work: individual exercises + essays and discussions, 30% of course points
  • Project: Design and implementation of software as group work, 30% of course points
  • (Take home) exam: 40% of the course points (NB: the exam has questions about the project, so the project’s actual weight is more that the above 30%)

To pass the course the student has to get at least half of the points for each of the three components above.

Literature and material

(For exercises, see the github repository.)

Week 1:

Week 2:

Week 3:

Week 4:

  • Hannu's slides on Monday: Evaluation of creativity (Ritchie, FACE)
  • Evaluation of the creative process, the FACE model: Alison Pease and Simon Colton: Computational creativity theory: Inspirations behind the FACE and the IDEA models. 2nd International Conference on Computational Creativity (ICCC), pp. 72-77, México City, 2011. (pdf)
  • Evaluation of creative products (optional material): Graeme Ritchie. Some Empirical Criteria for Attributing Creativity to a Computer Program. Minds and Machines, 17(1):76-99, Springer, 2007. (pdf)
  • Simo's slides on Wednesday: Discussion and Group Project

Week 5:

  • Simo's slides on Monday: Learning and Agents
  • (optional material) Hannu Toivonen and Oskar Gross. Data Mining and Machine Learning in Computational Creativity. Data Mining and Knowledge Discovery, 5(6):265-275, John Wiley & Sons, 2015. (pdf)


Material for the Separate Exam

(See also learning objectives for the course.)


Creativity concepts (in no particular order):

  • What is computational creativity?
  • "Levels" of creativity (Ventura)
  • Inspiring set
  • Creativity as a search (Wiggins)
  • FACE/IDEA model (Pease & Colton)
  • Creative autonomy (Jennings)
  • Linguistic creativity: Markov chains as text generators (their strenghts/flaws based on e.g. concept of inspiring set)
  • Evaluation of creativity (Jordanous, Pease & Colton, Ventura)
  • Transformational creativity (see, e.g. Wiggins)
  • On a high level: How machine learning can be useful for CC?

MAS concepts (in no particular order, all of these should be also looked from the CC point of view):

  • Multiagent-system (MAS) vs. Agent-based system (ABS)
  • Differences in homogenous and heterogenous MAS/ABS
  • Differences in cooperative vs. competitive MAS
  • Typical MAS design in CC (see e.g. Saunders & Bown)
  • Emergence
  • Interaction between agents: direct and indirect interaction
  • Specific interaction types: voting and negotiation
  • Other concepts such as: learning, memory, planning, clique formation, etc.