Deskriptive Auswertung von Daten mit Snap!

Die Auswertung von Daten gehört zu den Kernkompetenzen einer Gesellschaft, welche wissensbasiert handeln will. Deshalb erklärt auch der Lehrplan der Deutschschweiz das Auswerten von Daten aus der Umwelt der Schülerinnen und Schüler als eines der übergeordneten Ziele des Informatikunterrichts. Darauf hat unter anderem auch das Statistische Amt des Kantons Zürich reagiert und eine Webseite zum Thema Daten- & Statistikkompetenz aufgeschaltet, welche sich an Lernende wendet. Nebst theoretischen Überlegungen zur Wissenspyramide stellt das Amt auch einen Datensatz mit CO2-Daten zu Verfügung, der von den Lernenden analysiert werden kann. Diese Daten sollen dann mit der Statistiksoftware R und einem Beispielskript ausgewertet werden.

R für die Sekundarstufe I?

R ist ein sehr mächtiges, frei erhältliches und quelloffenes Statistikwerkzeug, welches durch zahlreiche Erweiterungen sich an die individuellen Bedürfnisse von Statistikerinnen und Statistikern anpassen lässt. Da es ausserdem über eine Skriptsprache gesteuert wird, lassen sich mit R durchgeführte statistische Analysen auch leicht nachvollziehen – vorausgesetzt, man kennt sich mit dem Werkzeug aus.

Diese Steuerung der Software über Textelemente führt aber auch dazu, dass viele Menschen sich mit R schwertun, da die Lernkurve ziemlich steil sein kann. Auf der Sekundarstufe I kommt hinzu, dass man nicht zwingend davon ausgehen kann, dass die Lernenden über genügende Fertigkeiten in Bezug auf das Tastaturschreiben verfügen, was die Hürde zusätzlich erhöhen kann. Nun ist es durchaus machbar, mit Schülerinnen und Schülern dieses Alters R zu verwenden, in der Regel bedarf dies aber viel Unterstützung durch die Lehrperson oder dann beschränkt sich die Auseinandersetzung auf eine relativ triviale Abarbeitung eines vorgefertigten Skripts mit geringer Wahrscheinlichkeit auf einen späteren Transfer. Ausserdem steht der Unterricht auf der Sekundarstufe I auch unter einem hohen Druck, die Lernenden dazu zu befähigen, die vielfältigen Kompetenzen des Lehrplans zu meistern und der Umgang von Daten ist nur einer von sieben Teilen im Bereich Medien und Informatik.

Rettung durch die Tabellenkalkulation?

Wäre es da nicht sinnvoll, auf eine bei den Schülerinnen und Schülern bekanntere und einfacher zu bedienende Software wie eine Tabellenkalkulation umzusteigen? Um eine Antwort auf diese Frage zu erhalten, müssen verschiedene Aspekte berücksichtigt werden:

  1. Der Datensatz selbst: Bei einfach aufgebauten oder kleinen Datensätzen mag eine Tabellenkalkulation die erste Wahl sein. Der CO2-Datensatz enthält aber über 2000 Datensätze, was einer Bearbeitung in einer Tabellenkalkulation nicht gerade entgegenkommt. Bei solch grossen Datensätzen ist es schwierig, den Überblick zu behalten.
  2. Das Ziel der Auswertung: Wenn es darum geht, schnell eine Summe zu berechnen oder eine Linien- oder Balkengrafik zu zeichnen, dass ist die Tabellenkalkulation meist die erste Wahl. Wenn aber umfassendere Untersuchungen durchgeführt werden sollen, kann es schwierig sein, die einzelnen Schritte im Prozess nachzuvollziehen und auf eine andere Datenlage anzuwenden. Und genau dies soll ja eines der Ziele der Arbeit mit dem CO2-Datensatz sein. Es geht nicht nur darum, Erkenntnisse über diesen einzelnen Datensatz zu gewinnen, sondern diese Kenntnisse später auch auf andere Daten anzuwenden, bei denen vielleicht eine ganz andere Fragestellung im Fokus steht.
  3. Die Methodik: In der Mathematik, Informatik und den Naturwissenschaften ist es üblich, mit Werkzeugen zu arbeiten, bei denen Arbeitsschritte nachvollziehbar sind. Eine Reihe von abzuarbeitenden Befehlen erfüllt diese Aufgabe in der Regel besser, als wenn man auf eine grafische Oberfläche setzt, wie dies bei der typischen Tabellenkalkulation der Fall ist. Die schlechte Nachvollziehbarkeit von Analysen mit Tabellenkalkulationen führt dann auch immer wieder zu Problemen.  Dass dabei ein Produkt besonders häufig genannt wird, hat weniger mit dessen Qualität als vielmehr dessen grosser Verbreitung zu tun.

Diese Überlegungen zeigen, dass anscheinend nur die Wahl zwischen der unzugänglichen Arbeit mit einer Skriptsprache wie R oder der in den Naturwissenschaften eher weniger gern gesehenen, weil schlecht reproduzierbaren Arbeit mit einer Tabellenkalkulation bleibt.

Zu erreichende Ziele

In ein solches Dilemma verstrickt, lohnt es, sich noch einmal die Zielsetzungen vor Augen zu führen. Was sollen die Lernenden aus der Auseinandersetzung mit dem Lernobjekt (hier ein für Schulverhältnisse vergleichsweise grosser Datensatz) mitnehmen?

  1. Die Lernenden sollen eine grundsätzliche Fertigkeit im Umgang mit grösseren Datenmengen erwerben. Dazu gehören unter anderem:
    Sich einen Überblick und die Inhalte des Datensatzes zu verschaffen;
    einfache statistische Berechnungen auf den Datensatz anzuwenden;
    den Datensatz möglicherweise visuell auszuwerten (wird in diesem Beitrag nicht behandelt);
  2. Die Lernenden sollen dabei Methoden kennenlernen, welche typisch für das entsprechende professionelle Umfeld sind. Dazu gehören:
    Die Arbeitsweise mit einer professionellen Statistiksoftware zumindest in Ansätzen kennen lernen;
    bei der Arbeit mit Daten auf die Reproduzierbarkeit der Berechnungen zu achten;
    Einblick in die Funktionsweise statistischer Methoden erlangen.

Grundsätzlich würde R diese Bedingungen erfüllen, den Anwender wird der Einstieg durch die neu zu erlernenden Konzepte mit der gleichzeitig abverlangten Genauigkeit beim Eingeben der Befehle (Tippfehler) aber erschwert. Eine didaktische Reduzierung auf den eigentlichen Kern, die Nutzung von flexiblen, reproduzierbaren Befehlen zum Umgang mit Daten ist also angesagt.

In den folgenden Ausführungen soll nun gezeigt werden, dass eine Sprache wie Snap! aufgrund der blockbasierten Schnittstelle dazu ideale Voraussetzungen bietet und damit den Lernenden einen späteren Umstieg auf ein Statistikprogramm wie R wesentlich erleichtern kann.

Umsetzung mit Snap!

Da Snap! es ermöglicht, eigene Blöcke (Funktionen, Befehle, …) zu schreiben, kann die benötigte Funktionalität den Lernenden entweder zu Verfügung gestellt werden, oder, falls dies erwünscht ist, können diese die Erweiterungen selbst schreiben oder zumindest deren Funktionsweise nachvollziehen.

