Landkarten mit Snap!

Snap! 5.0 verfügt über mächtige Befehle zum Darstellen von Landkarten.

Karte in der Watercolor-Darstellung. Die Darstellung ist nicht nur ästhetisch, sie eignet sich auch für Übungen mit stummen Karten. Abgebildet wurden Verkaufsstellen eines grösseren Anbieters.

Wenn man die Befehle für die Kartendarstellung dem Hintergrund zuordnet, kann man anschliessend beliebige Objekte auf der Karte platzieren. Dazu sind nur gerade drei Befehle notwendig:

Nur gerade drei Zeilen sind notwendig, um eine Landkarte in Snap darzustellen. Die restlichen Befehle dienen der Navigation in der Karte.

Damit der Kartenausschnitt beliebig verschoben und gezoomt werden kann, wurde eine Steuerung über die Pfeiltasten und die Plus- und Minustaste implementiert. Der Broadcast-Befehl sorgt dafür, dass beim Verschieben und Zoomen der Karte die eingezeichneten zusätzlichen Objekte am richtigen Ort positioniert werden.

Diese Objekte können von Hand eingetragen werden, besser ist es aber sicher, wenn man mit einer Liste (mit Längen- und Breitengraden) arbeitet.

Einzelne Objekte können aus einer Liste ausgelesen und auf der Karte platziert werden.

Unter Umständen bereitet die Bereitstellung der Liste Schwierigkeiten, weil die meisten Geolocation-Dienste unterdessen nur noch nach einer Registrierung oder gegen Bezahlung nutzbar sind. Für die Schweiz allerdings bietet das Geoportal des Bundes eine schulfreundliche Lösung: Adressen können in eine Exceltabelle eingetragen werden und diese generiert dann automatisch die entsprechenden von Snap! lesbaren Koordinaten.

Verwendung in der Schule

Mit den vorgestellten Befehlen von Snap! können Schülerinnen und Schüler auf einfache Weise ein rudimentäres Geografie-Informations-System aufbauen. Diese können für die verschiedensten Zwecke eingesetzt werden: Von Standort der Klassenmitglieder über die grössten Städte der Welt bis hin zur Darstellung aktiver Vulkane auf der Weltkarte. Je nach Interessen der Lernenden können unterschiedliche Objekte visualisiert werden. Verwendet man zusätzlich mehrere Kostüme, kann die Darstellung auch mit unterschiedlichen Symbolen erfolgen.

Hinweis: Die Schülerinnen und Schüler sind es gewohnt, dass sie den Standort ihrer Kolleginnen und Kollegen über die Dienste sozialer Netzwerke jederzeit anzeigen lassen können. Die Möglichkeiten von Snap! geben ihnen einen Einblick, wie solche Dienste funktionieren.

Quellen

Einfach Koordinaten von Adressen in der Schweiz generieren (Geoportal des Bundes)

Telefonbuch zum Finden von Adressen: https://tel.search.ch oder https://tel.local.ch/de

Höhenmodell mit Snap!

Höhenmodell der Schweiz mit Snap! visualisiert.

Ein Höhenmodell für die Schweiz kann man in Snap! mit wenigen Zeilen schreiben. Dazu wandelt man erst einmal die Daten des Höhenmodells (Quelle siehe weiter unten) in eine CSV-Datei um, indem man in der Originaldatei die Leerschläge durch Strichpunkte ersetzt. Anschliessend kann man die Datei einfach auf die Programmieroberfläche ziehen. Snap! wandelt die Datei automatisch in eine Variable (oder besser eine Liste von Listen) um.

Koordinatenliste mit x-, y- und z-Werten.

Auf einzelne Elemente einer Liste kann man einfach mit folgendem Befehl zugreifen:

Das Element 1 einer Liste wird zurückgegeben.

Da die Koordinaten der Schweizer Landeskarte von für die x-Werte von ca. 500’000 – 800’000 und für die y-Werte von ca. 70’000 – 300’000 reichen, müssen diese zuerst in die Bildschirmkoordinaten von Snap! umgerechnet werden.

Dafür eignet sich eine entsprechende Funktion:

Das Verwenden einer Funktion hat den Vorteil, dass eine spätere Anpassung nur an einem Ort im Programm durchgeführt werden muss.

Nun müssen an den einzelnen Bildschirmkoordinaten nur noch Punkte mit einer der Höhenangabe entsprechenden Farbe gezeichnet werden.

Das ganz Programm kann dann etwa so aussehen:

Aufgrund der vielen Daten ist die Laufzeit des Programms relativ hoch, deshalb kann auch nur mit einem Teil der Daten gearbeitet werden (Vorschaufunktion).

Wie bei grossen Datenmengen üblich lohnt es sich, in der Versuchsphase mit einem reduzierten Datensatz zu arbeiten. Damit können Fehler schnell korrigiert werden, ohne dass man jedes Mal lange warten muss. Im Programm funktioniert dies so, dass z.B. nur für jeden zwanzigsten Punkt Daten ausgelesen und gezeichnet werden.

