Clevere Algorithmen Programmieren
Seit September 2017 bieten wir einen wöchentlichen Kurs für Schülerinnen und Schüler ab 15 Jahren an, der sich mit Informatikgrundlagen und deren Umsetzung in Python befasst. Im Zentrum steht dabei eine Verknüpfung theoretischer Grundlagen der Algorithmik und der konkreten Umsetzung am Computer. Die Ziele des Kurses beinhalten beispielsweise die Vorbereitung auf ein Hochschulstudium der Informatik und welche spannenden und kreativen Ideen dahinterstecken; allerdings steht der Kurs allen Interessierten offen.
Keywords
Course description
Project description
Der Kurs «Clevere Algorithmen programmieren» ist eine Outreach-Veranstaltung für Schülerinnen und Schüler ab 15 Jahren, die Interesse an der Informatik im Allgemeinen und einem Informatik-Studium an der ETH im Speziellen haben. Ferner dient der Kurs der Vorbereitung auf kompetitive Programmierwettbewerbe wie beispielsweise die Schweizer Informatik-Olympiade (https://www.soi.ch).
Das Projekt wurde 2017 von drei Informatikern gestartet: Dennis Komm lehrt und forscht in der Algorithmik und Informatikdidaktik, ist Senior Scientist mit Fokus Lehre am Departement Informatik der ETH Zürich und leitet das Ressort für Schule und Technik der PH Graubünden. Jakub Závodný arbeitet seit seiner Promotion an der University of Oxford bei Google und ist seit 15 Jahren in diversen Outreach-Veranstaltungen wie z.B. der Informatik-Olympiade engagiert. Tobias Kohn verfügt über zehn Jahre Erfahrung als Gymnasiallehrer in der Schweiz und ist Entwickler der Programmierumgebung TigerJython (http://www.tigerjython.ch). Er forscht zurzeit an der University of Cambridge und ist deswegen aktuell als Gastdozent tätig.
Enge Verzahnung von Theorie und Praxis
Der Kurs findet zum Grossteil an der ETH statt, jedoch in Teilen auch bei Google, was für die Schülerinnen und Schüler jeweils ein Highlight darstellt. Zum einen sind wir darum bemüht, sie dort abzuholen, wo sie jetzt stehen; auf der anderen Seite möchten wir auch aufzeigen, wohin die Reise nach dem Studium gehen könnte, und dass die theoretischen Konzepte, die im Kurs und Studium vermittelt werden, unzählige praktische Anwendungen in der «echten Welt» haben.
Durch die unterschiedlichen Ausrichtungen der Dozierenden mit Spezialisierungen in Didaktik, Informatik- Theorie und Praxis deckt der Kurs ein sehr grosses Spektrum ab. Informatikkonzepte werden didaktisch (im Sinne einer konstruktivistischen Herangehensweise) aufbereitet, theoretisch untermauert und praktisch in Python umgesetzt. Hierbei gibt es für Fortgeschrittene bei komplexeren Themen parallele Sessions. Im Vordergrund steht das selbstentdeckende Lernen und dass die Lernenden Lösungen (teils individuell, teils in Gruppen) eigenständig entwickeln.
Lösungen werden mit den Schülerinnen und Schülern erarbeitet, besprochen, auf Fehler überprüft, analysiert und gegebenenfalls verbessert. Dieser Prozess wird untermauert durch beispielsweise NIM-Spiele, manuelles Ausführen von Algorithmen (zum Beispiel paralleles Sortieren) oder informationstheoretische Spiele.
Vernetzung
Der Kurs steht allen Interessenten offen. Es existiert keine Anwesenheitspflicht. Die Aufgabenstellungen sind so offen wie möglich gehalten. Dennoch gibt es konkrete Zielsetzungen hinsichtlich der Ausrichtung des Kurses.
1. Die Inhalte sind zum Teil abgestimmt auf die Schweizer Informatik-Olympiade, zu deren Organisatoren die Veranstalter intensiven Kontakt pflegen.
2. Obwohl der Kurs sich ausdrücklich nicht ausschliesslich an Interessenten für ein Informatikstudium richtet, ist es ein Hauptziel, auf das Hochschulstudium insbesondere an der ETH vorzubereiten; einige ehemalige Besucherinnen und Besucher des Kurses haben sich für ein ETH-Informatik-Studium entschieden, nicht zuletzt aufgrund der positiven Erfahrungen mit den «cleveren Algorithmen». Ein wesentlicher Aspekt dieser Outreach-Veranstaltung ist es, den Schülerinnen und Schülern zu ermöglichen, etwas «ETH-Luft zu schnuppern». Es sei an dieser Stelle noch erwähnt, dass ein Grossteil (ca. die Hälfte) nicht aus Zürich kommt und sie teilweise grosse Strecken auf sich nehmen, um mittwochabends an die ETH zu kommen.
Forschung und Entwicklung von didaktischen Konzepten und Tools
Eine der grössten Herausforderungen von Informatikunterricht besteht darin, wesentliche Konzepte altersgerecht bereits früh aufzugreifen. Eine erste Einführung bleibt oftmals bei der Programmierung stecken und die eigentlichen Kernkonzepte fallen aus zeitlichen Gründen weg. Initiativen wie das neuseeländische CS Unplugged (https://csunplugged.org/de/) oder das deutsche Abenteuer Informatik (http://www.abenteuer-informatik.de) gehen das Problem an, indem sie Kernkonzepte der Informatik gänzlich ohne Computer unterrichten. Im Rahmen unseres Kurses bauen wir eine Alternative auf, bei der wir die Anfänge des Programmierunterrichts bereits mit den Kernthemen verknüpfen und damit einen nachhaltigen und sinnstiftenden Unterricht aufbauen. Unser Ansatz fusst dabei auf Piagets Kontruktivismus bzw. den weiterentwickelten Ideen von Papert mit dem Paradigma «learning by getting things to work».
In die Entwicklung der Software TigerJython sind viele Erfahrungen eingeflossen, die im Kurs gemacht wurden. Auf der anderen Seite werden neue Features auch im Rahmen des Kurses erprobt. Hierdurch profitieren Lernende weit über den Kurs hinaus.
Contact information
Additional links
chevron_right Project websitePublications:
D. Komm, T. Kohn: An introduction to running time analysis for an SOI workshop. Olympiads in Informatics 11:77–86, 2017.
D. Komm, T. Kohn: Denn sie wissen nicht, was sie programmieren. Informatik Spektrum, 2019.