Während Snap! schon von Grund auf viele interessante Blöcke enthält und diese durch bereits vorhandene Bibliotheken (z.B. Frequency Distribution Analysis, Variadic reporters) ergänzt werden können, ist zumindest bei einer ersten Auseinandersetzung mit grösseren Daten sinnvoll, den Lernenden entsprechend zugeschnittene Blöcke zu Verfügung zu stellen.

Deshalb ist es sinnvoll, einmal einen Blick in den entsprechenden Auftrag zum CO2-Datensatz zu werfen (siehe R Skript). Die Lernenden sollen …

  • die Grösse des Datensatzes bestimmen (Anzahl Spalten und Zeilen);
  • die Überschriften der einzelnen Spalten herauslesen;
  • die Zeitabstände zwischen den Messzeitpunkten berechnen;
  • den Mittelwert (mean), Zentralwert (median) und häufigst vorkommenden Wert (modus) bestimmen;
  • Minimum und Maximum, sowie die Spannweite feststellen;
  • die Standardabweichung (standard deviation) und Streuung (variance) berechnen;
  • eine Übersichtstabelle (summary) zu den Daten generieren.

Nachdem die Aufgabenstellungen klar sind, können die entsprechenden Befehle zu Verfügung gestellt werden.

Didaktische Überlegungen

Bei der Umsetzung der entsprechenden Blöcke stellten sich erneut verschiedene Fragen:

  • Soll sich die Bezeichnung der Blöcke an diejenige der Skriptsprache R anlehnen?
  • Welchen Abstraktionsgrad sollen die einzelnen Blöcke aufweisen?
  • Wie fehlertolerant sollen die Eingabemöglichkeiten zu den Blöcken gestaltet werden?
  • Im Zweifelsfalle: Soll der Fokus beim Schreiben von Blöcken auf die Effizienz oder Nachvollziehbarkeit gelegt werden?

Die Beantwortung dieser Fragen führt unweigerlich zu entsprechenden Designentscheidungen. Grundsätzlich können diese aber später korrigiert werden, zumindest dann, wenn nur die Namen einzelner Blöcke und deren Programmierung angepasst werden, nicht aber deren Schnittstelle gegen aussen geändert wird. Bereits hier zeigt es sich, dass auch vergleichsweise triviale Aufgabenstellungen in Snap! sehr schnell zu Fragen führen, die über das eigentliche Programmieren hinausgehen und eigentliche Aufgaben der Informatik sind.

Für die konkrete Umsetzung wurden die Fragestellungen wie folgt beantwortet:

  • Eine Übernahme der genauen Bezeichnungen von R wurde als nicht erstrebenswert angesehen, da es darum geht, die Prinzipien zu verstehen. Ansonsten hätte man auch einfach das vorhandene Skript abarbeiten können. Die Lernenden sollen die Grundprinzipien erlernen, nicht eine ganz bestimmte Umsetzung in einer Sprache wie R.
  • Die Blöcke dürfen einen unterschiedlichen Abstraktionsgrad aufweisen, d.h., die Lernenden sollen bei Bedarf auch Blöcke mit einem tieferen Abstraktionsgrad nutzen können. Zudem ist es in Snap! bei den meisten (bei allen selbstgeschriebenen) Blöcken möglich, die entsprechende Programmierung einzusehen.
  • Die Fehlertoleranz der einzelnen Blöcke ist momentan auf unterschiedlichem Niveau (aus Zeitgründen) und soll deshalb erst einmal dokumentiert werden. Diese kann aber später bei Bedarf nachgerüstet werden. Didaktisch kann es sinnvoll sein, mit den Lernenden darüber zu sprechen, weshalb einige Blöcke weniger fehlertolerant sind als andere und was notwendig ist, um eine solche Fehlertoleranz zu erzielen.
  • Beim Schreiben der Blöcke wurde der Fokus auf die Nachvollziehbarkeit gelegt, wobei häufig Prinzipien genutzt werden, die typischerweise auch bei R zu finden sind.

Blöcke zum Filtern von Daten

Die meisten Blöcke wurden so umgesetzt, dass sie mit dem ganzen Datensatz (inklusive Spaltenüberschriften) funktionieren. Für die bessere Nachvollziehbarkeit werden die Blöcke inklusive der entsprechenden Programmierung vorgestellt

Namen der Spaltenüberschriften bestimmen

Mit diesem Block wird die Zeile 1 der CSV-Tabelle ausgelesen und als Liste zurückgegeben. Die Programmierung zeigt, dass dafür eigentlich kein eigener Block notwendig ist, denn er verpackt nur bereits vorhandene Funktionalität und macht sie damit etwas benutzerfreundlicher.

Dieser Block liefert die Spaltenüberschriften zurück.

Anzahl der Zeilen und Spalten bestimmen

Zeilen und Spalten unterscheiden sich in einer Tabelle in Snap! konzeptionell, weshalb der Zugriff jeweils anders erfolgt. Um die Zahl der Spalten zu erhalten, geht man gleich vor. wie im oberen Beispiel geschildert. Nur bestimmt man zusätzlich noch, wie lang die zurückgegebene Liste ist.

Der Befehl gibt die Zahl der Spalten zurück.

Der Befehl für die Zahl der Zeilen einer Tabelle, verpackt wieder nur einen schon bestehenden Block.

Der Block gibt die Zahl der Zeilen in einer Tabelle zurück.

Wenn man ganz auf selbstgeschriebene Blöcke verzichten möchte, kann man auch einen bereits vorhandenen Block in Snap verwenden:

Anzahl der Zeilen und Spalten in einer Tabelle

Dieser Block liefert die Dimensionen einer Tabelle als Liste der Form (Zeilenzahl, Spaltenzahl) zurück.

Nummer einer Spalte mit einer bestimmten Überschrift

Dieser Block dient nur dem Komfort. Anstatt eine Spalte über ihre Nummer zu adressieren, geht dies auch mit der Spaltenüberschrift.

Dieser Block gibt die Nummer der Spalte mit der entsprechenden Überschrift zurück.

Hier wurde aufgrund der einfachen Programmierung darauf verzichtet, auf den schon bestehenden Block „names of colums of“ zurückzugreifen.

Eine Datenzeile auslesen

Bei diesem Block handelt es sich um eine Verallgemeinerung des Blockes zum Auslesen der Spaltenüberschriften. Damit können die Werte einer beliebigen Zeile ausgelesen werden.

Dieser Block gibt alle Werte in einer bestimmten Zeile der Tabelle zurück.

Eine Spalte auslesen

Da Snap! Tabellen als Listen von Listen darstellt, ist das Auslesen der Werte in einer Spalte etwas komplizierter als bei einer Zeile. Die ersten drei Zeilen des Datensatzes werden bei Snap! so repräsentiert:

Tabellen werden in Snap! als Listen von Listen dargestellt.

Aus diesem Grund muss aus jeder Liste (eine Zeile der Daten) jeweils der entsprechende Wert ausgelesen und anschliessend in eine neue Liste geschrieben werden. Dies geschieht mithilfe des map-Blockes.

Dieser Block liefert alle Daten in einer Spalte der Tabelle zurück.

