25 November 2023

Fooling around with JavaScript

In my computer science classes, I expect that my students can compress a text using the LZW algorithm, Huffman codes in grade 11 and do array sorting (Bubble Sort, Insertion Sort and Selection Sort) in grade 12.

Some of the students get it quickly, while others need some more exercises. Therefore, I came up with the idea to provide online exercises that provide samples and sample solutions. So, no student can complain about not having enough exercise opportunities.

Originally, all applications were written in Python and hosted on repl.it. As repl.it is hosted in the U.S.A., I was not really comfortable forcing students to use it, because there are some data protection concerns addressed by Thuringian government officials. Hence, I had to redo the codes for JavaScript.

Here are my solutions:

Of course, there are other solutions online. But coding it myself is way more fun than searching for alternatives.

16 Dezember 2020

Wenn das Kopfrechnen Grenzen hat

Homeschooling setzt Eltern auch schon bei 3.-Klasse-Aufgaben vor Grenzen. Das habe ich selbst gemerkt. Aber im Hunderterbereich muss auch ich mit schriftlich rechnen. Da ich von Haus aus faul bin, habe ich aber ein kleines Programm geschrieben, das mir die Arbeit erleichtert:

Some more context

As I had been asked. The riddles basically look likes this:

10_15
___
25_50

With this being the solution

10515
152035
252550

as

  • Row-wise:
    • 10+5 = 15
    • 15+20 = 35
    • 25+25 = 50
  • and column-wise:
    • 10+15 = 25
    • 5+20 = 25
    • 15+35 = 50

How the problem is modeled

The table is represented as a 2d-Array (first dimension: rows, second dimension: cols). If a number value is given, the „cell“ is given that particular value, otherwise the value in None.

Solving a riddle

First, we have to find out, whether we still have to calculate something. The function not_solved() iterates through all cells, as soon it finds a value still being None, it returns True. Otherwise it returns False.

As long as not_solved() returns True, we look on each row individually (line 10-22). For each row, we iniate nn as an empty list, then each cell is checked. If the value is None, we save the column number in nf (line 14f.), otherwise we put the value in the nn-list (line 17). If there are two values in the nn-list, we can solve this row (line 18-22) and the row lacks a solution. There are two cases now:

  1. The sum is the value missing (right column): Then, we have to add the two other values. As we have saved them along the way in nn, we just add these two values, and put this value in the cell. (line 20)
  2. The sum is one of the values given: Then we subtract the maximum value in the nn list (which has to be the sum) from its minimal value. And put this result in the empty cell. (line 22)

After all rows are checked, the same is done with the columns, before the while-loop is iniated once more.

Solving multiple riddles

As there was more than one riddle. All of them were put in a dictionary (fields, lines 38-47) with the task number (e.g. 3a1) as key and the riddle model as values.

Then, each riddle is solved (line 50) and the solutions are printed line-by-line (line 52f.).

21 Oktober 2020

Warum man als Lehrkraft eine eigene Internetseite haben sollte.

Bild: (c) Dipsey, 2012

Ich habe neulich ein tolles Authoring-Tool gefunden, das heißt h5p. Offensichtlich braucht man aber eine Webpräsenz, um die Skripte zu nutzen. Da gibt es nichts Einfacheres als eine eigene Webseite, so wie ich eine habe.

Also habe ich einem Freund, der dieses Tool nutzen wollte, vorgeschlagen, eine eigene Webpräsenz für sich zu besorgen. Er wollte nicht.

Was spricht für eine Webpräsenz?

Hier spricht jetzt der Edupunk aus mir: Oft trifft man im e-Learning-Bereich an Grenzen, die nicht durch Gesetze oder Regeln gesetzt sind, sondern allein wegen der Sturheit von meist technischen Administratoren existieren. Da wird ein Tool nicht installiert, weil man es (entgegen aller Vernunft) nicht sicher hält. Da will man keine Schreibrechte auf Verzeichnissen einrichten … Manchmal ist aber nicht die Sturheit schuld, sondern einfacher Zeitmangel. Dumm ist dann, wenn man ein Tool wollte, es sich aber in der Praxis nicht als tauglich erwies. Dann ist man richtig angeschmiert: Erst hat man konstant genervt und dann wird das Tool nicht genutzt.

Hierfür ist es einfach praktisch, selbst eine Internetpräsenz zu haben: Man kann ein Tool oft recht schnell installieren, testen und wenn es sich in der Praxis als untauglich erweist auch gern wieder löschen.

Aber das ist der nicht der Haupgrund. Die Gründe sind mannigfaltig:

Informationen und Transparenz

Auf der Seite kann man allgemeine Infos teilen:

  • Formatierungshinweise zu Hausarbeiten,
  • Lösungshinweise zu Aufgaben,
  • kurze Zusammenfassungen,
  • Bewertungsmatrizen für Vorträge etc.
  • Stoffverteilungspläne …

