Programmieren lernen von und mit KI

Photo by Midjourney
Prompt: Robot teacher in front of class, coding lesson, bright classroom --ar 16:9

Warum?

Was ist "Computer Science"?

  • Ziel: Wege finden, die es Menschen ermögliche, Programme zu schreiben, zu warten und zu verstehen
    • Menschen sind nicht sonderlich gut in diesen Dingen 😉
  • https://rosettacode.org/wiki/Caesar_cipher
  • Hat sich wirklich etwas fundamental verändert?

PM (Mensch)

AI Robot

AI generated
Code

Code Review
(Mensch)

Überlegungen

  • Muss Code noch für Menschen verständlich
    und leicht zu warten sein?
  • Bedeutung höherer Programmiersprachen?
  • AI als Komponente

Die KI kann...

  • Code schreiben
    • Komplette Programme
    • Größere Codeteile
    • Codeblöcke vervollständigen
  • Code erklären
  • Konzepte erklären
    • KI-Tutor
    • Hilfe beim Vorbereiten von z.B. Referaten
  • Fehler suchen

(aus SchülerInnen-Sicht)

Beispiel 1: Kompletter Code

  • Beispielkonversation
  • Schlussfolgerungen
    • ChatGPT ist gut, aber nicht perfekt
    • Übungen komplett von KI erzeugen zu lassen macht so viel Sinn wie Abschreiben ganzer Lösungen von KlassenkollegInnen, nämlich keinen
    • Code von ChatGPT schreiben lassen ist wie "Play" drücken bei Spotify oder YouTube vs. selbst Musik machen
    • Angaben so schreiben, dass sie schwerer in ChatGPT übernommen werden können (z.B. Bilder, spezifischere Aufgabenstellungen)

Beispiel 2: Vervollständigen

// Beginn des Programms
Console.Clear(); // Leert den Bildschirm

// Aufforderung zur Eingabe des Tipps
Console.Write("Please enter your tip (0000-9999): ");
string userInput = Console.ReadLine()!.PadLeft(4, '0'); // Nimmt den Benutzereingabe und füllt sie ggf. mit führenden Nullen auf

// Erzeugen einer zufälligen Zahl zwischen 0000 und 9999
Random random = new();
int jokerNumber = random.Next(0, 10000);

// Konvertieren der zufälligen Joker-Zahl in einen String
string jokerNumberStr = jokerNumber.ToString("D4"); // "D4" stellt sicher, dass die Zahl immer vierstellig ist

int matchingDigits = ???; // Schreiben Sie eine Funktion, die die Anzahl der übereinstimmenden Ziffern von links nach rechts ermittelt

// Ausgabe der Resultate
if (matchingDigits == 4) // Wenn alle 4 Stellen übereinstimmen
{
    // Gratulation bei Übereinstimmung
    Console.WriteLine("Congratulations, you've won! 🎉");
}
else
{
    // Nachricht bei Nichtübereinstimmung
    Console.WriteLine($"You've guessed {matchingDigits} digit(s) correctly. 😔");
}

// Ausgabe der richtigen Zahl
Console.WriteLine($"The correct number would have been {jokerNumber:D4}.");

Console.WriteLine("Press any key to exit..."); // Wartet auf Tastendruck
Console.ReadKey();

Console.Clear(); // Leert den Bildschirm vor Beendigung

// Ergänzen Sie hier ihre Funktion:
  • Hier gezeigt: GitHub Copilot
  • Schlussfolgerungen
    • Praxisrelevant ("Taschenrechner"-Moment für Coding-Unterricht)
    • Wichtigkeit von guten Kommentaren, Bezeichnern, etc. lehren
    • Fundierte Grundlagen müssen immer noch erlernt werden
    • Auswendiglernen fällt zum Teil weg

Beispiel 3: Code erklären

Beispiel 3: Code erklären

Schlussfolgerungen

  • ChatGPT ersetzt bei weitem keine LehrerInnen
  • ChatGPT macht oft Fehler, speziell bei Beispielen
  • ChatGPT kann Stand heute nicht visualisieren
  • ChatGPT ist trotzdem hilfreich, speziell wenn man eine neue Programmiersprache lernt und gewisse Grundlagen schon beherrscht

Beispiel 4: Konzepte erklären

  • Beispielkonversation
  • Schlussfolgerungen
    • ChatGPT kann sehr gut, weit verbreitete Basiskonzepte textuell erklären
    • ChatGPT kann gut einfache Codebeispiele zum Illustrieren von Konzepten erzeugen
    • ChatGPT kann verwendet werden, um Begriffe für weitere die Recherche bzw. verbundene Themen zu finden
    • ChatGPT macht Fehler und erfindet Dinge bei weniger verbreiteten Themen und Fragestellungen

Beispiel 5: Konzepte erklären

Beispiel 6: Fehler korrigieren

Die KI kann...

  • Brainstorming-Partner sein
    • Ideenfindung für Übungen
    • Erklärungsansätze vorschlagen
  • Bei der Unterrichtsvorbereitung helfen
    • Übungsangaben schreiben
    • Musterlösungen erstellen (Codegenerierung wie zuvor erklärt)
  • Rückmeldungen erklären
    • Helfen, auf Basis von Rückmeldungen Fehler zu korrigieren

(aus LehrerInnen-Sicht)

Beispiel 1: Ideenfindung

Beispiel 2: Erklärungsansätze

Beispiel 3: Vorbereitung

Beispiel 4:
Fehler korrigieren

Beispiel 5: Fehler verstehen

Unterlagen

Unterlagen

Unterlagen

Generelle Fragestellungen und Tipps

  • KI ist gekommen, um zu bleiben
    • Wir müssen uns darauf einstellen
    • Wir müssen lernen, das Werkzeug zu nutzen
    • Wir müssen lehren, das Werkzeug zu nutzen
  • Zugang zu KI für alle?
    • Viele KI-Tools sind kostenlos erhältlich
    • Datenschutz? Kreditkarte?
    • Viele der richtigen guten KI-Dienste sind kostenpflichtig
    • Nicht teuer, aber trotzdem eine finanzielle Hürde
  • Klare Regeln aufstellen
    • Regeln müssen nachvollziehbar sein!
    • KI bei Tests und Leistungsfeststellungen (es gibt auch KI Coding Tools, die offline funktionieren)
  • Prompt Engineering ist wichtig

Programmieren lernen von und mit KI

Photo by Midjourney
Prompt: Robot looking into camera showing thumbs up --ar 16:9 (remix of first image)

Programmieren lernen von und mit KI

By Rainer Stropek

Programmieren lernen von und mit KI

KI-unterstützte Tools stellen gerade sowohl die Lehre als auch die betriebliche Informatikpraxis auf den Kopf. Werkzeuge wie ChatGPT, GitHub CoPilot & Co verändern ganz grundlegend die Art und Weise, wie Code geschrieben wird. In seinem Vortrag zeigt Rainer Stropek anhand konkreter Praxisbeispiele, wie KI-Tools im Unterricht und bei Übungen eingesetzt werden können.

  • 367