Modul 05

Website: Open E-Learning-Center Niedersachsen (OpenELEC)
Kurs: Kompetenzen für das Unterrichten in der digitalen Welt
Buch: Modul 05
Gedruckt von: Gast
Datum: Montag, 23. Dezember 2024, 05:47

1. Algorithmen

 
Übersicht über die Kapitel: 

1.1 Was ist ein Algorithmus?

1.2 Algorithmus ja oder nein? 

1.3 Implementieren von Algorithmen

1.1. Was ist ein Algorithmus?

Algorithmen sind zentraler Bestandteil der digitalen Welt. Was aber ist ein Algorithmus genau? Das erfahren Sie im untenstehenden Video.


1.2. Algorithmus - Ja oder Nein?

 

Entscheiden Sie, ob folgende Handlungen durch einen Algorithmus beschrieben werden können!

 

1.3. Implementieren von Algorithmen

Ein Algorithmus ist die konzeptionelle Lösungen für ein Problem. Zum Leben erweckt wird ein Algorithmus erst in einer Programmiersprache.

Die Umsetzung eines Algorithmus in eine Programmiersprache bezeichnet man als Implementierung.

Ein Programm implementiert also einen Algorithmus. Zusätzlich zu den Grundoperationen (in Snap! einzelne Blöcke) benötigen wir letztlich nur 3 sogenannte Strukturelemente: Sequenzen, Wiederholungen und Fallunterscheidungen.

Sequenz

Eine Folge von Anweisungen wird der Reihe nach ausgeführt.

snap! sequenz

Wiederholung

Eine Folge von Anweisungen wird wiederholt. 

Snap! Block für Wiederholung

Genau genommen...

Hier gibt es genau genommen (zwei) unterschiedliche Formen. Einmal eine Wiederholung mit fester Anzahl (im Beispiel 4; das kennen wir bereits) und einmal eine Wiederholung mit Bedingung (wiederhole solange bis du nicht mehr hungrig bist; das kennen wir noch nicht).

 Snap! Block für Wiederholung mit Kondition


Fallunterscheidung

Es werden alternative Abläufe beschrieben. Falls wir hungrig sind, kochen wir etwas.

Snap! Block für Fallunterscheidung

Um Fallunterscheidungen in unseren Algorithmen auch in Snap! umsetzen zu können, werden wir uns als Nächstes ansehen, was es mit den sechseckigen Blöcken auf sich hat und wie diese Fallunterscheidungen funktionieren!


2. Fallunterscheidung

 
Übersicht über die Kapitel: 

2.1-2.2 Arten von Blöcken

2.3 Wahrheitswerte

2.4 Fallunterscheidung

2.5-2.10 Interaktives Malprogramm

2.12-2.14 Übungen zu Fallunterscheidungen

2.15 Komplexe Bedingungen

2.16-2.20 Exkurs: Spaß in Snap!

2.1. Arten von Blöcken

Wir haben bereits gesehen, dass es verschiedene Arten von Blöcken gibt. Um sie besser unterscheiden zu können, haben sie unterschiedliche Formen (und Namen):

3 Blöcke: Befehl, Funktion, Prädikat

Öffnen Sie die  Vorlage. Führen Sie dann nacheinander die drei Blöcke unten im Bild aus!

Welchen Unterschied bemerken Sie?

Hinweis: Probieren Sie auch unterschiedliche Eingaben (z.B. 6 und 2 statt 2 und 5).

Blöcke mit unterschiedlichen Eingaben

Tipp: Block ausführen
Ein Klick auf den Block führt ihn aus. 

Eine mögliche Lösung zum Vergleichen erhalten Sie auf der nächsten Seite

2.2. Mögliche Lösung (Arten von Blöcken)

Der eckige (Befehls-)Block sage (Hallo!) "tut etwas": Er bringt das Objekt dazu etwas auf der Bühne zu "sagen".

Der zweite und dritte Block erzeugen Sprechblasen "direkt am Block", sie geben Werte zurück, haben aber keinen Effekt auf der Bühne.

Genau genommen gibt der zweite Block (Typ Funktion) einen beliebigen Wert zwischen 1 und 10 zurück, der dritte Block (Typ Prädikat) nur den Wert wahr oder falsch.

2.3. Wahrheitswerte

 