Vieles, was Schüler*innen gern verlieren, kann man dort nochmals zum Download zur Verfügung stellen. Im Zweifelsfall kann man so auch eigene Druck- und Kopierkosten sparen.

Die Veröffentlichung sorgt auch für Transparenz bei den Eltern.

Zusatzaufgaben

Man kann dort auch Zusatzaufgaben sammeln, die entweder leistungsschwachen Schüler*innen helfen können oder leistungsstarke Schüler*innen fördern können. Diese Aufgaben eignen sich dann auch zur Püfungsvorbereitung.

Unabhängigkeit von großen Anbietern

Man muss nicht unbedingt mehr Google Forms benutzen, wenn man eine Befragung machen will. Entweder nimmt man ein elaboriertes Formulartool wie Quform für WordPress (kostet nicht viel) oder das für wissenschaftliche Umfragen geeignete LimeSurvey. Für kleine Interaktionen braucht man auch nicht mehr unbedingt PollDaddy: Alles kann auf einer eigenen Internetpräsenz laufen. Ich benutze das WordPress-Plugin YOP.

Sharing is caring

Andere Lehrer*innen können die eigenen Materialien finden. Man freut sich ja auch immer, wenn man Material online findet. Warum dann nicht eigenes Material auch zur Verfügung stellen.

Das schlimmste, was passieren kann, ist, dass man Hinweise bekommt, wie man ein AB verbessern könnte.

Außenwirkung

email@mein-name.de wirkt um einiges besser als lehrgott123@web.de.

Eigene Cloud

Meist gibt es eine Menge Webspace zur Präsenz mit dazu. Genug, um die eigene Cloud zu installieren. Dafür gibt es eine Menge Skripte: OwnCloud, Nextcloud. Diese Clouds sind so komfortabel wie eine Dropbox oder das Google Drive.

Eigener URL-Shortener

Ob Veranstaltungshinweis oder Seitenempfehlung: Oftmals sind URLs lang. Zu lang, um sie korrekt ins Heft zu schreiben oder an eine Tafel. Deswegen bieten sich Services wie bit.ly an. Aber seien wir ehrlich, dort bekommt man auch nie einen passenden Shortlink. Es gibt aber eine Lösung: YOURLS, nicht sehr fancy, aber man bekommt den Link, den man braucht. Und wenn nötig, löscht man den alten.

Die dunkle Seite

Natürlich ist nicht alles rosig. Einige Probleme gibt es schon.

Rechtliche Aspekte

Copyright, Datenschutz, Haftungen …, man kann schnell in eine Falle treten. Deswegen geht es nicht, ohne sich vorher kundig zu machen.

Technische Kompetenz

Braucht man oft nicht wirklich, für Standardoberflächen wie WordPress, Drupal oder auch Joomla bieten viele Provider schon Installationswerkzeuge an. Ansonsten ist der Rest auch nicht schwer, zumal es tonnenweise Tutorials gibt.

Kosten

Sind als fest angestellte Lehrperson nicht wirklich hoch. Die meisten Tools sind Open-Source und somit auch kostenfrei.

tl;dr und weitere Infos (als Mindmap)

Für eine vergrößerte Darstellung bitte klicken.
7 September 2020

Und wieder …

… geht ein Weg zu Ende. Gerade habe ich mein letztes Prüfungsergebnis erfahren und ich habe bestanden. Somit kommt als Nächstes das Referendariat.

Als ich vor fünf Jahren zum Vorkurs Mathematik für Physiker ging, hatte ich drei Sorgen:

  1. Würde ich ein Studium der Physik und der Informatik schaffen?
  2. Bin ich zu alt, um noch einmal zu studieren?
  3. Wie reagieren die anderen Student*innen?

Ich wusste, dass ich mich bei dem ersten Problem an meinen Vater (vor allem in der Physik) und an Freunde (in der Informatik) wenden könnte. Wegen meines Alters war ich machtlos. Es war eben so und musste akzeptiert werden. Aber die Reaktion der anderen? Würde ich Anschluss bekommen oder immer allein sitzen? Davor hatte ich am meisten Angst. Wie es sich herausstellte, war diese Angst unbegründet. Wie es sich zeigte, war der Physikjahrgang sehr offen. Sicher, sie hatten andere Themen als ich, aber dennoch hatte ich immer das Gefühl, Teil dieser Gemeinschaft zu sein. Und dafür möchte ich Alex, Daniel, Elisa, Eric, Jana, Jonas, Richard, Sophia, Sven und Thomas danken. In der Informatik gaben mir Christine und Hannes das Gefühl, zu Hause zu sein. Auch und vor allem, weil manchmal Scherze auf meine Kosten gemacht wurden, die Witze waren nie bösartig.

