COMP_SCI 397, 497: Computational Creativity

Quarter Offered

Fall : 1-4 Th ; Pardo


Enrollment in this course is by instructor permission. Desirable prior experience includes completion of the basic undergraduate CS programming sequence, completion of at least one course in Artificial Intelligence (e.g. CS 348) or Machine Learning (e.g. CS 349), prior experience with artistic creation (e.g. creative writing, music composition, visual arts). Both graduate students and intellectually mature undergraduate students will be accepted, provided they have the appropriate background. Please contact the instructor for more information.



Computational creativity is a multidisciplinary field that lies at the intersection of artificial intelligence, cognitive psychology, philosophy, and the arts. The field is concerned with the theoretical and practical issues in the study of creativity. The goal of computational creativity is to achieve one of the following:

  • To construct a program or computer capable of human-level creativity.
  • To better understand human creativity and to formulate an algorithmic perspective on creative behavior in humans.
  • To design programs that can enhance human creativity without necessarily being creative themselves.

In this course, students will read and discuss theoretical writings on the nature and proper definition of creativity. They will also read about and experiment with existing computational creativity systems (e.g. David Cope’s Experiments in Musical Intelligence and Google’s Project Magenta). In parallel, they will perform practical work implementing systems aimed at achieving one of the three goals listed above. 


Online readings provided by the course instructor.

REFERENCE TEXTBOOKS: Selected papers from journals and conferences presenting research on Computational Creativity.


COURSE GOALS: To expose students to concepts and methods in Computational Creativity. To give students a basic set of intellectual tools applicable to a variety of problems in the space of computational creativity. To teach students critical analysis skills so that they can clearly define a problem in an area that is generally considered “fuzzy,” and make practical forward progress on that problem to achieve a goal.


This is an example set of topics. The exact subset will vary depending on year.

  • What is “creativity” and how do we measure it?
  • Breaking rules, following rules, bending rules
  • Flow state and the creative mindset
  • Analogy’s role in creativity
  • Creativity support tools for multimedia creation
  • Music Composition by machine
  • Storytelling by machine
  • Which technologies are the most “creative”?

HOMEWORK ASSIGNMENTS: Reading assignment from the Computational Creativity literature. Coding assignments implementing algorithms, and experiments testing the output of computational systems that purport to be creative.

LABORATORY ASSIGNMENTS: There will be several lab assignments. Students will be required to implement computational creativity approaches and analyze their performance.

GRADES: Will be based on a combination of problem sets, reading assignments and programming assignments.