Proseminar: Artificial Life

Dozent Alexander Dörr, Roland Keller
Sprechstunde nach Vereinbarung
Zeit Mittwochs, 16:00 - 17:00 Uhr
Umfang 2 SWS, 4 LP
Beginn Wird in der Vorbesprechung festgelegt
Vorbesprechung 17. Oktober 2012, 17 Uhr, A302
Ort A302, Sand 1
Turnus unregelmäßig

Beschreibung

Jeder Vortragende hat 45 Minuten Zeit um sein Thema zu präsentieren. Dazu sollen Folien mit Powerpoint o.Ä. und eine schriftliche Ausarbeitung (ca. 15 bis 20 Seiten) erstellt werden. Es ist empfehlenswert, dem Betreuer die Folien spätestens eine Woche vor dem Vortragstermin zukommen zu lassen. Nach dem Vortrag gibt es eine Diskussion mit Fragen zum Vortrag. Danach findet eine kurze Bewertung (Inhalt, Vortragsstil, Foliendesign, etc.) statt.

Sie erhalten von uns Literatur zum Ihrem Thema. Allerdings wird von Ihnen erwartet, dass Sie selbständig weitere Quellen recherchieren. Bei einer Online-Recherche aus dem Universitätsnetz (Informatiker-Pools, ZDV-Pools, VPN-CLient, etc.) haben Sie automatisch Zugriff auf die wichtigsten Journals. Verwenden Sie Tools wie Google Scholar und Citeseer, um nach Literatur zu suchen.

Themen und Termine

"; // Sollen Anmeldebuttons gezeigt werden? if (!isset($isActive)) { $isActive = ($_GET['isActive'] == 'yes'); } // Inkludiere Parameter include_once("globalSettings.php"); // Variablen $tableHead = "background-color:#f0ece1;"; $tableRowStyle = "height:28"; $rowHeight = "18"; $tableRow1st = "background-color:#f4f1f0"; $tableRow2nd = "background-color:#ffffff"; $anmeldenButton = ""; $anmeldenURL = "/php/wwwseminar/anmeldung.php"; // Beginne Tabelle // print "\n\n"; print "\n
\n\n"; // Ermittle, ob es sich um ein Praktikum handelt, und ob man sich anmelden kann // Suche nach dem Schlüsselwort "Praktikum" im Titel des Seminars $query = "SELECT titel,querycode FROM seminar WHERE seminarURL = '$url'"; $result = mysql_query($query); $titel = mysql_result($result, 0,"titel"); $querycode = mysql_result($result, 0, "querycode"); $isPraktikum = (stristr($titel,"praktikum")!==false); // Prüfe, ob Veranstaltung zum laufenden Semester gehört $semester = getSemester($url); // $isActive = ($semester == $currentSemester); // Liste aller Termine einer Veranstaltung abrufen $query = "SELECT * FROM termin LEFT JOIN referent USING (ID_termin) LEFT JOIN seminar USING (ID_seminar) LEFT JOIN betreuer USING (betreuer) WHERE (termin.datum > '$WAITDATE_SQL') AND (seminarURL = '$url') ORDER BY termin.datum, termin.ID_termin"; $result = mysql_query($query); $number = mysql_numrows($result); if ($number <= 0) { // wenn keine Termine gefunden print "

Themen werden so schnell wie möglich online gestellt.