Verwendung im Unterricht

Das Höhenmodell bietet eine gute Gelegenheit mit einem einfachen Beispiel in das Thema „Big Data“ einzusteigen. Im vorliegenden Fall ist der Datensatz gross, weil er sehr viele Werten enthält. Die Datenstruktur hingegen ist einfach.

Bei der Visualisierung kann man sich zusätzlich überlegen, welche Farbmodelle zum Einsatz kommen sollen, um die Höhenunterschiede von rund 5000 m in der Schweiz grafisch darzustellen.

Im Geografieunterricht kann das Modell zusätzlich verwendet werden, um verschiedene Höhenstufen darzustellen. Im einfachsten Fall färbt man einfach alle Höhenwerte blau ein, die grösser als ein kritischer Wert sind, und bekommt so ein Modell, welches einen ansteigenden Meeresspiegel visualisiert. Den gleichen Trick kann man für hohe Werte anwenden, um beispielsweise durch Weissfärbung eine mögliche Gletscherbedeckung zu simulieren. Dies dürfte dann unweigerlich zur Frage führen, wie es denn in anderen Gebieten der Welt aussieht. Vorausgesetzt man findet die passenden Daten, kann man das Programm entsprechend anpassen. Allerdings muss man dann sehr wahrscheinlich noch die entsprechenden Koordinaten umrechnen.

Höhenmodell mit Abstufungen: Das Schweizer Mittelland ist deutlich zu erkennen, ebenso wie die alpine Region.

Quellen:

Das digitale Höhenmodell der Schweiz mit einer Maschenweite von 200 m

Schweizer Landeskarte

Audio-Spektrum mit Snap!

In der Version 5.0 von Snap! sind einige neue Funktionen enthalten. Damit ist es beispielsweise möglich, ein Audio-Spektrum darzustellen, wie Jens Mönig (Entwickler von Snap!), im Februar 2019 in einem Youtube-Video zeigte. Basierend auf dieser Grundlage wird hier eine grafisch erweiterte Version gezeigt.

Mit wenigen Zeilen ist es möglich, mit der Programmiersprache Snap! ein Audio-Spektrum anzuzeigen.

Das Hauptprogramm besteht aus einer For-Schleife, welche die Werte für die einzelnen Frequenzen auf dem Bildschirm darstellt.

Die Daten für die grafische Darstellung werden im Mikrofon-Sensor als Liste gespeichert.

Insgesamt liefert der neue Sensor folgende Daten:

  • Volumen als Dezimalzahl,
  • Note als Nummer entsprechend der MIDI-Vorgabe,
  • Frequenz der Hauptnote in Hertz,
  • Spektrum als Liste von natürlichen Zahlen (einschliesslich 0),
  • Samples als Liste Dezimalzahlen zwischen -1 und 1,
  • sowie technische Details zur Samplingrate und Auflösung.

Für das Audio-Spektrum wird die Option „spectrum“ verwendet.

Damit die grafische Ausgabe des Programms etwas hübscher aussieht, werden die Farben bei jedem Durchlauf verändert.

Ausserdem können über zwei Schieberegler die Lautstärke (Höhe in der Grafik) und der Frequenzbereich des Spektrums angepasst werden.

Dazu wurden zwei neue Objekte definiert, welche mit der Maus auf der x-Achse verschoben werden können. Die Position der Objekte beeinflusst dann die Variablen zur Steuerung von Lautstärke und Bereich. Da die Programmierung beider Objekte sehr ähnlich ist, kann zuerst nur ein Objekt hergestellt und dieses dann geklont und anschliessend angepasst werden.

Steuerung der Lautstärke:

Die Lautstärke wird über die x-Position des entsprechenden Objekts gesteuert. Je nach Computer sollten einzelne Werte noch angepasst werden.

Steuerung des Frequenzbereichs:

Die Steuerung für den Frequenzbereich funktioniert fast gleich wie die für die Lautstärke.

Nun ist es möglich, das Spektrum der Qualität der Aufnahme anzupassen.

Anwendung im Unterricht

Nebst der Programmierung im Informatikunterricht, welche in der einfachsten Form wenig Zeit in Anspruch nimmt, kann das Audio-Spektrum vor allem in der Physik (Akustik) und im Musikunterricht angewendet werden, wenn die Bedeutung der Obertöne für das Klangempfinden einzelner Instrumente thematisiert werden. Es kann aber auch durchaus reizvoll sein, die Spektren der Stimmen einzelner Schülerinnen und Schüler miteinander zu vergleichen.

Quellen

Mönig (2019). Making a Guzdial Style Uke Demo with Snap! in 5 Minutes

Harvey und Mönig (2019) Snap! 5.0 Reference Manual (PDF)

Vom Buchstabe zur Sprachgenerierung

