Artificial Life & Evolutionary Robotics: Theory, Methods and Art (Spring 2019)
Official course description:
Course info
Programme
Staff
Course semester
Exam
Abstract
The goal of the course is to teach the students an understanding of the foundation and philosophical basis of artificial life, its methods, and their practical use in games, robotics, and art.
Description
This interdisciplinary course connects topic from robotics, philosophical considerations, and collective intelligence. It covers cutting edge research and techniques for building more life-like machines, interfaces, and algorithms.
Students will understand the technical and theoretical foundations and philosophical basis of artificial life, its methods, and their practical use in games, robotics, and art.
This interdisciplinary course is open across study-lines and disciplines.
The course will partially cover the following list of topics:
- Philosophical perspectives on the nature of life and the possibility of artificial life
- Soft artificial life (Cellular automata, Artificial Evolution, Neutral Networks, Neuroevolution, NEAT / HyperNEAT, Generative and Developmental Systems, CPPNs, HyperNEAT, L-Systems)
- Hard artificial life (Artificial life robots, Evolutionary robotics, the reality gap, Co-evolution bodies and brains)
- Collective Intelligence (Swarm robotics, Evolution of communication, Cellular robot systems, Self-organizing and self-reproducing systems)
- Wet artificial life (Artificial chemical life)
- The use of artificial life in design and art
Formal prerequisites
A completed course on programming such as "Introductory Programming" will be helpful but is not mandatory. There will be a variety of assignments for students with more or less programming experience.Intended learning outcomes
After the course, the student should be able to:
- Describe and theorize on artificial life algorithms.
- Identify tasks that can be tackled through advanced bio-inspired techniques and select the appropriate technique for the problem under investigation.
- Compare the performance of different alife techniques and reflect on their suitability for different tasks.
- Design and implement efficient and robust advanced alife algorithms.
- Evaluate the algorithms in simulated or physical environment.