The goal of this course is to quickly get students up to scratch with
some basic ideas of [[https://en.wikipedia.org/wiki/Artificial_life][artificial life]]. The core part of the course is a
practical assignment in which students should implement a simple
artificial life environment in [[http://ccl.northwestern.edu/netlogo/][NetLogo]]. After having taken this
course, the students will have an overview picture of the domain of
artificial life and [[https://en.wikipedia.org/wiki/Autonomic_computing][autonomic computing]], and will be able to program
simple to moderately complex multi-agent environments in NetLogo.
This course requires some basic experience in computer science, but
prior knowledge of NetLogo is not mandatory. It is part of the course
"Calcul autonomique" ("Autonomic computing") taught to students
following the [[https://www.universite-paris-saclay.fr/fr/formation/master/m2-conception-et-intelligence-des-logiciels-et-systemes-cils#presentation-m2][CILS]] MSc. program at [[http://www.univ-evry.fr/fr/index.html][Université d'Évry]]. The teaching
language is French.
The course consists of 3 sections: a brief introduction to autonomic
computing, a brief introduction to artificial life, and the practical
The materials of this course are distributed under the [[https://en.wikipedia.org/wiki/Creative_Commons_license][Creative
Commons Attribution Alone licence]].
* Introduction to autonomic computing
This section provides a high-level overview of autonomic computing
by listing the desired properties of autonomic systems and the
evolutionary levels to reach them.
The slides for this section (in French) are available [[file:../content/courses/alife-intro/ac-intro.pdf][here]].
* Introduction to artificial life
This section provides a high-level overview of artificial life. It
gives some examples of systems which are and which are not
artificial life, and then lists the types of artificial life. This
section prepares the lab assignment by quickly recalling [[https://en.wikipedia.org/wiki/Cellular_automata][cellular
automata]] and by giving some links to NetLogo-related resources.
The slides for this section are available [[file:../content/courses/alife-intro/alife.pdf][here]].
* Artificial life in an environment with gravity
This section is a practical assignment proposing to students to
implement an artificial life environment with gravity. The suggested
implementation platform is NetLogo. For students who have never used
NetLogo before, the assignment includes a warm-up exercise proposing
to implement [[https://en.wikipedia.org/wiki/Conway%2527s_Game_of_Life][Conway's Game of Life]].
This lab assignment is a simplified version of the [[https://theopensciencedoor.blogspot.fr/2017/06/vie-artificielle-dans-un-environnement.html][internship]] (in
French) proposed by [[https://sites.google.com/site/nicolasglade/][Nicolas Glade]] and carried out by Clément Hege.
The text of this lab assignment (in French) can be downloaded [[file:../content/courses/alife-intro/alife-lab.pdf][here]].