Einer Frage wie "Mauszeiger gedrückt?" oder Aussage wie "Heute regnet es" oder "1<3" lässt sich ein Wahrheitswert zuordnen. Es gibt nur zwei Werte, die ein Wahrheitswert annehmen kann: wahr und falsch (gewissermaßen ja und nein).

Blöcke, die Wahrheitswerte zurückgeben, haben wie gerade gesehen diese Form in Snap!:

Snap Sequenz

 

Im Unterschied zu diesen Formen:

Snap! Block "gehe 10 Schritte"  5 geteilt durch 2 Block

 

Entscheiden Sie, welchen Wahrheitswert die folgenden Blöcke zurückgeben!

Hinweis: Sie können die Blöcke hier in Snap! ausprobieren.

 

2.4. Fallunterscheidung

Solche Wahrheitswerte können wir dann nutzen, um in unserem Programm verschiedene Fälle zu unterscheiden.

Betrachten wir folgendes Beispiel:

Wir entwickeln ein Spiel und möchten Spielern die Möglichkeit geben, neue Gegenstände in einem Shop zu erwerben. Dafür benötigen sie Rubine. Klickt der Spieler nun auf die Schaltfläche "Kaufen", so muss zusätzlich geprüft werden, ob er über genügend Rubine verfügt, um den gewünschten Gegenstand überhaupt erwerben zu können.

Für solche Fälle bietet sich die Verwendung einer Fallunterscheidung an (im Englischen auch: if bzw. if-else statement (Anweisung)).

Eine Fallunterscheidung dient dazu, alternative Abläufe zu beschreiben.

Hinweis: Sie können deutsche Untertitel aktivieren.

In Snap! findet sich die Fallunterscheidung in der Kategorie Steuerung. Die Beispiele aus dem Video würden also sinngemäß zu:

if Schleife
if/else Schleife

Hinweis: Sie sehen schon, Fallunterscheidungen gibt es in zwei Varianten, als einseitige (falls) und zweiseitige (falls-sonst) Fallunterscheidung.


2.5. Interaktives Malprogramm (Schritt 1)

Wie wir das jetzt in unserem eigenen Programm verwenden können, wollen wir uns an einem Beispiel ansehen.
Unser heutiges Projekt wird ein interaktives Malprogramm sein. Mehr dazu erfahren Sie im Video!
Schritt 1

Öffnen Sie dieses fast leere Snap!-Projekt und lassen Sie das Objekt dem Mauszeiger folgen!

Tipps: 
  • Fügen Sie Ihre Blöcke an den Wenn (Grüne Flagge) angeklickt Block an. Klicken Sie dann die grüne Flagge rechts oben, um das Programm zu starten.
  • Benötigte Blöcke: 

    fortlaufend  gehe zu

Eine mögliche Lösung finden Sie auf der nächsten Seite. 

2.6. Interaktives Malprogramm (Lösung 1)

Mögliche Lösung zum Vergleichen (Schritt 1): 

Lösung 1

2.7. Interaktives Malprogramm (Schritt 2)

Nutzen Sie den Block "Stift runter" aus der Kategorie "Stift", um dem Objekt eine Malspur hinzuzufügen!

Tipp: 

  • Benötigte Blöcke

    Stift runter Block

2.8. Interaktives Malprogramm (Lösung 2)

Mögliche Lösung zum Vergleichen (Schritt 2): 

Mögliche Lösung

2.9. Interaktives Malprogramm (Schritt 3)

Nutzen Sie eine Fallunterscheidung und prüfen Sie, ob die Maustaste gedrückt ist! In diesem Fall soll der Block "Stift runter", in allen anderen Fällen der Block "Stift hoch" aufgerufen werden!

Tipps:

Objekte nicht mehr greifbar machen: 

Sie greifen ein Objekt, wenn Sie dies mit der linken Maustaste anklicken und diese gedrückt halten. Es erscheint ein Schatten.

Für unser Malprogramm ist dieses Verhalten unpassend.
Entfernen Sie daher den Haken bei greifbar (unter dem Namen Ihres Objekts), damit das Objekt nicht mehr greifbar wird.

 

greifbar

 

nicht greifbar


Benötigte Blöcke

An zusätzlichen Blöcken benötigen wir noch:

 

maustaste gedrückt?

 

stift hoch

 

falls ... sonst ...

Auf der nächsten Seite finden Sie eine mögliche Lösung (zum Vergleichen). 

2.10. Interaktives Malprogramm (Lösung 3)

Mögliche Lösung zum Vergleichen: 

