Um den Begriff "Algorithmus" ranken sich viele mystische Erzählungen. Dabei könnte eine Informationstechnische Grundbildung(ITG) die ideologischen Spekulationen um diesen Begriff entzaubern. ITG ist nicht die Beherrschung von Anwendungssoftware wie Mail, Word oder Browser. Themen der ITG sind die grundlegenden Konzepte der Informatik wie zum Beispiel Netzstrukturen, Verschlüsselung oder Datenspeicherung.
Der vorliegende Workshop beschäftigt sich mit dem Thema "Algorithmus". Wir starten mit der Alltäglichkeit von Algorithmen und wenden dann die erkannten Strukturen auf das Programmieren eines kleinen Spiels an. Im dritten Schritt kommen wir zur Analyse von Programmcode: Wann ist ein Programmcode gut, schlecht oder bösartig?
Material: Stift, Papier, Scratch, Javascript
Methode: Vortrag, Gruppenarbeit, Partnerarbeit am Computer
Zielgruppe: Menschen, die noch keine Erfahrung mit Programmierung gemacht haben, älter als 14 Jahre.
Dauer: Ein Tag
Lernziele
-
Algorithmen im Alltag analysieren
-
Beziehung zwischen Algorithmen und Daten erkennen
-
Algorithmisches Denken entwickeln
-
Unterschiede erkennen: guter - schlechter- bösartiger Code
-
Gesellschaftliche Bedeutung von Open Source erfassen
Verlauf
Spaghetti
Ziel: Algorithmen im Alltag erkennen
Aufgabe: TeilnehmerInnen erarbeiten sich einen Ablaufplan für einen Alltagsvorgang (Spaghetti kochen)
Material: Programmablaufblöcke auf Papier
Transfer: Autofahren
Banane
Ziel: erste Kontrollstrukturen erkennen: Sequenz, bedingte Verzweigung, Schleife
Aufgabe: Beschreibung des Verzehrs einer Banane korrigieren.
Material: Arbeitsblatt
Transfer: Geld abheben am Automaten
Scratch 1
Ziel: Einstieg in blockorientierte Programmierung mit Scratch/Snap! (Sequenz, Schleife)
Aufgabe: Ball auf einer Bühne steuern
Material: Scratch/Snap!
Transfer: Zweiten Ball selbsttätig in verschiedene Richtungen laufen lassen
Scratch 2
Ziel: Einstieg in blockorientierte Programmierung mit Scratch/Snap! (bedingte Verzweigung)
Aufgabe: Figur in Abhängigkeit von äußeren Bedingungen steuern
Material: Scratch/Snap!
Transfer: Mehrere Figuren laufen und reagieren lassen
Algorithmen von Anfang an
Javascript 1
Ziel: Computersprache verstehen
Aufgabe: Code eines Schnick-Schnack-Schnuck nachvollziehen
Material: Ausdruck von gut strukturiertem Code mit Kommentaren
Javascript 2
Ziel: Unterschiede von gutem und schlechtem Code erkennen
Aufgabe: Unterschiede von gutem und schlechtem Code erkennen
Material: Zweiter Ausdruck von schlechtem Code ohne Kommentare
Javascript 3
Ziel: Merkmale von bösartigem Code erkennen,
Aufgabe: Erweiterung des Codes um "Brunnen".
Material: Dritter Ausdruck mit bösartigem Code ohne Kommentare
Transfer: Beurteilung von Closed Code gegen OpenSource