Der map-Block führt einen Befehl über alle Elemente einer Liste aus und ist ein sehr wichtiges Werkzeug, welches auch in R zu Verfügung steht. Dort bei Nutzenden, welche R nicht gut kennen, aber gerne durch eine wesentlich ineffizientere for-Schleife ersetzt wird. Fall die Zeit vorhanden ist, lohnt es sich, mit den Lernenden den map-Block eingehender zu behandeln, da damit in vielen Fällen das Konzept der for-Schleife zu Seite gelegt werden kann.

Grundsätzlich gilt in Snap!: Wenn möglich sollte man eine For-Schlaufe durch einen forEach-Block ersetzen und diesen gegebenenfalls wiederum durch einen map-Block. Dabei verliert man unter Umständen etwas Flexibilität, die Programmierung wird aber eleganter und vor allem werden die Befehle schnell ausgeführt. 

Einen Datenbereich auslesen

Manchmal möchte man statt nur einer Zeile oder einer Spalte einen Datenbereich auslesen. Bei sehr grossen Datensätzen wendet man beispielsweise beim Schreiben eines Skriptes die Befehle nur auf einen Teil des Datensatzes an, weil sonst die Berechnungen zu lange dauern. Ist man sich sicher, dass das eigene Programm funktioniert, lässt man es über den ganzen Datensatz laufen.

Einen Ausschnitt aus den Daten zu erhalten, funktioniert auch mit einer Abfolge von Befehlen, einfacher geht es aber mit folgendem Block:

Dieser Block liefert einen Teilbereich einer Tabelle zurück.

Nebst dem map-Befehl enthält dieser Block noch die Besonderheit, dass er bei der Eingabe für die Zeile und Spalte sowohl eine Zahl als auch eine Liste entgegennimmt, was normalerweise nicht ohne Weiteres möglich ist. Dazu prüft der Block, ob es sich bei der Eingabe um eine Zahl handelt und verzweigt dann dementsprechend in einen anderen Zweig der Programmierung. Damit versteckt der Block eine technische Schwierigkeit bei der Programmierung mit Snap! vor den Lernenden. Umgesetzt wurde dieser Ansatz hier, weil für Spezialfälle nicht noch eigene Blöcke geschrieben werden sollten.

Tabelle drehen

Manchmal ist es sinnvoll, eine Tabelle um 90° zu drehen, weil dadurch die Auswertung der Daten erleichtert wird.

Dieser Block dreht eine Tabelle um 90°.

Ein Beispiel soll zeigen, was damit gemeint ist. In Snap! wird die CO2-Tabelle so dargestellt:

Der Anfang des Datensatzes in der Tabellenansicht von Snap!.

Wenn diese um 90° gedreht wird, präsentiert sich die Tabelle so:

Beim Rotieren einer Tabelle werden Zeilen und Spalten vertauscht.

Die Zeilen sind zu Spalten geworden und umgekehrt. Die mit verschachtelten map-Blöcken umgesetzte Funktionalität kann man seit einiger Zeit auch mit einem vorgegebenen Block noch einfacher umgesetzt werden:

Unterdessen kennt Snap! einen eigenen Block zum Drehen von Tabellen.

Zusammenführen von Datensätzen

Der erwähnten Block „columns of“ kann auch dazu verwendet werden, zwei Tabellen mit wenigen Zeilen Code zusammenzuführen.

Dieser Block führt zwei Tabellen zu einer zusammen.

Dabei werden die Daten wieder zuerst gedreht, aneinandergehängt und schliesslich wieder zurückgedreht. Das funktioniert wesentlich einfacher als mit der Verwendung einer expliziten Schlaufe.

Löschen von Spalten in einer Tabelle

Um eine Spalte in einer Tabelle zu löschen, wird diese unter Verwendung aller Spalten, die nicht gelöscht werden sollen, neu geschrieben. Damit dies einigermassen komfortable funktioniert, wird zuerst eine Hilfsfunktion benötigt, welche eine Liste der Spalten generiert, die behalten werden sollen.

Dieser Block streicht eine Zahl aus einer Zahlenliste.

Dank der Fallunterscheidung funktioniert dies mit einzelnen Zahlen und Listen von Zahlen.

Dieser Block löscht eine Spalte aus einer Tabelle.

Der Block schreibt also die Tabelle neu und verwendet dabei alle Spalter, ausser derjenigen, die eben gelöscht werden soll.

Zusammenfassung der Tabellendaten

Der Block zur Zusammenfassung der Tabellendaten weist einen wesentlich höheren Abstraktionsgrad auf und greift dabei auf verschiedene bereits vorhandene und zusätzlich geschriebene Blöcke zurück.

Dieser Block liefert eine Tabelle mit den wichtigsten Kenndaten eines Datensatzes zurück.

Grundsätzlich erzeugt der Block eine neue Tabelle mit den Überschriften „column“, „min“, „max“, „mean“ und „sd“. Die eigentliche Tabelle wird erzeugt, indem für jede Spalte die entsprechenden Werte berechnet werden, wobei die Tabelle zur einfacheren Berechnung noch rotiert wird.

Der Block „summary“ liefert eine Zusammenfassung der wichtigsten Kerngrössen.

Blöcke zur Berechnung statistischer Kennwerte

Im nächsten Abschnitt werden Blöcke vorgestellt, die zur Berechnung statistischer Kennwerte verwendet werden können. Damit diese funktionierten, dürfen die zugrundeliegenden Listen in der Regel nur Zahlen enthalten.

Minimum, Maximum und Spannweite

Die Blöcke zur Berechnung des Minimums und Maximums sortieren die Daten zuerst und holen sich dann den ersten, respektive letzten Wert aus der sortierten Liste.

Dieser Block liefert den minimalen Wert in einer Liste von Zahlen.
Dieser Block liefert den Maximalwert aus einer Liste von Zahlen zurück.

Natürlich hätte man den max-Block auch so programmieren können, dass man mit dem „grösser als“-Zeichen operiert.

Der Block zur Berechnung der Spannweite ruft einfach „max“ und „min“ auf und berechnet dann die Differenz.

Bei der Programmierung dieses Blocks wurde bewusst auf eine Optimierung (die Liste wird zweimal sortiert) verzichtet, damit klarer wird, dass die Spannweite die Differenz von Maximum und Minimum ist. Wenn mit sehr grossen Datensätzen gearbeitet wird, kann es sinnvoll sein, eine optimierte Version zu verwenden. Diese könnte dann so aussehen:

Durch die Optimierung halbiert sich die Berechnungszeit, dafür ist die Programmierung weniger verständlich.

Da bei ca. 2000 Werten die Berechnungszeit auch bei einem langsameren Computer unter einer Sekunde liegen dürfte, lohnt sich eine solche Anpassung im Schulgebrauch wahrscheinlich nicht.

Anzahl unterschiedlicher Werte

Manchmal ist es praktisch, wenn man weiss, wie viele unterschiedliche Werte sich in einer Spalte einer Tabelle befinden. Programmtechnisch lässt sich dies in Snap! einfach umsetzen.

Dieser Block liefert die Anzahl unterschiedlicher Werte in einer Liste zurück.

Zuerst wird die Liste auf die unterschiedlichen Werte reduziert, anschliessend wird noch die Länge dieser reduzierten Liste abgefragt.