Lösung 3-1

 

Hier eine Lösung, die auch Stiftfarbe und Stiftdicke ändert:

 

Lösung 3-2

 

Hier eine Lösung, die zwei falls-Blöcke verwendet:

 

Lösung 3-3

 

Hier noch eine weitere mögliche Lösung:

 

 


2.11. Übungen zu den Fallunterscheidungen I

Aufgabe 1

Wir können jeden Block, der einen Wahrheitswert zurückgibt, in der Bedingung eines falls- bzw. falls-sonst-Block verwenden.

Betrachten wir das folgende Skript, das Feedback zu einer erzielten Note gibt:

Note

Wir haben verschiedene Fälle, die wir unterscheiden müssen. Das Skript prüft nacheinander alle bedingten Anweisungen. Trifft die zu prüfende Bedingung zu, werden die Blöcke im Inneren ausgeführt.

Öffnen Sie die Vorlage.

Stellen Sie eine Vermutung auf, was die Figur sagt, wenn Sie mit der Note 1, mit der Note 3 oder mit der Note 6 aufgerufen wird! Stimmt Ihre Vermutung mit dem eigentlichen Verhalten überein?

Auf der nächsten Seite finden Sie eine mögliche Lösung zum Vergleichen.

2.12. Übungen zu den Fallunterscheidungen - Lösung I

Mögliche Lösung zu Aufgabe 1 zum Vergleichen: 

Bei Note 1 sagt die Figur "Sehr gut! Weiter so!", denn 1 ist kleiner als 3.
Bei Note 4 sagt die Figur "Nochmal gut gegangen!".
Bei Note 6 sagt die Figur "Das nächste mal wird's was!", da 6 größer ist als 4.

2.13. Übungen zu den Fallunterscheidungen II

Aufgabe 2

Erstellen Sie einen Skript, das das Kostüm des Zauberers abhängig vom Wetter (Regen oder Sonne) ändert!
Wenn es regnet, sollte der Zauberer einen Regenschirm beschwören, bei Sonne sollte er ihn verschwinden lassen.

Tipp: Benötigte Blöcke

Neben den Blöcken, mit denen Sie das Kostüm wechseln, die wir Ihnen bereits in den Skriptbereich gelegt haben, benötigen Sie Blöcke aus den Kategorien Operatoren, Variablen und Steuerung.

falls Block

x = y Block

wetter

Auf der nächsten Seite finden Sie die Lösungen zum Vergleichen. 

2.14. Übungen zu den Fallunterscheidungen - Lösung II

Mögliche Lösung zu Aufgabe 2 zum Vergleichen: 

Lösung 2   


Lösung 1

2.15. Komplexe Bedingungen

 

Einfache Bedingungen können wir nun ausdrücken. Allerdings benutzen wir im Sprachgebrauch oftmals komplexere Bedingungen:

  • Falls das Wetter heute schön ist und ich Zeit habe, dann gehe ich Eis essen.
  • Falls wir Obst oder Gemüse für das Abendessen brauchen, gehe ich noch einkaufen.
  • Falls wir kein Obst mehr haben, gehe ich noch einkaufen.

Was wir dabei ganz instinktiv verwenden, können wir auch mit Blöcken ausdrücken:

Komplexe Bedingungen
 

Überlegen Sie, zu welchem Wahrheitswert die folgenden Blöcke ausgewertet werden!

Hinweis: Sie können die Blöcke hier in Snap! ausprobieren. Zerlegen Sie die Blöcke auch gern in ihre Einzelteile und führen Sie diese aus, um zu verstehen, was sie machen.

 

2.16. Exkurs: Spaß in Snap! - Schritt 1

Das grundlegende Handwerkszeug für die Implementierung beliebiger Algorithmen in Snap! kennen Sie jetzt.

Wenn Sie Lust bekommen haben, versuchen Sie doch einmal selbst, einen Algorithmus in Snap! umzusetzen oder sehen sich ein paar der Projekte an, die hier auf der Snap!-Seite vorgestellt werden.

Falls Sie Lust haben unser Malprogramm von vorhin zu erweitern, haben wir Ihnen in diesem optionalen Exkurs ein paar Hilfestellungen zusammengestellt, um dem Programm einen kleinen Kniff zu verpassen.

Schritt 1:
Öffnen Sie das Malprogramm erneut. Duplizieren Sie das Objekt, indem Sie dem Hinweis folgen!

