Einführung
Eine Sache vorweg: Ich bin weder Informatiklehrkraft, noch bin ich erfahrener Programmierer. Trotzdem war ich begeistert davon, mit wie wenig Vorerfahrung es möglich ist, Python im Physikunterricht einzusetzen.
Zu Beginn des ersten Jahres der gymnasialen Oberstufe (Einführungsphase) steht man bei uns vor der Herausforderung, dass zur Lösung vieler mechanischer Probleme, von der beschleunigten Bewegung, bis zur Raketengleichung eigentlich Wissen in Integral- und Differenzialrechnung nötig ist, welches aber zu diesem Zeitpunkt nicht vorhanden ist.
Ein Lösungsansatz liegt in der Verwendung von Tabellenkalkulationsprogrammen. Hier ein einfaches Beispiel:
Ein Fahrzeug beschleunigt mit 2 m/s², es wird also jede Sekunde 2 m/s schneller. Wir wollen jetzt wissen, wie weit es in 10 s gefahren sein wird.
In der Tabellenkalkulation können wir jetzt nähern, dass das Auto die erste Sekunde mit 0 m/s, die 2. mit 2 m/s, die 3. mit 4 m/s usw. fährt. Das wird natürlich ungenau, da das Fahrzeug ja kontinuierlich schneller wird. Wir zerlegen es also in kleine Schritte, von 0,1 s oder 0,01 s. Damit wird es zwar beliebig genau, aber unsere Tabelle wird auch beliebig lang.
Eleganter wird das ganze mit Python und einer einfachen "while"-Schleife
# Beschleunigte Bewegung
x=0 # Der Startpunkt
v=0 # Die Startgeschwindigkeit ist
t=0 # Die Zeit startet normalerweise bei 0
dt=0.01 # Hier kann das Intervall für die Berechnung gewählt werden
a=2 # Die gewählte Beschleunigung
while(t<=4): # Hier wird die betrachtete Zeit angegeben
v=v+a*dt # Die Berechnung der Geschwindigkeit für das nächste Intervall
x=x+dt*v # Die neue Position
t=t+dt # Der neue Zeitpunkt
print("x=", x)
Dies ist natürlich eine sehr, sehr schlichte Lösung, aber sie lässt sich schon mit minimalen Programmierkenntnissen erreichen. Schülerinnen und Schüler mit fortgeschrittenen Kenntnissen können hier natürlich auch eine Abfrage der Variablen einbauen, oder eine Wertetabelle für die Ergebnisse.
Mein Ziel besteht darin, auch Menschen, die eigentliche keinen Bezug zum Programmieren haben, einen niederschwelligen Erstkontakt zu bieten und im besten Fall auch Freude am Programmieren zu wecken.
Wenn das Prinzip verstanden wurde, kann man das Programm auch leicht für andere Probleme, wie zum Beispiel Würfe oder den Treffpunkt zweier Züge anpassen. Wenn die Züge aufeinander zu fahren, muss der Körper 2 eine negative Geschwindigkeit bekommen.
# Wann treffen sich zwei Körper?
dt = 0.1
v1 = 6.75 # Geschwindigkeit Körper 1
v2 = 2.13 # Geschwindigkeit Körper 2
x1 = 0 # Startpunkt Körper 1
x2 = 2000 # Startpunkt Körper 2
t = 0
while x2>x1: # Körper 1 hat Körper 2 eingeholt
x1 = x1 + v1*dt
x2 = x2 + v2*dt
t = t + dt
print(x1,"m", t, "s")
Auch im Mathematikunterricht ist der Einsatz denkbar. Zum Beispiel für Näherungsverfahren oder Simulationen zu Statistik.
Um eine Verwendung auf möglichst vielen Plattformen zu ermöglichen, habe ich im Unterricht die browsergestützte IDE https://pythononline.net/ genutzt.
Erfahrung
Von der Schülerschaft gab es vorwiegend positives Feedback: Schülerinnen und Schüler mit Vorerfahrungen haben sich gefreut, das Gelernte in neuem Kontext anwenden zu können und selbst Schülerinnen und Schüler, die noch nie programmiert hatten, waren stolz auf ihre ersten Programme. Wenn der Zeitrahmen es zulässt, werde ich das Projekt so weiterführen.
GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.