Sinnvoll ist die Anwendung eines solchen Befehls vor allem bei Listen, deren Inhalte nicht aus Zahlen bestehen. Will man den Befehl trotzdem mit Zahlen verwenden, kann man diese beispielsweise runden, um deren Vielfalt zu reduzieren.

Mittelwert, Zentralwert und häufigster Wert

Die Ausführungen zu den drei statistischen Werten (mean, median, modus) sollen sich hier auf die Umsetzung als Snap!-Blöcke beschränken. Am einfachsten ist es, das arithmetische Mittel (mean) zu berechnen.

Dieser Block liefert das arithmetische Mittel aller Werte in einer Liste zurück.

Programmtechnisch wird die Summe aller Werte gebildet, dabei hilft der entsprechende Summenbefehl aus der Bibliothek „Variadic Reporters“, die anschliessend durch die Anzahl der Werte dividiert wird.

Komplizierter ist die Berechnung des Zentralwerts, weil dazu die Liste sortiert und ausserdem eine Fallunterscheidung (gerade oder ungerade Anzahl von Werten) vorgenommen werden muss.

Dieser Block liefert den Zentralwert aus einer Liste von Zahlen zurück.

Zuerst wird mit dem Modulus-Operator geprüft, ob die Anzahl der Werte ungerade ist. Wenn dem so ist, wird die Mitte der Liste bestimmt und der entsprechende Wert zurückgegeben. Handelt es sich um eine gerade Anzahl von Werten, wird aus den beiden Werten in der Mitte das arithmetische Mittel berechnet. Dabei wurde auf einen Einsatz des schon bestehenden Blockes zur Berechnung des arithmetischen Mittels verzichtet, weil die Division mit Zwei in diesem Fall wohl anschaulicher ist.

Am kompliziertesten ist die Berechnung des häufigsten Wertes, auch wenn dies aus der Anzahl der Blockbefehle nicht unmittelbar ersichtlich ist.

Dieser Block liefert den häufigsten in einer Liste von Zahlen vorkommenden Wert zurück.

Die scheinbar nur aus einem Schritt bestehende Programmierung führt folgende Schritte durch: Zuerst werden die Daten mit „analyze“ in Gruppen aufgeteilt und gezählt, aus wie vielen Elementen jeder dieser Gruppe besteht. Anschliessend wird die so berechnete Liste nach der Anzahl der Mitglieder sortiert und ganz zuletzt wird der höchste Wert für eine Anzahl von Elementen zurückgeliefert. Falls es mehrere Höchstwerte mit der gleichen Anzahl von Elementen gibt, wird dies in der Programmierung nicht berücksichtigt. Der Block gibt immer nur einen Wert zurück.

Standardabweichung und Streuung

Die Standardabweichung (standard deviation) und die Streuung (variance) sind beide statistische Kennwerte, die angeben, wie sehr sich die Daten in einem Datensatz voneinander unterscheiden. Bei beiden Werten gibt es jeweils zwei Rechenverfahren, die abhängig davon sind, ob man eine ganze Population oder nur eine Auswahl davon erfasst hat. Auch hier sollen sich die Ausführungen auf die Programmierung beschränken.

Die Varianz berechnet sich als der Durchschnitt der Quadrate der Abweichungen zum Mittelwert der Daten.

Der Block liefert die Streuung zu einer Liste von Zahlen zurück.

Zuerst wird das arithmetische Mittel berechnet, dann wird für jeden Wert die Abweichung vom Mittelwert quadriert und anschliessend die aufsummierten Quadrate durch die Anzahl der Werte (oder Werte -1) dividiert. Bei der Fallunterscheidung wurde nur der Wert für die Anzahl der Listenelemente angepasst, damit im Programmcode weniger von der eigentlichen Berechnung der Werte abgelenkt wird.

Die Standardabweichung kann nur einfach als Quadratwurzel der Streuung berechnet werden.

Dieser Block gibt die Standardabweichung zu einer Liste von Zahlen zurück.

Umgang mit Zeitangaben

Zeitangaben am Computer sind ein kompliziertes Problem ,weil die verschiedenen Umrechnungen, z.B. 60 s = 1 min oder 24 h = 1 d, berücksichtigt werden müssen. Ausserdem gibt es dann noch die Schaltjahre usw. Aus diesem Grund werden Zeitangaben am Computer meist auf Sekunden (oder Millisekunden) umgerechnet, welche seit einem bestimmten Zeitpunkt (beispielsweise dem 1.1.1970) vergangen sind. Bei der Programmierung der entsprechenden Zeitfunktionalität für Snap! wurde ein ähnlicher Ansatz verfolgt. (Es ist natürlich auch möglich, entsprechende Befehle mit einem JavaScript-Block einzufügen, aber das widerspräche dem Versuch, den Lernenden die Grundlagen der Informatik zu vermitteln).

Damit am Schluss die Berechnung der Unterschiede zwischen zwei Zeitangaben einigermassen benutzerfreundlich erfolgen kann, wird zuerst eine Hilfsfunktion definiert, welche den Zeitunterschied zum 1.1. im Jahr 0 berechnet. Aufgrund der heutigen 64bit Betriebssysteme ist eine Beschränkung auf einen kleinen Zeitraum wie 1970 nicht mehr notwendig. Allerdings wurde bei der Programmierung die Umstellung des Julianischen auf den Gregorianischen Kalender Ende des 16. Jahrhunderts nicht berücksichtigt. Daten können aber bis ca. 1600 fast sekundengenaue (Problematik der Schaltsekunde) umgerechnet werden.

Der Block gibt die seit dem Jahr Null vergangene Zeit in Sekunden zurück.

Im Wesentlichen werden alle Bestandteile einer Datums- und Zeitangabe von der Sekunde bis zum Jahr aufaddiert, wobei in Einzelfällen noch Rahmenbedingungen (Tage und Monate beginnen bei der Zählung mit 1) und Spezialfälle (wie Schaltjahre) berücksichtigt werden).

Die Problematik der Schaltjahre wurde dabei wiederum in einen eigenen Block ausgelagert.

Der Blockliefert die Tage pro Monat oder in einem Jahr unter Berücksichtigung eines Schaltjahres zurück.

Dabei gibt der Block die zu berücksichtigen Tage entweder als Liste (Monate) oder als Summe (Jahr) zurück.

Mithilfe dieser Blöcke kann nun der für die Lernenden eigentlich interessante Block umgesetzt werden. Dieser bietet eine etwas angenehmere Schnittstelle an, bei der die Zeitangaben einfach im in den CO2-Daten vorhandenen Zeitformat übernommen werden können.

Dieser Block nimmt Zeitangaben im Format „yyyy-mm-dd hh:mm:ss“ entgegen und rechnet diese in Sekunden seit dem Jahr Null um.

Weil dabei unter Umständen mehr als 2000 Jahre aussummiert werden müssen, kann noch mit einer Zeitkorrektur gearbeitet werden, welche die Berechnungszeit wesentlich reduziert.

Beispiel zur Bearbeitung von Daten

Eine interessante Fragestellung zu den Daten des Statistischen Amtes des Kantons Zürich ist die nach den Zeitabständen zwischen den einzelnen Messungen im Beispieldatensatz. Um mehr darüber zu erfahren, können in Snap! folgende Schritte ausgeführt werden.

  1. Die vorhandenen Zeitangaben werden in Sekunden umgerechnet.
  2. Der Datensatz wird mit diesen Angaben erweitert und die nicht mehr benötigte Spalte „time“ allenfalls entfernt.
  3. Die Zeitunterschiede zwischen den Messungen werden berechnet und nach der Grösse des Zeitunterschiedes oder der Häufigkeit gruppiert.