Der Sprachwissenschaftler François Conrad führt den harten Klang der deutschen Sprache unter anderem auf die Silbenstruktur des Deutschen zurück. Diese Aussage bietet sich an, um ein einfaches Computerprogramm zu schreiben, welches mittels einer Menge von Buchstaben Morpheme (Laute mit Bedeutung) bildet und daraus Wörter (und Sätze) zusammensetzt.

Hauptbildschirm des mit Snap! geschriebenen Programms: Am oberen Bildrand sind einige Listen zu sehen, welche die Zufallsgenerierung ermöglichen. Unten rechts sind die Werte einiger im Programm verwendeten Variablen sichtbar.

Bei der Programmierung des Sprachengenerators können folgende informatorischen Konzepte eingesetzt werden:

  • Variablen (und Listen),
  • Schleifen,
  • Funktionen (wiederkehrende Programmblöcke).

Bevor man mit der Programmierung beginnt, ist es lohnenswert, sich den Programmablauf vor Augen zu führen.

Flowchart des Programms
Das Flussdiagramm zeigt den Ablauf des Programms. Zwei ineinander verschachtelte Schlaufen erzeugen zuerst einzelne Wörter und dann ganze Sätze.

In einem ersten Arbeitsschritt sollen Morpheme (bedeutungstragende Laute gebildet und zu Wörtern zusammengesetzt werden. Dazu werden Konsonanten und Vokale nach vorgegebenen Regeln (im Programm die morphemes-Liste) aneinandergereiht. Die Anzahl der gebildeten Morpheme bestimmt die Wortlänge.

Das gleiche Verfahren wenden kann dann auch für die Bildung von ganzen Sätzen verwendet werden.

Um das Programm etwas attraktiver zu gestalten, werden die Sätze mit einer Erweiterung von Snap! in gesprochene Sprache umgewandelt.

Das hört sich dann beispielsweise so an:

Natürlich ist die Ausgabe abhängig von den generierten Zeichenketten und der Einstellung der Sprachausgabe.

Das Programm im Detail

Das Programm besteht aus einem Anfangsblock und einer einer bedingten Anweisung, welche immer dann ausgeführt wird, wenn die Leertaste (space) gedrückt wird.

Code des Hauptprogramms in Snap!
Einmal abgesehen von der Initialisierung der Variablen, kann das eigentliche Programm in Snap! mit wenigen Zeilen geschrieben werden.

Die eigentliche Schleife wurde in einen sogenannten „warp“-Block eingefügt, weil damit dieser Programmteil schneller läuft. Ansonsten kann der Ablauf des Programms Schritt für Schritt studiert werden, was vor allem bei der Fehlersuche hilfreich ist.

Abgesehen vom Hauptprogramm kommen noch zwei Funktionen zum Einsatz. Die mehrfach verwendete Funktion randomitem() ist äusserst einfach gehalten:

randomitem() wählt ein zufälliges Element aus einer Liste aus.

Etwas komplexer ist die Funktion zur Generierung der einzelnen Morpheme:

buildmorph() generiert einzelne Morpheme. Dabei verwendet die Funktion die vorgegebene Morphem-Struktur, z.B. CV oder CVC.

Die Morpheme werden also aus einzelnen Konsonanten (C) und Vokalen (V) zusammengesetzt, je nachdem an welcher Stelle eines einzelnen Morphems sich die for-Schleife gerade befindet.

Verwendung im Unterricht

Im Medien- und Informatikunterricht der Sekundarstufe I stehen jeweils im 1. und 3. Schuljahr je eine Jahreslektion zu Verfügung. Deshalb lohnt es sich nicht, Schülerinnen und Schüler das ganze Programm selbständig erarbeiten zu lassen. In Snap! ist es aber möglich, Programmvorlagen zu Verfügung zu stellen, auf denen die Lernenden dann aufbauen können. Je nach Schwerpunkt kann dann ein anderer Teil des Codes ergänzt oder erweitert werden.

Läuft das Programm erst einmal, kann es im Sprachunterricht zum Einsatz kommen, um die Struktur verschiedener Sprachen auf spielerische Weise zu entdecken. Welche Elemente müssen vorgegeben werden, damit der Computer „Italienisch“, „Tamil“ oder „Polnisch“ erzeugt? Die Lernenden können dazu Hypothesen aufstellen und diese anschliessend in kleinen Experimenten überprüfen.

Möglich wäre auch eine Erweiterung zu einer Art Gedichtgenerator für künstliche Sprachen. Für Schülerinnen und Schüler der Sekundarstufe II könnte die Herausforderung darin liegen, das Programm in Hinblick auf eine künstliche Grammatik zu erweitern.

Quellen:

Conrad (2019). Warum klingt das Deutsche so (schön) hart?

Mermaid Live Editor (erzeugt Flussdiagramme aus Textdateien)

Online-Editor der Programmiersprache Snap!