No Girls‘ Day //2268

Gestern fand also unser diesjähriger Schüler-Technik-Tag statt.

Und – ich sag’s euch gleich – nächstes Jahr wird es keinen Schülertag geben. Den nächsten sehe ich für die Faschingsferien 2021 vor. Das muss genügen. Schließlich verursacht so ein unproduktiver Tag Aufwand und Kosten. Da kann man die Zeitabstände dazwischen etwas verlängern.
Was mich durchaus ergrimmt hat, ist, dass zwar 18 Jugendliche angemeldet waren, aber nur zehn tatsächlich gekommen sind. Die waren dann allerdings umso motivierter.
Ich muss mir überlegen, was ich das nächste Mal machen kann, um die Präsenzquote zu erhöhen.

Ich hatte die Veranstaltung initiiert und vorbereitet, übertrug aber dann die Durchführung zu einem wesentlichen Teil an Werner, da mir die Zeit sonst noch enger geworden wäre.
In den letzten Jahren hatten wir teilweise zwei Sessions parallel, aber diesmal plante ich nur einen Vortrag bzw. Vorführung gleichzeitig. Mehrere Sessions zur selben Zeit sind zwar sonst immer recht gut angekommen, brauchen aber einfach zu viele Resourcen, so dass ich das Veranstaltungsformat vereinfachte und auch die Dauer insgesamt verkürzte.
Ich selbst referierte am Vormittag über eine Stunde lang über SW-Entwicklung (einschließlich einer kleinen Demonstration von Evalyze, meiner KI-Software), und stand in der Mittagspause zeitweise für Fragen zur Verfügung.
Kurzzeitig ließ sich auch Carsten mal blicken, verschwand aber gleich wieder.

Als am Nachmittag die Führung durch das Entwicklungslabor anstand, wurde die Schülergruppe geteilt, und ich übernahm es, einer Teilgruppe das Labor zu zeigen.
Im Internetzeitalter ist es fast unmöglich geworden, Jugendliche noch zu beeindrucken. Als ich ihnen aber am Ossi ein paar Lissajous-Figuren und Schwebungen zeigte, waren sie jedoch schon begeistert, so dass ich ihnen erlaubte, selbst ein wenig am Funktionsgenerator und am Poti herumzuschalten.
Einer der Jungen fragte mich, ob ich meinen Doktor in Informatik oder Elektrotechnik gemacht hätte, und erstarrte fast ehrfürchtig, als ich antwortete: „Weder noch, sondern in Mathematik. Studiert habe ich aber Physik.“

Beim abschließenden Get-Together wurden erst die richtig interessanten Fragen gestellt. Einer der Schüler erzählte, dass sein älterer Bruder Informationstechnik studiert. Kürzlich hatte er eine Programmieraufgabe als Übung auf. Ich weiß nicht, ob aus Zufall oder Absicht – jedenfalls hatte dieser Schüler auf seinem Smartphone den genauen Wortlaut der Aufgabe dabei: Zunächst sollte per Zufall eine Folge von Nullen und Einsen erzeugt werden, und zwar in der Anzahl, die der Anwender interaktiv eingeben musste. Jeweils zwei aufeinanderfolgende dieser Ziffern sollten zu einer zusammengefasst werden, und zwar zu 0, wenn beide gleich, und 1, wenn sie unterschiedlich sind. Der Schüler (bzw. sein Bruder) hatte bereits herausgefunden, dass sich dies mit einer XOR-Verknüpfung bewerkstelligen lässt. In weiteren Durchgängen sollte der Ablauf wiederholt werden, bis nur noch eine Ziffer übrig blieb. Wie der Schüler berichtete, hatte sein Bruder die Aufgabe gelöst, sofern es sich bei der Anzahl (innerhalb eines Durchgangs) um einer gerade Zahl handelt [bzw. um eine Zweierpotenz bei der Anfangseingabe – Anmerkung der Programmierschlampe].
Ich ließ mich hinreißen, diesen, sowie zwei weitere interessierte Schüler, mit in mein Büro (für mehr wäre es zu eng gewesen) zu nehmen, um ihnen live die Lösung der Aufgabe zu demonstrieren.