Umrechnung der Zeitangaben

Für die Umrechnung der Zeitangaben kann man auf den bereits beschriebenen Block zurückgreifen. Da alle Zeitangaben in den Beispieldaten aus dem Jahr 2020 stammen, wird die Berechnung aus Effizienzgründen um diesen Wert korrigiert. Die so entstandene Liste wird in einer temporären Variablen abgespeichert (und kann später wieder gelöscht werden).

Alle Zeitangaben werden in Sekunden umgerechnet.

Anpassen des Datensatzes

Die so berechneten Werte fügen wir nun zur schon vorhandenen Tabelle hinzu.

Mit dem entsprechenden Befehl können Tabellen leicht zusammengeführt werden.

Zum Löschen der nun nicht mehr benötigten Spalte „time“, kann auf bereits vorhandene Befehle zurückgegriffen werden. Um Fehler zu vermeiden, soll dabei die Spaltenzahl aufgrund der Spaltenüberschrift ermittelt werden. Dies verhindert auch Probleme, wenn sich eine Spalte nicht am Ende der Tabelle befindet und Lernende ungeduldig mehrfach einen Block anklicken.

Die nicht mehr benötigte Spalte „time“ kann gelöscht werden.

Den Erfolg der durchgeführten Operation sollte man von Zeit zu Zeit überprüfen, was mit dem summary-Block geschehen kann.

Die Zusammenfassung zeigt, dass die geplanten Operationen erfolgreich durchgeführt wurden.

Zeitunterschiede berechnen

Im nächsten Schritt werden nun die Zeitunterschiede zwischen den Messungen berechnet. Da dazu die eigentliche Tabelle nicht benötigt wird, kann auf die temporäre Liste „calculated time“ zurückgegriffen werden.

Die Zeitdifferenzen können mit einem verschachtelten Block berechnet und ausgewertet werden.

Der Block berechnet zuerst alle Differenzen zwischen jeweils nachfolgenden Zeilen, wobei der erste und letzte Wert verworfen werden, da diese Berechnungen kein sinnvolles Ergebnis liefern, dann wird ausgezählt wie viele Male jede Differenz vorkommt und die so entstandene Tabelle noch mit entsprechenden Überschriften versehen.

Fazit

Anhand der CO2-Daten des Statistischen Amtes des Kantons Zürich wurde aufgezeigt, wie Snap! als Alternative zu einer professionellen Statistiksoftware wie R für die deskriptive Datenanalyse verwendet werden kann. Fehlende Funktionalitäten können dabei auf beliebigem Abstraktionsniveau ergänzt werden. Aufgrund der Flexibilität von Snap! kann damit eine typische Vorgehensweise von R gut nachgebildet werden, ohne dass man sich dabei die Schwierigkeiten einer textbasierten Programmiersprache einhandelt.

Damit eignet sich Snap! gut für die Datenanalyse mit Schülerinnen und Schülern der Sekundarstufe I und das dabei erworbene Wissen und die erarbeiteten Kompetenzen – z.B. zur genauen Funktionsweise des map-Blockes – sollten sich anschliessend vergleichsweise gut auf eine Statistiksoftware wir R übertragen lassen.

Die folgenden Einschränkungen sollten aber beachtet werden:

  1. Alle beschriebenen Blöcke funktionieren unter der Voraussetzung, dass die Daten sauber sind, d.h. keine fehlenden oder falschen Daten (z.B. Text statt Zahlen) enthalten. In dieser Hinsicht leistet R mehr, weil entsprechende Mechanismen teilweise schon eingebaut sind.
  2. Da Snap! in einem Browser läuft und technisch auf eine JavaScript-Umgebung aufbaut, ist R in der Regel erstens schneller und kann zweitens auch mit wesentlich grösseren Datenmengen umgehen.
  3. R verfügt mit seinen zahlreichen Erweiterungen natürlich über wesentlich mehr Statistikfunktionen als dies bei dem Allrounder Snap! der Fall ist.

Trotz dieser Einwände lohnt sich der Einsatz von Snap, denn …

  1. Auch in R ist die Säuberung von Datensätzen mit grossem Aufwand verbunden und teilweise eine Aufgabe für Expertinnen und Experten.
  2. Die Datenmengen, welche auf der Sekundarstufe I in der Regel bearbeitet werden, dürften weit unter dem technisch umsetzbaren Grenzen bei der Programmierung mit Snap! liegen.
  3. Auf der Sekundarstufe I wird nur ein Bruchteil der statistischen Methoden benötigt, die in einem professionellen Umfeld verwendet werden. Ausserdem können die gewünschten Funktionen als Blöcke jederzeit nachprogrammiert werden.
  4. Im Gegensatz zu R sind weitere Anwendungsfelder beispielsweise im Bereich Multimedia einfacher umzusetzen und bedürfen dafür auch nicht der vorgängigen Installation einer zusätzlichen Software auf den Geräten der Lernenden.

Insgesamt spricht also vieles für den Einsatz von Snap! auf der Sekundarstufe I und dies auch im Bereich der deskriptiven Statistik. Dass dies bisher wohl kaum geschehen ist, dürfte vor allem daran liegen, dass der Fokus der Volksschule bisher einerseits wenig auf der Programmierung lag, wobei die deutliche Abgrenzung zwischen Medien und Informatik im Lehrplan nicht unbedingt hilfreich ist, und wenn die eigentliche Informatik doch einmal im Vordergrund stand, sich diese auf die Umsetzung als „Informatik ohne Strom“ oder aber auf vergleichsweise banale Umsetzungen in blockbasierten Sprachen wie Scratch beschränkte, bei denen meist nur sehr einfache Konzepte der Informatik umgesetzt wurden.

Es ist zu hoffen, dass mit dem steigenden Bekanntheitsgrad von Snap! die dadurch eröffneten Möglichkeiten zunehmend auch im deutschsprachigen Raum eingesetzt und damit der künstliche Graben zwischen Medien und Informatik überwunden werden kann, denn die Datenanalyse mit Snap! ist nur eine von äusserst vielfältigen Anwendungsmöglichkeiten und die dabei erworbenen Erkenntnisse können anschliessend gut auch im Bereich der Medien genutzt und erweitert werden.

Die beschriebenen Blöcke können unter Data Science ausprobiert werden.

 

Koordinaten in Snap!

Snap! nutzt ein Koordinatensystem, welches sich am Modell der vier Quadranten orientiert: Sowohl die x- als auch die y-Koordinaten können negative und positive Werte annehmen. So können in der Grundeinstellung x-Werte von -240 (links) bis 240 (rechts) abgebildet werden, die y-Werte sind von 180 (oben) bis -180 (unten) sichtbar. Der Koordinatenursprung liegt also im Zentrum.

Abbildung von Punkten im Koordinatensystem von Snap!.

Dies im Gegensatz zu vielen anderen Programmiersprachen, wo der Koordinatenursprung (0, 0) häufig in der oberen linken Ecke liegt.