Hinweis: Objekt duplizieren

Finden Sie diesen Bereich in Ihrem Snap!-Fenster (rechts, unter der Bühne).

 duplizieren

Klicken Sie mit der rechten Maustaste auf das Objekt. Wählen Sie Duplizieren.

duplizieren ohne rechte maustaste

Eine mögliche Lösung finden Sie auf der nächsten Seite.

2.17. Exkurs: Spaß in Snap! - Schritt 2

Mögliche Lösung zu Schritt 1: 

Neben Ihrem bisherigen Objekt sollte ein neues Objekt mit dem Namen Objekt(2) entstanden sein.

 Lösung duplizieren


Schritt 2:

Wir wollen nun erreichen, dass dieser Stift etwas anderes malt. Versichern Sie sich, dass Sie Objekt(2) ausgewählt haben (angedeutet durch den Rahmen) und tauschen Sie den Block gehe zu (Mauszeiger) durch die folgende Block-Kombination aus!

Gehe zu Maus x & y Position

Hinweis: Sie werden noch keinen Unterschied sehen. Auch der Block  gehe zu (Mauszeiger) stellt eine Abstraktion dar (eben genau von dieser Blockkombination).

Tipp: Block austauschen
Klicken Sie mit der rechten Maustaste auf den Block gehe zu (Mauszeiger) und wählen Sie Löschen.

 

Löschen

 Ziehen Sie den Block gehe zu x: () y: () aus der Kategorie Bewegung an die Stelle.

Ziehen Sie dann die Blöcke  Maus x-Position und Maus y-Position.

Block austauschen

Eine mögliche Lösung finden Sie auf der nächsten Seite. 

2.18. Exkurs: Spaß in Snap! - Schritt 3

Mögliche Lösung von Schritt 2: 

Bisher sollte das Skript so aussehen:

Fortschritt

Bisher sehen wir noch keinen Effekt: Wir haben eine Implementierung durch eine andere ausgetauscht.


Schritt 3:

Ändern Sie die Stiftfarbe von Objekt(2)!

Tipp: Stiftfarbe verändern
Klicken Sie auf das farbige Quadrat im Block setze Stiftfarbe auf ☐.

 Farbe ändern


2.19. Exkurs: Spaß in Snap! - Schritt 4

Mögliche Lösung zu Schritt 3: 

Lösung andere Farbe

Hinweis: Sie sehen jetzt nur noch die blaue Linie, da der rote Stift vom blauen Stift übermalt wird.


Schritt 4:

Wie können wir nun dafür sorgen, dass Objekt(2) etwas anderes malt?

Eine Möglichkeit ist: Wir lassen Objekt(2) nach unten gehen, wenn die Maus nach oben geht.

Das können wir erreichen, indem wir die y-Koordinate umdrehen.

Invertieren Sie die y-Richtung, indem Sie die folgende Änderung vornehmen:

Ersetzen Sie den Block  Y Pos  durch  0 - Maus y Position  

Tipp: Block austauschen
0 minus Position

2.20. Exkurs: Spaß in Snap! - Schritt 5

Mögliche Lösung zu Schritt 4: 

Lösung Minus

 Hier gibt's das komplette Projekt.


Schritt 5:

Hier ist noch längst nicht Schluss!

Momentan spiegelt unser Programm den Stift nach oben bzw. unten. Fügen Sie doch zwei weitere Objekte zum Projekt hinzu, die die Mausbewegung in weitere Richtungen (z.B. rechts bzw. links) spiegeln, um ein Kaleidoskop zu erzeugen!

-------------------------------------

Dieser Inhalt stellt ein Derivat des unter CC-BY-SA lizenzierten Inhalts Verkehrt herum gemalt - Spiegelbild von Jadga Hügle und Jens Mönig dar.


3. Eigene Blöcke

 
Übersicht über die Kapitel: 

3.1-3.4 Eigene Blöcke erstellen

3.5-3.6 Exkurs: Funktionsblöcke

3.1. Eigene Blöcke erstellen I

Im Video zu Algorithmen haben wir gelernt, dass Algorithmen selbst wieder Bausteine für Algorithmen sein können. Tatsächlich verfügt auch jeder der Blöcke in Snap! über einen Algorithmus, der ihm sagt, welche Schritte er befolgen muss um das zu tun, was er tut. 