Es war herrlich, noch einmal lernen zu können. Ich wage sogar zu behaupten, dass es mich ein wenig jung hielt. Im Laufe der Jahre durfte ich von vielen guten Profs und Übungsleitern lernen. Ihre Offenheit, Hilfsbereitschaft und Kompetenz halfen, dass alle drei Probleme nichtig wurden. Für eine Aufzählung fehlt hier der Platz und ich möchte niemanden vergessen. Mein besonderer Dank gilt der AG Fachdidaktik der Physik und Astronomie, es war der Ort, wo man nicht nur immer ein offenes Ohr, guten Kaffee und Süßkram fand, sondern auch, wo man viel lernen, spielen und sich ausprobieren konnte. Nicht ohne Grund habe ich meine Staatsexamensarbeit in dieser AG geschrieben. 🙂

Zu meinem Studium gehörten auch zwei Praktika. Mein Eingangspraktikum absolvierte ich im Bummi-Kindergarten in Weimar. Es hat wirklich Spaß gemacht und ich konnte miterleben, welch anstrengenden und wichtigen Job die Kindergärtner*innen erledigen. Das Praxissemester absolvierte ich am Goethe-Gymnasium in Weimar. Und was soll ich sagen? Auch diese Zeit war schön, lehrreich und haben Lust auf Unterricht gemacht.

Abschließend muss ich meiner Familie danken. Zuvorderst Katrin und Elsa, die mir den Rücken frei hielten, meine Launen ertrugen und mich immer dann, wenn es nötig war, in Ruhe ließen. Meine Eltern und meine Oma haben auch immer geholfen, wenn es nötig war. Sei es, weil sie sich um Elsa kümmerten, als Katrin und ich es nicht konnten, sei es durch finanzielle Hilfen. Meinem Vater möchte ich auch hier noch einmal für seine Geduld, seine Hilfestellungen und seine Unterstützung danken.

24 Mai 2020

Über mein StEx-Projekt

Vor zwei Jahren habe ich angefangen, über mein Abschlussprojekt nachzudenken. Ich wollte etwas machen, was mit meinen beiden Fächern zu tun hat: Physik und Informatik. Ferner sollte es etwas sein, was einen gewissen Nachhaltigkeitseffekt für meine spätere Arbeit haben kann. So kam ich auf die Idee, mich mit Microcontrollern wie dem Arduino und Einplatinen-Computern wie dem Raspberry Pi als Datenlogger für Experimente zu beschäftigen.

Wahl der Plattform

Preislich gibt es schon einen Unterschied, während Arduino-Klons wenige Euros kosten (vor allem, wenn man größere Stückzahlen kauft), kommt ein Pi mit nötiger Input-/Output-Hardware kommt so um die 50 Euro. Da ich die Geräte auch gern für Schülerexperimente einsetzen würde und Schulbudgets begrenzt sind, fiel meine Wahl auf den kostengünstigeren Arduino.

Das Containment- und Darstellungs-Problem

Diese Wahl hatte jedoch zwei Probleme zur Folge: Wie sollte der Datenexport funktionieren? Und wie macht man Arduino-Aufbauten „schülersicher“?

Zum zweiten Problem zuerst: Üblicherweise werden Arduino-Aufbauten auf Breadboards gesteckt (siehe z.B. der Aufbau zu „Funktionen laufen„). So lassen sich Aufbauten zwar schnell realisieren und Sensoren gut wiederverwenden, aber diese Aufbauten sind eher zum Prototyping gedacht, nicht zum ernsthaften Einsatz. Dadurch sind die Verdrahtungen sehr anfällig auf mechanische Einwirkungen, wodurch es leicht zu Wackelkontakten kommen kann. In der Praxis kann es so zu Verzögerungen im Unterrichtsablauf kommen (nicht, dass diese von vielen Schüler*innen diese nicht begrüßen würden). Aber aus Lehrendensicht ist dies sicher nicht gewollt. Deswegen müssen die Mikrocontroller und Sensoren einerseits gut verbaut sein, was die Verlötung von Leitungen einschließt. Andererseits sollten Mikrocontroller aber auch in einer Vielzahl von Experimenten wiederverwendet werden können. Dies hat automatisch zur Folge, dass man die Arduinos in Kisten einbaut, diese mit Buchsen versieht und die Sensoren mit entsprechenden Steckern hinzufügt. Das Thema Steckerwahl ist ein eigenes, da kommt sicher noch ein Post.

Nun zum zweiten Thema: Datensexport und -darstellung. Dazu braucht man einen Computer, da ich im Laufe des Studiums schon Erfahrungen mit Python zur Darstellung von Daten Erfahrungen gesammelt habe, fiel die Wahl logischerweise auf diese Plattform. Mehr dazu in weiteren Posts.

Eigene Projekthomepage

Die Entwicklung will ich auf einer eigenen Webseite dokumentieren. Sie ist schon online: aripe.de

Aripe steht für Arduino and Raspberry Pi in Physics Education. Eigentlich wollte ich Science statt Physics nehmen, aber dann hätte die URL zu sehr nach Kirche oder Hybris geklungen.