Wie gross der abgebildete Bereich tatsächlich ist, kann über die Einstellung zur Bühnengrösse (stage) festgelegt werden.

Die Auflösung des Ausgabefensters (stage) kann in Snap! angepasst werden.

Diese Darstellung der Koordinaten und die unterschiedlichen Bildschirmgrössen in Snap! sollte man bei der Programmierung entsprechender Grafiken berücksichtigen. Sonst werden beispielsweise Grafiken mit ausschliesslich positiven Koordinaten nur in einem Viertel des Bildschirms dargestellt.

Bildet man beispielsweise die Quadrate der natürlichen Zahlen ab, wird nur ein Viertel des Bildschirms genutzt.

Noch vertrackter wird es, wenn man während der Programmierung die Auflösung ändert oder es mit sehr grossen oder kleinen Zahlen zu tun hat. Dann muss man jedes Mal die entsprechenden Koordinaten umrechnen.

Dies von Hand zu tun ist nur eine Lösung, welche sinnvoll ist, wenn man Snap! kaum jemals für die Darstellung von Daten benötigt. Bei häufigerer Verwendung liegt es nahe, eine entsprechende Umrechnungsroutine in Snap! selbst zu schreiben.

Schülerinnen und Schüler scheitern meist daran, dass dies keine ganz einfache Aufgabe ist. Die folgenden Schritte erklären, wie man zu einer Lösung kommt, welche solche Darstellungsprobleme endgültig beseitigen. Dabei lohnt es sich, schrittweise vorzugehen.

Im einfachsten Fall beginnen sowohl der Datenbereich als auch die Bildschirmdarstellung bei 0, wie die folgende Grafik zeigt.

Wenn beide Zahlenbereiche bei 0 beginnen, ist die Aufgabe schnell gelöst.

Der Datenbereich in der Grafik reicht von 0 bis 6, auf dem Bildschirm können die Werte 0 bis 12 abgebildet werden. Um die Zahlen von einer Menge in die andere umzurechnen, vergleichen wir die Spannweiten der beiden Bereiche. Die Spannweite auf dem Bildschirm ist doppelt so gross wie die Spannweite des Datenbereiches. Es genügt in diesem Fall also, alle Datenwerte mit 2 zu multiplizieren, um die korrekte Position auf dem Bildschirm zu erhalten, wir erhalten also folgende Werte:

  • 0 ⟶ 0 (kleinster Wert)
  • 6 ⟶ 12 (grösser Wert)
  • 2 ⟶ 4 (grüner Punkt)

Etwas kompliziert wird es, wenn der Datenbereich nicht bei 0 beginnt, dann muss die Umrechnung angepasst werden:

Wenn der Datenbereich nicht bei Null beginnt, reicht eine einfache Multiplikation nicht mehr aus.

Aus der Grafik erkennen wir sofort, dass die Umrechnung des Wertes für den grünen Punkt nicht mehr durch eine einfache Multiplikation erfolgen kann, weil dieser bei den Daten in der Nähe des grössten Wertes liegt, während dies in der Abbildung definitiv nicht der Fall ist. Eine kurze Überprüfung anhand der Extremwerte zeigt, was zu tun ist:

  • -2 ⟶ -4 statt 0
    Differenz zum tatsächlichen Wert: -4
  • 4 ⟶ 8 statt 12
    Differenz zum tatsächlichen Wert: -4

Die Differenz des kleinsten Wertes aus dem Datenbereich beträgt aber nur -2, die -4 ergeben sich erst mit der erneuten Multiplikation: Die Werte aus dem Datenbereich müssen also zuerst multipliziert werden und dann um den mit dem gleichen Faktor multiplizierten Unterschied zwischen dem Minimum der Daten und Null korrigiert werden. So erhalten wir:

  • -2 ⟶ -4 + 4 = 0 (kleinster Wert)
  • 4 ⟶ 8 + 4 = 12 (grösser Wert)
  • 2 ⟶ 4 + 4 = 8 (grüner Punkt)

Nun ist es aber auch möglich, dass der Bildschirmbereich gegenüber dem Nullpunkt so wie bei Snap! verschoben ist.

Wenn auch noch der Bildschirmbereich verschoben ist, dann müssen die bisherigen Korrekturen noch einmal erweitert werden.

Wieder helfen die Minimal- und Maximalwerte weiter, um zu verstehen, was für eine zusätzliche Korrektur notwendig ist.

  • -2 ⟶ 0 statt -2 (kleinster Wert)
    Differenz zum tatsächlichen Wert: -2
  • 4 ⟶ 12 statt 10 (grösser Wert)
    Differenz zum tatsächlichen Wert: -2

Bei der letzten Korrektur muss also noch die Differenz vom Minimum des Bildschirms zum Nullpunkt berücksichtigt werden.

Werden alle Korrekturen eingerechnet, dann funktioniert die Umrechnung von einem Datenbereich in den anderen.

Eine Überprüfung ergibt:

  • -2 ⟶ -4 ⟶ 0 ⟶ -2 (kleinster Wert)
  • 4 ⟶ 8 ⟶ 12 ⟶ 10 (grösster Wert)
  • 2 ⟶ 4 ⟶ 8 ⟶ 6 (grüner Punkt)

Hier noch einmal die ganzen Ausführungen als Erklärfilm:

Für die Abbildung eines beliebigen Datenpunktes auf dem Bildschirm gilt deshalb folgende Formel:

Datenwert x Quotient der Differenzen + Differenz vom minimalen Datenwert zum Nullpunkt multipliziert mit dem Quotienten der Differenzen + Differenz vom minimalen Bildwert zum Nullpunkt

In Snap! kann ein entsprechender Block so geschrieben werden, wobei einige Hilfsvariablen die Sache erleichtern:

Mit diesem Block können Daten so umgerechnet werden, damit die Darstellung am Bildschirm optimal ist.

Greifen wir dazu noch einmal das Beispiel der Quadratzahlen auf, deren Bildpunkte beim ersten Versuch alle im 1. Quadraten landeten. Die Umrechnung kann entweder beim Zeichnen der Grafik oder schon anhand der darzustellenden Daten erfolgen.

Mit diesen Befehlen können beliebige Daten umgerechnet werden.

Der erste Block in der Grafik (grau) führt die eigentliche Umrechnung für einen Wert aus.

Der zweite Block (blau) liefert die Breite der Bühne (Bildschirm) zurück. Eine entsprechende Möglichkeit gibt es für die Bildschirmhöhe. Dieser Wert muss durch 2 geteilt werden, da die Differenz des minimalen und maximalen Wertes doppelt so gross ist wie der Abstand des Minimalwertes zum Ursprungspunkt.

Der dritte Befehl (orange) nimmt als Argument eine Liste entgegen und wendet dann auf jedes Element die Befehle an, die im grauen Ring enthalten sind.

Der vierte Block (ebenfalls orange) wählt das angegebene Element aus einer Liste aus.

Der grosse Block führt deshalb folgende Befehle aus:

  • Der Datensatz wird genommen und in zwei Teillisten mit der ersten und zweiten Spalte aufgeteilt.
  • Für beide Spalten werden alle enthaltenen Werte gemäss den Parametern im Umrechnungsblock so berechnet, dass diese auf den Bildschirm passen.
  • Damit die Daten nicht am Rand des Bildschirms landen, wurden  bei den Daten ein etwas grösserer Bereich angegeben. So ist es dann allenfalls noch möglich, die Grafik mit zusätzlichen Informationen (Titel, Achsen, Legenden) anzureichern.