"; // Liste aller Termine einer Veranstaltung abrufen $query = "SELECT * FROM seminar WHERE (seminarURL = '$url')"; $result = mysql_query($query); $number = mysql_numrows($result); if ($number <= 0) { // wenn kein Eintrag in DB vorhanden // Veranstaltung eintragen $querycode = getRandomString(8); $query = "INSERT INTO seminar (titel, seminarURL, querycode) VALUES ('Titel','$url','$querycode')"; $result = mysql_query($query); } } else { // wenn Termine gefunden $i = 0; $HTMLrowcount = 0; $ID_temin_old = -1; if ($isPraktikum) { // print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; while ($i < $number): // Daten aus SQL-Abfrage-Ergebnis extrahieren $ID_termin = mysql_result($result, $i, "ID_termin"); $betreuer = mysql_result($result, $i, "betreuer"); $betreuerURL = mysql_result($result, $i, "betreuer.url"); $maxReferenten = mysql_result($result, $i, "maxReferenten"); $vorname = htmlentities(mysql_result($result, $i, "vorname")); $name = htmlentities(mysql_result($result, $i, "name")); if (($vorname > "") || ($name > "")) { $referent = $vorname . " " . $name; } elseif ($maxReferenten > 0 and $isActive) { $referent = "$anmeldenButton"; } else { $referent = ""; } // Wechselnder Hintergrund für gerade/ungerade Tabellenzeilen // $style = ++$HTMLrowcount % 2 ? 'tr-even' : 'tr-odd'; // Ausgabe einer Tabellenzeile // print " \n"; print " \n"; $ii = $i + 1; print " \n"; if ($betreuerURL != "") { print " \n"; } else { print " \n"; } print " \n"; print " \n"; $i++; endwhile; } else { // wenn kein Praktikum // print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; while ($i < $number): // Daten aus SQL-Abfrage-Ergebnis extrahieren $datum = formatDate(mysql_result($result,$i,"datum")); $ID_termin = mysql_result($result,$i,"ID_termin"); $titel = mysql_result($result,$i,"titel"); $betreuer = mysql_result($result,$i,"betreuer"); $betreuerURL = mysql_result($result,$i,"betreuer.url"); $maxReferenten = mysql_result($result,$i,"maxReferenten"); $vorname = mysql_result($result,$i,"vorname"); $name = mysql_result($result,$i,"name"); if (($vorname > "") || ($name > "")) { $referent = $vorname . " " . $name; } elseif ($maxReferenten > 0 and $isActive) { $referent = "$anmeldenButton"; } else { $referent = ""; } // Wechselnder Hintergrund für gerade/ungerade Tabellenzeilen // $style = ++$HTMLrowcount % 2 ? 'tr-even' : 'tr-odd'; // Ausgabe einer Tabellenzeile // print " \n"; print " \n"; print " \n"; print " \n"; if ($betreuerURL != "") { print " \n"; } else { print " \n"; } print " \n"; print " \n"; $i++; endwhile; } } // Warteliste eines Seminars abrufen // Als Warteliste wird ein Termin mit einem speziellen Datum ($WAITDATE_SQL) für ein bestimmtes Seminar angenommen. $query = "SELECT * FROM termin LEFT JOIN referent USING (ID_termin) LEFT JOIN seminar USING (ID_seminar) LEFT JOIN betreuer USING (betreuer) WHERE (termin.datum<='$WAITDATE_SQL') AND (seminarURL = '$url') ORDER BY referent.datum DESC"; $result = mysql_query($query); $number = mysql_numrows($result); if ($number > 0) { // Wenn Warteliste gefunden (Info: Eine Warteliste kann auch leer sein, d.h. noch keinen Namen enthalten) $j = 0; // Muster für Befehl vor Serverumstellung im März 2008: // $titel = mysql_result($result,$j,"termin.titel"); $titel = mysql_result($result,$j,"titel"); $ID_termin = mysql_result($result,$j,"ID_termin"); $warteliste = ""; while ($j < $number): // Daten aus SQL-Abfrage-Ergebnis extrahieren $vorname = htmlentities(mysql_result($result,$j,"vorname")); $name = htmlentities(mysql_result($result,$j,"name")); if(($vorname > "") || ($name > "")) { $warteliste = "$vorname $name
\n" . $warteliste; }; $j++; endwhile; $warteliste .= $isActive ? "$anmeldenButton" : ""; // Wechselnder Hintergrund für gerade/ungerade Tabellenzeilen // $style = i % 2 ? 'tr-odd' : 'tr-even'; // Ausgabe einer Tabellenzeile // print " \n"; print " \n"; if (!$isPraktikum) { print " \n"; } print " \n"; print " \n"; print " \n"; print " \n"; } print "\n
PraktikumsplatzBetreuungTeilnehmer(in)
$ii$betreuer$betreuer$referent
DatumThemaBetreuungReferent(in)
$datum$titel$betreuer$betreuer$referent
 $titel $warteliste
\n"; if ($isActive) { if ($isPraktikum) { print "

Zur Reservierung eines Platzes tragen Sie sich bitte mit den Schaltflächen ganz rechts in der Tabelle ein.
Diese Anmeldung ersetzt nicht die offizielle Anmeldung über das Campus-System! Sie dient zur Vorreservierung der einzelnen Plätze bis zur Vorbesprechung, an der Sie persönlich anwesend sein müssen.

"; } else { print "