Wieder zeigt sich das Prinzip der Abstraktion mit: Wir müssen nicht alle Details eines Blocks verstehen, um ihn nutzen zu können. Und auch wir können komplexere Algorithmen in einen eigenen Block verpacken!

Um Algorithmen als Teil von Algorithmen in Snap! übersichtlich darstellen zu können, greifen wir häufig auf eigene Blöcke zurück. In diesem Abschnitt wollen wir uns ansehen, wie wir eigene Blöcke erstellen.

Werfen wir einen Blick auf noch einen anderen Algorithmus, den wir bereits in Modul 01 entworfen haben.
Ein Algorithmus, der ein Quadrat zeichnet.

Seine Implementierung sah so aus:

mit Wiederholung
Snap! Anweisung, um ein 7-Eck zu zeichnen

Wir werden diese Skripte nun in eigene Blöcke auslagern. 

Wie das genau funktioniert, sehen Sie im Video:
Eigener Block zeichne Polygon mit (seitenzahl) Seiten

Im Modul 01 haben wir ein Skript erstellt, das ein beliebiges Polygon (n-Eck) zeichnet. 

Öffnen Sie die Vorlage und erstellen Sie einen eigenen Block, der ein beliebiges Polygon (n-Eck) zeichnet. Der Block soll eine Eingabe seitenzahl für die Seitenzahl entgegennehmen.

Tipps: 
Einen neuen Block erstellen

Klicken dazu auf die Schaltfläche 'Neuer Block', die wir am Ende jeder Kategorie der Palette finden und erstellen einen neuen Befehlsblock.

Es öffnet sich ein neues Fenster, in dem Blöcke genau wie Skripte im Skriptbereich editiert werden können.

 Neuer Block

Blockeditor erneut öffnen
Sollten Sie den Blockeditor geschlossen haben, klicken Sie mit der rechten Maustaste auf den Block und wählen sie Bearbeiten....

Eingabe vs. Beschriftung

Achten Sie beim Erstellen des Blocks darauf, dass seitenzahl als Eingabe und nicht als Beschriftung ausgezeichnet ist.
Klicken Sie auf ein Wort wie seitenzahl um es von Beschriftung zu Eingabe zu ändern oder umgekehrt.

 

Polygonblock


Eine mögliche Lösung finden Sie auf der nächsten Seite. 

3.2. Eigene Blöcke erstellen II

Mögliche Lösung: 

Eine möglich Lösung ist:

Polygon Block Lösung



Weiter geht's: 
Verändern Sie Ihren Block zeichne Polygon mit (seitenzahl) Ecken so, dass er auch eine Eingabe für die Seitenlänge entgegennimmt!

Eine mögliche Lösung finden Sie auf der nächsten Seite. 

3.3. Eigene Blöcke erstellen III

Mögliche Lösung zum Vergleichen: 

Lösung


Weiter geht's: 

Schreiben Sie ein Skript, in dem Ihr gerade erstellter Block mindestens 3 mal aufgerufen wird!

3.4. Eigene Blöcke erstellen IV

Mögliche Lösung zum Vergleichen: 

Hier sind viele Lösungen denkbar. Sie können den Block in einer Sequenz mehrfach aufrufen:

Lösung

oder innerhalb einer Wiederholung verwenden:

Lösung


3.5. Exkurs: Funktionsblöcke

In diesem optionalen Exkurs wollen wir uns ansehen, wie wir Blöcke dazu bringen können, Werte zurückzugeben.

Eigener Funktionsblock

Damit ein Block auch Werte zurückgeben kann, wird ein spezieller Block verwendet: berichte () aus der Kategorie Steuerung.

Maximum von 2 Zahlen

Nachdem Sie bereits wissen, wie Sie einen eigenen Befehlsblock erstellen, ist der Schritt zu einem eigenen Funktionsblock gar nicht weit. Die untenstehende Aufgabe führt Sie in die Erstellung eines eigenen Funktionsblocks ein, indem Sie einen bestehenden Block modifizieren dürfen. Sie können gerne die Tipps verwenden!

Öffnen Sie die  Vorlage und betrachten Sie den Block "Maximum von zahl1 und zahl2".
Modifizieren Sie diesen so, dass er das Maximum von 3 Zahlen ermittelt!

Tipps: 
Block editieren: 
Um den Block zu editieren, klicken Sie mit der rechten Maustaste und wählen sie Bearbeiten.... Erweitern Sie den Hutblock passend.

Zusätzliche Eingabe: 

Eingabe erstellen