Hält man sich an dieses Vorgehen, können Daten auf einem beliebig grossen Bildschirm passend ausgegeben werden. Ausprobieren kann man dies unter  Daten umrechnen. Dazu klickt man nach dem Öffnen auf die Schaltfläche „see code“. In der eingebundenen Version unten klickt man stattdessen auf das Augensymbol oben links.

YouTube-Videos interaktiv aufbereiten

Videos kann man mithilfe von H5P Interactive Video mit zusätzlichen Informationen oder Übungen anreichern. Wenn es sich dabei um Videos handelt, die man nicht selbst produziert hat, ist es aber meist aufwändig, sich einen Überblick über die genauen Inhalte des Videos zu verschaffen. Diese Anleitung zeigt, wie man mit Hilfe der automatischen Transkription im Falle von YouTube-Videos schnell zum Ziel kommt.

Transkription des Videos

YouTube bietet seit längerer Zeit eine automatische Untertitelung von Videos an. Ob diese bei einem Video genutzt werden kann, erkennt man am entsprechenden Symbol (unten rechts) beim Video.

Untertiteloption bei Youtube-Video vorhanden
Bei diesem YouTube-Video ist die Option für Untertitel vorhanden.

Ist die entsprechende Option vorhanden, kann man sich die Untertitel nicht nur beim Anschauen des Videos anzeigen lassen, sondern man kann auch direkt auf die von YouTube generierte automatische Transkription oder allenfalls sogar auf eine bereitgestellte Mitschrift zugreifen. Dies gelingt in drei Schritten.

auf die Transkription zugreifen
Der Zugriff auf das Transkript erfolgt über die Einstellungen unter dem Video.
  1. Ein Klick auf die drei Punkte öffnet das entsprechende Menü.
  2. Mit dem Menüeintrag „Transkript öffnen“ wird die Mitschrift entweder direkt angezeigt oder automatisch generiert, was bei längeren Videos einen Moment dauern kann.
  3. Nun kann man die entsprechenden Inhalte kopieren und weiter bearbeiten.

Die Qualität der Transkription ist stark vom Ausgangsmaterial abhängig. Sprechen die Personen im Video deutlich, ist die Qualität in der Regel für weitere Arbeitsschritte gut genug.

Alternativen

Statt die Mitschrift direkt bei YouTube zu kopieren, kann man auch einen Webdienst wie SaveSubs oder YouSubtitles nutzen. Diese bieten meist zusätzliche Dienste wie automatische Übersetzungen an. Je nach Dienst wird beim Gebrauch aber Werbung angezeigt, deren Inhalt man nicht kontrollieren kann, weshalb diese Dienste vor dem Einsatz im Unterricht selbst immer sorgfältig geprüft werden sollten.

Aufbereitung des Transkripts

Angenommen man hat die Mitschrift direkt von YouTube in eine Textverarbeitung wie Word kopiert, dann stellt sich das Problem, sofern man von den Zeitstempeln Gebrauch machen möchte (optional), dass die Formatierung etwas unübersichtlich ist, weil die Zeitstempel und der zugehörige Text jeweils auf einer eigenen Linie stehen.

Beispiel eines automatischen Transkripts
YouTube unterscheidet beim Transkript nicht zwischen Gross- und Kleinschreibung, was für einen Inhaltsüberblick verkraftbar ist.

Möchte man, dass Zeitstempel und Text jeweils auf einer Zeile stehen, hängt das weitere Vorgehen vom Umfang des Videos ab. Bei kürzeren Videos kann man die entsprechenden Einträge problemlos von Hand formatieren, bei längeren Videos lohnt es sich, auf die Suchen/Ersetzen-Funktion der Textverarbeitung zurückzugreifen. In Microsoft Word kann man dazu beispielsweise mit Platzhaltern arbeiten.

Optionen zum Suchen und Ersetzen
Microsoft Word bietet vergleichsweise mächtige Möglichkeiten zum Suchen und Ersetzen von Textstellen.

Diese Sucheinstellungen bewirken, dass der Text wie folgt umformatiert wird.

Ergebnis nach dem Ersetzen
Durch das Ersetzen der Zeilenumbrüche wird das Transkript übersichtlicher.

Damit etwas klarer wird, wie Microsoft Word die entsprechenden Ausdrücke interpretiert, schlüsseln wir die einzelnen Komponenten auf. Im Suchfeld finden wir folgende Zeichensequenz: ([0-9]{2}:[0-9]{2})^13.

  • (): Die runde Klammer steht für einen zusammengefassten Ausdruck, alles was in der Klammer steht, wird als eine Einheit angesehen.
  • []: Die eckigen Klammern stellen eine Menge von möglichen Zeichen dar. Im Falle von [0-9] also irgendeine Ziffer von 0-9.
  • {}: Die geschweiften Klammern bestimmen, wie viele Male eine bestimmte Zeichenfolge wiederholt werden soll, {2} bedeutet hier, dass eine Ziffer zweimal wiederholt wird.
  • ^13: Dieses Kürzel steht für einen Zeilenumbruch, nach dem in Word normalerweise mit ^p gesucht werden kann, was bei der Verwendung von Platzhaltern (siehe angekreuztes Kästchen in der Abbildung oben) nicht funktioniert.
  • Daneben können auch normale Zeichen wie Buchstaben, oder im Beispiel der Doppelpunkt verwendet werden.

Das Ersetzen Feld präsentiert sich in diesem Fall relativ einfach:

  • \1: Dadurch wird Word mitgeteilt, dass ein Platzhalter verwendet werden soll, in diesem Fall der erste Teil des Suchbegriffs, der Zeitstempel.
  • ^t: Damit fügt Word einen Tabulator ein.

Mit Hilfe dieser Parameter sucht Word nach einem Zeitstempel bestehend aus zwei Ziffern (den Minuten), einem Doppelpunkt und zwei weiteren Ziffern (Sekunden), sowie einem Zeilenumbruch. Der Zeitstempel wird in einen Zwischenspeicher kopiert und der ganze Ausdruck durch den Zeitstempel gefolgt von einem Tabulator ersetzt.

Das derart umformatierte Transkript kann nun verwendet werden, um die relevanten Textstellen zu finden, welche für die weitere Arbeit mit dem interaktiven Video benötigt werden.

Interaktive Aufbereitung mit H5P

Das Erstellen eines interaktiven Videos erfolgt in drei Schritten: dem Auswählen des Videos, der Anreicherung mit interaktiven Elementen und dem Schreiben einer optionalen Zusammenfassung.

in drei Schritten zum interaktiven Video
Alle wichtigen Arbeitsschritte beim Erstellen eines interaktiven Videos erfolgen über die drei Reiter in diesem H5P-Bedienungselement.

Ist das Video eingefügt, kann man mit der Bearbeitung der interaktiven Elemente beginnen, welche jeweils an einer beliebigen Stelle des Videos eingefügt werden können. An der Möglichkeit, ein Textfeld einzufügen, soll gezeigt werden, wie dies grundsätzlich funktioniert.

Interaktives Element Textfeld auswählen
Das Textfeld ist nur eine von vielen Möglichkeiten, interaktive Elemente in einen Text einzubinden.