Zur Reservierung eines Themas tragen Sie sich bitte mit den Schaltflächen ganz rechts in der Termin-Tabelle ein.
Diese Anmeldung ersetzt nicht die offizielle Anmeldung über das Campus-System! Sie dient zur Vorreservierung der einzelnen Termine bis zur Vorbesprechung, an der Sie persönlich anwesend sein müssen.

"; } } $getquery = explode('=', $_GET["query"]); if ( ($getquery[0] === "getlist") && ($getquery[1] === $querycode) ) { print "

Liste aller Teilnehmer

\n"; print "\n\n\n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; $query = "SELECT * FROM termin LEFT JOIN referent USING (ID_termin) LEFT JOIN seminar USING (ID_seminar) LEFT JOIN betreuer USING (betreuer) WHERE seminarURL = '$url' ORDER BY referent.datum DESC"; $result = mysql_query($query); $number = mysql_numrows($result); for ($i = 0; $i < $number; ++$i) { // Daten aus SQL-Abfrage-Ergebnis extrahieren $name = htmlentities(mysql_result($result, $i, "name")); $vorname = htmlentities(mysql_result($result, $i, "vorname")); $semester = htmlentities(mysql_result($result, $i, "semester")); $matrikelnr = htmlentities(mysql_result($result, $i, "matrikelnr")); $studiengang = htmlentities(mysql_result($result, $i, "studiengang")); $email = htmlentities(mysql_result($result, $i, "email")); $betreuer = htmlentities(mysql_result($result, $i, "betreuer")); print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; print " \n"; } print "\n
NameVornameMatr.-Nr.EmailStudiengangSem.Betreuer
$name$vorname$matrikelnr$email$studiengang$semester$betreuer
\n"; // print email list print "

Email-Liste

\n

"; for ($i = 0; $i < 1; ++$i) { $email = htmlentities(mysql_result($result, $i, "email")); print "$email"; } for ($i = 1; $i < $number; ++$i) { $email = htmlentities(mysql_result($result, $i, "email")); print ", $email"; } print "

"; } ?>

Literaturempfehlungen

[1]Questions in Artificial Life Mark A. Bedau: "Artificial life: organization, adaptation and complexity from the bottom up" , Trends in Cognitive Sciences Vol.7 No.11 November 2003 [PDF]
[2] Cellular automata Steven Wolfram: "History of cellular automata" from "A New Kind of Science" [Webseite]
[3] Tierra/Avida Richard E. Lenski1, Charles Ofria, Robert T. Pennock3 and Christoph Adami: The evolutionary origin of complex features, Nature 423, 139-144 (8 May 2003) [Webseite]
[4] Swarm Algorithms and Ant Systems Marco Dorigo, Mauro Birattari: Ant Colony Optimization, IEEE Computational Intelligence Magazine, November 2006 p. 28-39 (in der Bibliothek)
[5] Evolving 3D Morphology and Behaviour K. Sims: "Evolving 3D Morphology and Behavior by Competition" , Artificial Life IV Proceedings, ed.by Brooks & Maes, MIT Press, 1994, pp.28-39.
[6] Models for Population/Coevolutionary Dynamics Jordan Pollack, Alan D. Blair, Mark Land: "Coevolution of a Backgammon Player" Artificial Life V: Proc. of the Fifth Int. Workshop on the Synthesis and Simulation of Living Systems
[7] Evolutionary Algorithms Melanie Mitchell, Stephanie Forrest: Genetic Algorithms and Artificial Life, Artificial Life Vol 1. Num. 3, p 267-289
[8] Artificial Immune Systems Dipankar Dasgupta; Advances in Artificial Immune Systems, IEEE Computational Intelligence Magazine, November 2006 p. 40-49 (in der Bibliothek)
[9] Synthetic biology for computer scientists Matthias Heinemann, Sven Panke: "Synthetic biology—putting engineering into biology", Bioinformatics 2006 22(22):2790-2799; [Abstract]
[10] Standardization of biological parts Yizhi Cai, Brian Hartnett , Claes Gustafsson, Jean Peccoud: "A syntactic model to design and verify synthetic genetic constructs derived from standard biological parts", Bioinformatics 2007 23(20):2760-2767 [Abstract]

Stilvorlage  

  • Für die Erstellung der Ausarbeitung mit Word gibt es hier eine Stilvorlage.
  • Wenn Sie eine andere Textverarbeitung bevorzugen, orientieren Sie sich bitte an diesem Muster.
  • Für Latex gibt es einen Style mit kleiner Demo.




Diese Seite drucken