Eine Konsolenanwendung hatte ich schon lange nicht mehr geschrieben, aber in diesem Fall begnügte ich mich damit.
Ich las also zuerst die Eingabe ein, alloziierte entsprechend Speicherplatz für ein Array (aus chars, also 8 bit, obwohl 1 bit auch gereicht hätte), und initialisierte dieses mit dem jeweils least significant bit einer Zufallszahl. Während der Student angeblich mehrere Arrays benutzt hatte, genügte mir eines, bei dem ich die vorderen Plätze jeweils überschrieb (und die hinteren Plätze zwar noch vorhanden, aber irrelevant wurden): x[i] = x[2*i] ^ x[2*i+1]
Die einzelnen Durchläufe innerhalb einer While-Schleife, bis nur noch eine Ziffer übrig ist. Um eine ungerade Anzahl von Ziffern innerhalb eines Durchlaufs zu behandeln, fügte ich schließlich noch eine If-Abfrage hinzu. Der Aufgabentext machte keine Aussage darüber, was mit diesem „Überschuss“ genau zu tun sei. Ich schwankte, ob ich das letzte Bit mit 0 verxoren (was auf NOT hinauslaufen würde, bzw. die Subtraktion von 1) solle, entschloss mich schließlich, das letzte Bit einfach zu kopieren.
Die Schüler schauten mir genau zu, wie ich ziemlich flott programmierte, dann den ersten Probedurchlauf startete. Dass dabei durchaus Fehler auftraten, ist eben so und Entwickleralltag. Also ließ ich sie zusehen, wie ich debugge, dabei merke, wo etwas nicht passt, und daraufhin den Code modifiziere, bis letztendlich das Programm allem Anschein nach fehlerfrei durchläuft.

Was sie dabei lernen konnten, ist ein konstruktiver Umgang mit den eigenen Fehlern. Selbst ein geübter Programmierer macht durchaus Fehler, aber mit ausreichend Erfahrung findet er ganz schnell heraus, wo sie liegen, und bereinigt sie fast intuitiv. Bei solchen Aufgaben weiß man einfach, wo man hinfassen muss, ohne viel bewusst darüber nachdenken zu müssen. Wer die Programmiererei verinnerlicht hat, löst so eine Aufgabe fast automatisch.
Aus Fehlern lernt man. Wer es schafft, den gleichen Fehler nicht zu wiederholen, hat viel erreicht.

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

17 Antworten zu No Girls‘ Day //2268

  1. keloph schreibt:

    du hast sehr recht. ich kenne das auch noch aus meinen programmierzeiten. allerdings waren meine aufgaben anfassbarer im ergebnis.

    Like

  2. claudius2016 schreibt:

    Ich finde es gut, dass den wirklich Interessierten richtig gezeigt wird, wie im RL ein Stück Software-Entwicklung aussieht. Das Demonstrieren im Rahmen eines Vortrages ist eine völlig andere Perspektive und hat mit dem Beruf nicht wirklich etwas zu tun. Genau wie eine Schukung meistens dort aufhört, wo später die Arbeit anfängt.

    Gefällt 1 Person

  3. Talianna schreibt:

    Das Programm (des Tages – incl. des Schreibens des Programms^^) klingt sehr gut – und ehrlich gesagt: Wenn Du die restlichen acht noch da gehabt hättest und die mit ihrer Demotivation die anderen mit erwischt hätten, wäre wahrscheinlich nicht so viel dabei herausgekommen.

    Gefällt 1 Person

  4. Pingback: Twitteriger Zwiespalt //2397 | breakpoint

  5. Pingback: No-Events, @home //2478 | breakpoint

Hinterlasse einen Kommentar