Zusätzliche Informationen

Das Textfeld bietet sich an, um die verschiedenen Anzeigeoptionen von interaktiven Elementen zu besprechen.

Einstellungen des Textfelds
Das Textfeld kann im interaktiven Video auf unterschiedliche Weise angezeigt werden.
  1. Anzeigedauer: Damit wird festgelegt, wie lange das interaktive Element angezeigt werden soll. Optional kann der Film dazu auch angehalten werden (Pause Video).
  2. Darstellung: Während des Films kann ein interaktives Element als Schaltfläche (Button), welche angeklickt werden muss, oder direkt als sich neu öffnendes Fenster angezeigt werden (Poster).
  3. Überschrift: Titel des Fensters oder auf der Schaltfläche angezeigter Text.
  4. Inhalt des Textfensters: Das Textfenster kann unterschiedliche Textelemente (u.a. auch Links) enthalten. Eine Einbindung weiterer Elemente (z.B. Bild) ist allerdings nicht möglich.
  5. Sprungmarke: Damit kann auf eine andere Stelle im Video gesprungen werden. Das ist beispielsweise bei Fragen nützlich, um die entsprechende Videosequenz im Falle einer falschen Frage gleich noch einmal anschauen zu können.

Wenn die Lernenden das Video abspielen, kann das Ergebnis dann beispielsweise so aussehen:

Textfeld
Das Textfeld kann in einer beliebigen Grösse dargestellt werden.

Nebst dem Textfeld können folgende weiteren Elemente eingefügt werden: Label, Link, Bild, Tabelle. Schade ist, dass es nicht möglich ist, z.B. ein Bild mit einem Text zu kombinieren.

Fragen und Aufgabenstellungen

Interessanter sind die Möglichkeiten, verschiedene Multi-Choice-Fragen (Einfach-, Mehrfachantworten, Richtig-Falsch-Aussagen) zu stellen, Lückentexte, Markier- und Zuordnungsaufgaben (nur mit Text oder in Verbindung mit Bildern) einzubauen, sowie sogenannte Statements zu benutzen (siehe weiter unten). Möglich sind auch Freitextantworten und Umfragen, deren Ergebnisse jedoch nur in den entsprechenden Umgebungen abgegriffen werden können.

Die Multiple-Choice-Fragetypen sind alle gleich aufgebaut. An einem Beispiel soll gezeigt werden, wie das funktioniert, wobei die bereits vom Textfeld bekannten Einstellungen nicht noch einmal besprochen werden.

Beispiel für die Vorbereitung einer MC-Frage.
Für jede einzelne Antwortoption kann festgelegt werden, ob diese richtig oder falsch ist.

Folgende Einstellungen erzeugen eine Multiple-Choice-Frage für eine H5P-Lernaktivität:

  1. Frage: Die Frage kann als solche oder aber auch als Aufgabenstellung formuliert werden: z.B. Wähle die zutreffenden Aussagen aus.
  2. Antworten: Bei den Antworten kann durch das Ankreuzen des Kästchens „korrekt“ festgelegt werden, dass diese Antwort richtig ist. Die Zahl der Antworten kann auch nachträglich noch angepasst werden.
  3. Tipp: Falls gewünscht kann hier eine Erklärung oder ein Lösungshinweis eingebaut werden.
  4. Rückmeldung: Je nachdem, ob die Antwortoption von den Lernenden ausgewählt wurde oder nicht, kann jeweils eine unterschiedliche Rückmeldung erfolgen.

Während die Frage nur einmal formuliert wird, muss für jede Antwort die richtige Einstellung gewählt werden. Ausserdem ist es möglich, für die ganze Frage noch verschiedene Einstellungen zum Antwortverhalten festzulegen.

Beispiel eingebaute Frage
Mit den unterschiedlichen Fragetypen kann die Konzentration der Lernenden auf wesentliche Aspekte gelenkt werden.

Beim Lückentext und dem Zuordnen oder Markieren von Begriffen in einem Text müssen die Schlüsselwörter jeweils durch einen führenden und abschliessenden Stern festgelegt werden: Das ist eine *Lücke* in einem Lückentext.

Auf „Drag und Drop“ wird hier nicht weiter eingegangen, da dessen Erstellung für H5P untypisch ziemlich anspruchsvoll ist.

Sprungmarken

Nebst dem Anzeigen zusätzlicher Informationen oder dem Stellen von Fragen, ist es auch möglich, die Lernenden mit Sprungmarken durch das Video zu leiten. Kann man ein Video nicht selbst schneiden und möchte bestimmte Stellen überspringen, weil diese nicht relevant sind, kann man einen „Navigationshotspot“ hinzufügen. Sollte der Sprung in Abhängigkeit von einer getroffenen Wahl der Lernenden erfolgen, verwendet man „Crossroads“.

Abschliessend kann man noch einen „Summary Task“ einfügen, dabei handelt es sich um eine Reihe von Behauptungen, bei denen am Schluss die richtigen Aussagen als Zusammenfassung dienen.

Aussagen als Zusammenfassung
Dieser Aufgabentyp kann auch während eines Films eingefügt werden.

Bevor die Lernenden das interaktive Video abschliessen, entscheiden sie, welche der Aussagen richtig sind. Dabei bleiben am Schluss die richtigen Aussagen stehen und dienen als Zusammenfassung.

Summary
Die jeweils richtig gewählten Aussagen können einen guten Überblick der wesentlichen Informationen im Video vermitteln.

Verwendung im Unterricht

Wenn Lernende Videos schauen, fällt es ihnen oft schwer, die relevanten Punkte zu erkennen. Durch zusätzliche Hinweise und Fragestellungen kann die Aufmerksamkeit der Lernenden auf wichtige Sachverhalte gelenkt werden. Dazu gehört auch, dass man allenfalls im Video verwendete, den Lernenden nicht bekannt Begriffe kurz erklären kann.

Reichert man ein Video gezielt mit Hinweisen an, kann es nicht nur dem Wissenserwerb oder der Überprüfung des Gelernten dienen, es kann auch auf zusätzliche Möglichkeiten aufmerksam machen und damit den Lernenden neue Horizonte eröffnen.

Den Vorteilen auf Seiten der Lernenden steht der doch recht hohe Arbeitsaufwand für die Lehrperson gegenüber. Dabei hilft es, wenn eine einigermassen zuverlässige Transkription des Videos zu Verfügung steht. Letztlich lässt sich der damit verbundene Arbeitsaufwand nur rechtfertigen, wenn ein solches Video mehrfach zur Anwendung kommt. Wird sowieso zeitgleich mit der ganzen Klasse gearbeitet, können notwendige Überlegungen zum Video auch mit traditionelleren Mitteln erfolgen.

Interessant könnte es aber auch sein, wenn Lernende die Möglichkeit des interaktiven Videos nutzen, um ein bereits vorhandenes Video mit den vorgestellten Möglichkeiten selbst zu kommentieren oder von Grund auf eine eigene Videogeschichte zu erzählten. Mit dem „Crossroads“-Werkzeug ist es dann auch möglich, unterschiedliche Erzählstränge aufzugreifen, was die Gestaltung recht innovativer, planerisch aber höchst anspruchsvolle Videoformen erlaubt.