Archiv der Kategorie: Schule

Florenz: Museo Galileo

Wer in Florenz den Touristenmassen entfliehen möchte (oder kein Ticket/keinen Timeslot für eines der bekannteren Museen ergattern oder buchen konnte) sollte sich das kleine Museo Galileo ansehen.

Thematisch beschäftigt sich das Museum natürlich mit der Beschreibung und Vermessung unserer Welt, ist aber nicht darauf beschränkt. So werden neben verschiedenen Instrumenten zur Navigation (z.B. Astrolabien und Jakobsstäbe) auch Rechenhelfer, Uhren, Mikroskope, Karten und Globen präsentiert. Auch die Verwendung der Exponate für kriegerische Zwecke findet Beachtung.
Ein Teil des Museums widmet sich der früheren Vermittlung von naturwissenschaftlichem Wissen durch Experimente und Modelle. Sehr sehenswert sind hier die medizinischen Modelle zu Schwangerschaft und Geburt.

Erfreulicherweise gibt es in den Räumen Videodisplays auf denen durch Filmvorträge die Funktionsweise der Exponate erklärt werden. Leider nur auf Italienisch oder Englisch. Den hilfreichen Museumsführer gibt es glücklicherweise auch auf Deutsch.
Aber auch ohne den Führer lohnt sich der Besuch. Mir wurde hier zum ersten Mal klar, wie so ein Astrolabium tatsächlich zur Navigation genutzt wurde.

Faszinierend fand ich, dass bei einigen Instrumenten auch die dazugehörigen Anleitungen bzw. Handbücher ausgestellt waren. Da hat doch tatsächlich jemand über hunderte von Jahren die Handbücher aufbewahrt!
Hier ist ein Beispiel für ein mir völlig unbekanntes Instrument:

Galileo Galilei ist übrigens auch im Museum anwesend. Zumindest sein rechter Mittelfinger als wohl skurilstes Exponat:

Mermaid Spickzettel

Durch einen Post im Fediverse bin ich auf Mermaid.js gestoßen, eine wunderbare Möglichkeit schnell und einfach verschiedene Diagrammtypen innerhalb eines Markdown Dokumentes zu erstellen. Die Syntax ist sehr einfach, aber trotzdem mächtig genug für komplexe Diagramme.

iWriter Pro auf dem iPad. Links die Live-Vorschau, rechts das editierte Markdown Dokument.

Netterweise unterstützen sowohl Visual Studio Code (mit einem Markdown Plugin) am PC und iWriter Pro auf dem iPad die Syntax, so dass ich wohl in Kürze im Unterricht darauf zurück greifen werde und meine kläglichen handschriftlichen Kritzeleien damit endlich ein Ende finden können.

Für die wichtigsten Diagrammtypen habe ich mir einen Spickzettel erstellt, den ich euch nicht vorenthalten möchte:

Python und Gleitkommazahlen

Da ich dieses Halbjahr im Wahlpflichtfach Informatik nach langer Zeit mal wieder in Python programmieren wollte, habe ich meine Beispielprogramme einer kurzen Prüfung unterzogen. Bei einem Programm stutzte ich allerdings dann doch über die Ausgabe:

# Variablen
geld = 10
kostenProTuete = 1.20
anzahlTueten = 0

# Twilight Sparkle geht einkaufen
while geld - kostenProTuete > 0:
    geld = geld - kostenProTuete
    anzahlTueten = anzahlTueten +1

print("Twilight Sparkle hat", anzahlTueten, "Panini Tüten gekauft.")
print("Sie hat noch", geld, "übrig.")

Folgendes wurde vom Programm ausgegeben:

Twilight Sparkle hat 8 Panini Tüten gekauft.
Sie hat noch 0.3999999999999999 übrig.

Äh, what?
Ich dachte eigentlich, dass Münzen kleiner als 1 Cent nicht mehr im Umlauf wären, der Halfpenny ist ja schon länger nicht mehr zu bekommen.

Tja, vermutich ein Bug in Pyto, der Entwicklungsumgebung, die der beste Schulträger von allen auf den iPads der Schüler installiert hat. Also schnell auf dem heimischen iPad mit Pythonista getestet: Gleiches Ergebnis.

Ok, es gibt ja noch a-shell, da ist auch ein Python mit dabei! Gleiches Ergebnis. Wie übrigens auch unter Python auf dem PC. Dort habe ich dann direkt noch etwas herumgespielt:

10-1.1
8.9
8.9-1.1
7.800000000000001
7.8-1.1
6.699999999999999
6.6-1.1
5.5
5.5-1.1
4.4
4.4-1.1
3.3000000000000003
3.3-1.1
2.1999999999999997
2.1-1.1
1.0

Das sieht nicht gesund aus. Das sieht gar nicht gesund aus! Eine kurze Recherche später landete ich auf dieser Seite: What Every Programmer Should Know About Floating-Point Arithmetic or Why don’t my numbers add up?

Kurz eingelesen und schlau gemacht: Rundungsfehler bei der Speicherung der Zahlen sind für die merkwürdigen Ergebnisse verantwortlich. Übrigens in fast allen Programmiersprachen, wie dieser wunderbaren Übersicht zu entnehmen ist.

Als Lösung kann man in Python das Modul „decimal“ verwenden, wie der Spickzettel vorschlägt. Ich glaube aber nicht, dass ich meinen SchülerInnen das vorschlagen werde, schließlich sind es allesamt Programmieranfänger. Außerdem tut es ihnen gut zu wissen, dass Computer zwar schneller rechnen können, aber nicht besser!