Einführung in Python läuft bei mir als zweite Fremdsprache im Bachelor Informatik. Statt einer Klausur gibt es eine Hausarbeit: ein Programmierprojekt, allein oder zu zweit, mit einem schriftlichen Bericht.
Agentisches Programmieren habe ich nicht verboten. Mein Skript hat ein eigenes Kapitel dazu, und die Hausarbeit verlangt einen Abschnitt „Mensch vs. KI" -- wer ihn weglässt, verliert dafür Punkte.
Der Normalfall im Beruf ist nicht das leere Verzeichnis, sondern fremder Code, der eine Änderung braucht. Dafür habe ich Wesen benutzt, eine Simulation, die ich 2003 mit einem Freund geschrieben und 2013 auf Python 3 portiert habe -- danach lag sie zwölf Jahre still. Eine Datei, persistence.py, ließ sich seit 2014 nicht einmal parsen, ein fehlendes Klammerpaar. Kein Analysewerkzeug sah das, weil sie Dateien überspringen, die sich nicht parsen lassen.
Mehrere Studierende schrieben in der Pflichtreflexion, durch starke KI-Nutzung weniger über Python gelernt zu haben als erwartet -- einer brachte es auf den Punkt: „Weniger KI, dafür mehr selbst verstehen." Und in fast allen Berichten steht, dass etwas über testgetriebenes Arbeiten gelernt wurde.
Drei Beispiele aus den Hausarbeiten: Eins erkennt BadUSB-Angriffe über das Tastaturverhalten. Eins baut ein Textabenteuer mit drei austauschbaren Oberflächen -- Terminal, GUI, REST-API. Und eins hat sich an Wesen selbst versucht, mit einem eigenen Benchmark-Modus. Von 35 Hausarbeiten liegt der Schnitt bei 1,57 und ich war echt angetan von den schönen Projekten, die ich sehen durfte.
Ich habe versucht, mit einem Skript die Vorlesung zu begleiten bzw. das Selbstlernen zu ermöglichen. Das Prinzip sollte dabei sein, die Übungsaufgaben zu bearbeiten und dazu jeweils die passenden Kapitel im Skript durchzulesen.
Auch gute Erfahrungen habe ich damit gemacht, in einem Python-Projekt einem KI-Agenten den Link zu meinem EiPy-Skript zu geben und zu fordern “wende Design by Contract und die Best Practices aus dem Skript an”, das resultierte in angenehm lesbarem Code.
Mit dem Skript und auch dem Lehrplan für diese Veranstaltung habe ich versucht, eine Lücke zu füllen. Es gibt auch andere gute Lehrbücher über Python als Sprache nachdem man mit Java Programmierung gelernt hat, aber ich wollte etwas praktisches mit den beiden Schwerpunkten Brownfield Engineering und AI-assisted / agentic coding anbieten. Ich hoffe, dass ich geeignete Theorieteile (z.B. zu async/await) eingebaut habe, die in der Praxis weiterhelfen.
Claude habe ich nicht benutzt bei der Erstellung des Textes (außer bei dem ausführlichen Brownfield Beispiel), aber Gemini war eine große Hilfe, schnell lauffähige Snippets zu den 1000 Paketen zu liefern, die ich vorstelle. Ich könnte mir aber gut vorstellen, dass sich das Skript mit Claude auch noch verbessern ließe, bei relativ geringem Aufwand.