3.6. Lösung zum Exkurs Funktionsblöcke

Nachfolgend finden Sie zwei mögliche Lösungen.

 

 


4. Algorithmen und Gesellschaft

 
Übersicht über die Kapitel: 

4.1 Algorithmen und Gesellschaft

4.2 Exkurs: Algorithmen in der Grundschule

4.1. Algorithmen und Gesellschaft - Beispiele

"Algorithmen" sind nicht nur wichtiger, für sich stehender Bestandteil der KMK-Kompetenzen. Sie spielen auch in den unterschiedlichsten Disziplinen eine Rolle, entscheiden doch Algorithmen, welche Suchergebnisse wir erhalten, welche Nachrichten wir lesen oder welche Produkte uns angezeigt werden. Auch die Überwachung dutzender Server oder die Auswertung seismographischer Daten erfolgt durch Algorithmen. Schreiben wir Texte digital, so unterstützt uns die Rechtschreibkorrektur – noch etwas hinter dem Algorithmen stecken.

Algorithmen beeinflussen unser Handeln und treffen zudem Entscheidungen, die uns auch persönlich betreffen. Wir haben Ihnen im Folgenden einige Beispiele herausgesucht.

Auswahl der besten Reiseroute

Reiseroute auf Karte

Bei der Routenplanung ist es die Aufgabe der Algorithmen den schnellsten, kürzesten, wirtschaftlichsten oder landschaftlich schönsten Weg von einem Start- zu einem Zielort zu finden. Algorithmen werden hier eingesetzt, um uns das Leben angenehmer zu machen. Ein bekannter Algorithmus, der genau diesen Weg findet, ist übrigens der Dijkstra-Algorithmus.

Auch wenn manch einer sich so sehr auf sein Navigationssystem verlässt , dass er schonmal stundenlang in die falsche Richtung fährt oder ins Meer stürzt, weil die noch in Bau befindliche Brücke auf seinem Navigationssystem schon existiert, würden wir Navigationssysteme vermutlich als unproblematisch beschreiben.

Automatischer Handel mit Aktien

Nachdem Computer deutlich schneller rechnen können als wir Menschen, ist ihr Einsatz im Börsenhandel nicht abwegig. Wie groß der Anteil der Computer-Broker wirklich ist, überrascht viele: Bereits 2012 wurden 85 Prozent des US-Aktienhandels von Algorithmen durchgeführt.

Dahinter verbergen sich komplexe mathematische Formeln, die versuchen aus historischen Marktdaten und aktuellen Marktsignalen Rückschlüsse auf den besten Zeitpunkt für An- bzw. Verkauf zu schließen. Das das nicht immer reibungslos klappen muss, zeigte sich am Schwarzen Montag 1987, dem ersten Börsenkrach nach dem zweiten Weltkrieg.

Filterblasen

Filterblasen sind ein Phänomen, das vor allem im Kontext sozialer Netzwerke und Suchmaschinen existiert. In der Kategorie #kurzerklärt beschreibt die Tagesschau, was unter Filterblasen zu verstehen ist.



Eignung eines Bewerbers feststellen

Personalabteilungen nutzen Algorithmen, um die richtigen Bewerber für das eigene Unternehmen auszuwählen. Aus Modul 00 wissen wir, dass in Zukunft Kompetenzen in den Bereichen Kreativitität, kritisches Denken, Kollaboration und Kommunikation besonders wichtig sind. Festzustellen, ob ein Bewerber diese Kompetenzen mitbringt, ist nicht leicht und Entscheidungen basieren oft rein auf der eigenen Intuition. In Großbritannien und den USA werden daher über 70% der Bewerbungen zunächst von Algorithmen bewertet, ehe ein Mensch die Bewerbung sichtet.

Der Wunsch hinter dem Einsatz von Algorithmen ist, dass sie zuverlässiger und vor allem objektiver Entscheidungen treffen.
Berichte aus der Praxis zeigen, dass dem nicht immer so ist. Der folgende Tweet fasst das pointiert zusammen.

Vision and Reality

Beurteilen, ob ein Straftäter rückfällig wird

Die US-Justizbehörden nutzen Algorithmen, die abschätzen, ob eine Straftäterin bzw. ein Straftäter wieder rückfällig wird. Das hat direkte Auswirkungen auf alle Betroffenen, beeinflusst die Entscheidung doch ihr Strafmaß.

