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
- ChatGPT 3.5: https://chat.openai.com/share/07f7df54-890d-42e9-94e4-dede7ee5a4b4
- ChatGPT 4 Turbo: https://chat.openai.com/share/8aeea2cf-e6ad-4916-b5e2-0f26db0fed03
- ChatGPT 4 produziert selbst bei so einfachem Beispiel besseren Code
- 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
- Zigzag-Übung
- Beispielkonversation
- ChatGPT 3.5: https://chat.openai.com/share/3b68a788-54e3-4d8e-af92-2d4d4be7b75c
- ChatGPT 4: https://chat.openai.com/share/4173557b-fcce-45c1-bb51-b81e1cbbbbf1
- ChatGPT 4 macht in der Erklärung deutlich weniger Fehler als 3.5
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
- Beispielkonversation
- Zukunft: Microsoft 365 Copilots
- Schlussfolgerungen
- ChatGPT kann schnell und einfach eine Basis für Aufsätze oder Präsentationen erstellen
- Ergebnisse brauchen Nacharbeit
- Illustration (Stimmungsbilder) mit KIs zur Bildgenerierung (z.B. Midjourney, Stable Diffusion, DALL-E)
- Mindestanforderungen müssen angepasst werden
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
- Beispielkonversation
- Schlussfolgerungen
- ChatGPT kann verwendet werden, um auf Ideen zu kommen
- ChatGPT kennt "übliche" Übungen gut, besonders kreative und neuartige Übungsansätze darf man nicht erwarten
Beispiel 2: Erklärungsansätze
- Beispielkonversation
- Schlussfolgerungen
- ChatGPT kann sich auf verschiedene Zielgruppen bei der Textgenerierung einstellen
- Prompt Engineering ist ein sehr wichtiges Thema (für SchülerInnen und für LehrerInnen)
Beispiel 3: Vorbereitung
- Beispielkonversation 1
- Beispielkonversation 2
- Schlussfolgerungen
- ChatGPT kann gut Text erstellen
- ChatGPT kann Diagramme mit Hilfe von Text erstellen (mermaid)
- Prompt Engineering ist ein sehr wichtiges Thema (für SchülerInnen und für LehrerInnen)
Beispiel 4:
Fehler korrigieren
Beispiel 5: Fehler verstehen
- Beispielkonversation
- Schlussfolgerungen
- ChatGPT kann hilfreich sein, damit SchülerInnen Rückmeldungen von LehrerInnen besser verstehen
Unterlagen
Unterlagen
- Slide Decks
- Coding with Copilot and Azure ChatGPT
https://slides.com/rainerstropek/dev-with-github-copilot/fullscreen - Responsible AI, Einbindung in komplexe IT-Umgebung, Security
https://slides.com/rainerstropek/unblock-ai-security/fullscreen - Develop AI-Powered Apps with OpenAI Embeddings
https://slides.com/rainerstropek/ai-powered-apps/fullscreen - A Story About Prompting
https://slides.com/rainerstropek/prompting-typechat/fullscreen - Wie generative AI die Softwareentwicklung verändert
https://slides.com/rainerstropek/sw-entwicklung-mit-ki/fullscreen
- Coding with Copilot and Azure ChatGPT
- Code Samples
Unterlagen
- Videos
- Gute Einführung in generative AI
https://youtu.be/_6R7Ym6Vy_I
- Gute Einführung in generative AI
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