In den letzten 20 Jahren wurden solche Algorithmen bei mehr als einer Million Angeklagten eingesetzt. Die mit den Algorithmen verbundene Hoffnung waren fairere Entscheidungen (als sie Menschen treffen würden).

Obwohl der Algorithmus keine Information über die ethnische Herkunft der Angeklagten hatte, wurden schwarze bzw. weiße Angeklagte unterschiedlich behandelt. Der Algorithmus ist nicht nur nicht gut, wie Studien zeigen, sondern ist zudem auch nicht fair.

Übrigens: Für die letzten beiden Beispiele gilt: Hier werden häufig Algorithmen aus dem Bereich der Künstlichen Intelligenz verwendet. Wenn Sie mehr dazu erfahren wollen, finden Sie unter aiunplugged.org Anregungen, wie Sie künstliche Intelligenz anhand einfacher, spielerischer Aktivitäten nachvollziehen können. Die Beispiele sind übrigens auch für den Unterrichtseinsatz geeignet.


Hinter dem Einsatz von Algorithmen steht der Wunsch, Entscheidungen schneller, besser und objektiver zu treffen als Menschen. 

Am Ende aber müssen wir als Gesellschaft entscheiden: Ist das, was möglich ist, auch sinnvoll? Ist der Einsatz fair, wo doch auch Menschen falsche Entscheidungen treffen? Ist es demokratisch?

Besteht Diskussionsbedarf? Tauschen Sie sich gern mit Ihrer Lerngruppe aus.



4.2. Exkurs: Algorithmen in der Grundschule

Auch in der Grundschule lassen sich Algorithmen praktisch ausprobieren. In Ländern wie der Schweiz oder England ist Informatik und damit unter anderem das Thema Algorithmen übrigens bereits Stoff in der Grundschule.

Informatik ohne Computer

CS Unplugged (Computer Science Unplugged, also Informatik ohne Strom) beschreibt einen Ansatz, Informatik ganz ohne Rechnereinsatz anfassbar zu machen. Informatische Konzepte wie Algorithmen werden spielerisch mit Karten, Schnüren oder durch Herumrennen im wahrsten Sinne des Wortes begreifbar.

Ein Beispiel zeigen die Entwickler von CS Unplugged in ihrem Video zu Sortieralgorithmen. Dort haben die Kinder unterschiedlich schwere Gewichte und eine Waage vor sich. Ihre Aufgabe ist es die Objekte möglichst schnell nach Gewicht zu ordnen. Dabei zeigt sich: Mit dem richtigen Algorithmus geht das vergleichsweise flott und es werden deutlich weniger Schritte benötigt.

Hinweis: Es gibt noch viele weitere Ideen zu CS Unplugged, auch zu anderen Themen als Algorithmik. Die Beispiele zeigen, dass auch zunächst "digitale Themen" von einer "ganz analogen" Vermittlung profitieren können.

Programmierbares Spielzeug

Es gibt jede Menge kleiner Roboter, die programmierbar sind und sich in unterschiedlichen Altersstufen einsetzen lassen. Die von der Optik an eine Biene angelehnten BeeBots (siehe Video) lassen sich durch Tasten programmieren, eine Abfolge von Bewegungen durchzuführen. Der Ozobot fährt Linien ab und lässt sich mit Filzstift über Farbcodes (aber auch vom Computer aus) programmieren.

Hinweis: Wir stehen in keiner Weise in Verbindung mit den Herstellern dieser Produkte.  Die Produkte dienen nur als Beispiele für Medien, die bereits jetzt in Grundschulen weltweit eingesetzt werden.


Software

Scratch, das schweizer Taschenmesser unter den Informatikwerkzeugen an Grundschulen, wirkt auf den ersten Blick wie eine einfache Website zum Programmieren lernen. Aber Scratch ist viel mehr: Genau wie Snap! regt es dazu an Dinge auszuprobieren und selbst kreativ zu werden. Dabei gerät auch das eigentliche Programmieren schnell in den Hintergrund.
Anregungen finden Sie beispielsweise hier.

 Scratch Screenshot


5. Selbsttest

 

Wofür stellt dieser Block eine abgekürzte Schreibweise dar?

Option A

Option B

Option C

Option D

 
 
 
 
 
 
 
 
 

6. Literaturempfehlungen


Algorithmen – von Hammurapi bis Gödel

7. Ende Modul 05

Super, du hast MODUL 05 erfolgreich beendet!

Medaille