- 1. Grundlagen des Prompt Engineering für die Softwareentwicklung
- Verstehen, wie Prompt Engineering als Schnittstelle zwischen natürlicher Sprache und Sprachmodellen funktioniert und warum die Qualität der Eingabe direkt die Brauchbarkeit des generierten Codes bestimmt
- Die Besonderheiten des Promptings für Entwicklungsaufgaben kennenlernen, bei denen syntaktische Korrektheit, logische Konsistenz und Einhaltung von Best Practices entscheidend sind
- Die Anatomie eines effektiven Prompts verstehen mit den Elementen Rolle, Aufgabe, Kontext, Einschränkungen und Ausgabeformat sowie deren Zusammenspiel bei technischen Anfragen
- 2. Codegenerierung durch strukturierte Prompts
- Prompts für die Codeerstellung formulieren, die Programmiersprache, Framework, Stil und funktionale Anforderungen klar spezifizieren und dadurch sofort verwendbaren Code liefern
- Few-Shot-Prompting anwenden, bei dem Beispiele von Eingaben und gewünschten Ausgaben dem Modell das erwartete Muster vermitteln und die Konsistenz der Ergebnisse erhöhen
- Komplexe Implementierungen in kleinere Teilaufgaben zerlegen und durch iteratives Prompting schrittweise aufbauen, anstatt alles in einer einzigen Anfrage zu verlangen
- 3. Debugging und Fehleranalyse mit LLM-Unterstützung
- Fehlerbehafteten Code zusammen mit Fehlermeldungen und erwartetem Verhalten präsentieren, damit das Modell die Ursache identifizieren und Korrekturen vorschlagen kann
- Das Modell in die Rolle eines Code Reviewers versetzen, der systematisch nach Bugs, Anti-Patterns und potenziellen Problemen sucht und jeden Codeabschnitt kritisch kommentiert
- Testfälle generieren lassen, die Randfälle, ungültige Eingaben und Grenzwerte abdecken, um die Robustheit des Codes zu prüfen und verborgene Fehler aufzudecken
- 4. Refactoring und Codeoptimierung
- Prompts für Refactoring formulieren, die Lesbarkeit, Wartbarkeit oder Performance als Ziel vorgeben und das Modell anweisen, konkrete Verbesserungen mit Begründung vorzuschlagen
- Bestehenden Code in idiomatischere Konstrukte überführen lassen, etwa von imperativen Schleifen zu funktionalen Methoden oder von Callback-Strukturen zu async/await
- Architekturelle Verbesserungen anstoßen, bei denen das Modell Vorschläge für bessere Strukturierung, Entkopplung oder Anwendung von Design Patterns liefert
- 5. Dokumentation und Erklärung generieren
- Inline-Kommentare, Docstrings und API-Dokumentation automatisch erstellen lassen, indem das Modell den Code analysiert und verständliche Beschreibungen ergänzt
- Unbekannten oder komplexen Code erklären lassen, um dessen Funktionsweise zu verstehen, etwa bei der Einarbeitung in fremde Codebasen oder Legacy-Systeme
- README-Dateien, Setup-Anleitungen und technische Dokumentation generieren, die Installationsschritte, Abhängigkeiten und Nutzungsbeispiele klar strukturiert darstellen
- 6. System-Prompts und Rollenkonzepte
- System-Prompts verstehen und gestalten, die das grundlegende Verhalten, die Rolle und die Einschränkungen des Modells für eine gesamte Konversation festlegen
- Spezialisierte Rollen definieren, etwa einen erfahrenen Backend-Entwickler, einen Security-Experten oder einen Code-Architekten, um domänenspezifisches Wissen zu aktivieren
- Die Trennung zwischen System-Prompt und Benutzer-Prompt nutzen, um wiederverwendbare Konfigurationen zu erstellen, die konsistente Ergebnisse über mehrere Anfragen hinweg liefern
- 7. Strukturierte Ausgaben und Tool Calling
- JSON-Schema oder andere Strukturvorgaben einsetzen, um maschinenlesbare Ausgaben zu erzeugen, die direkt in Anwendungen weiterverarbeitet werden können
- Tool Calling und Function Calling verstehen, bei dem das Modell beschreibt, welche externe Funktion mit welchen Parametern aufgerufen werden soll, anstatt die Aktion selbst auszuführen
- Prompt-Templates und Variablen nutzen, um wiederverwendbare Prompt-Strukturen zu erstellen, die dynamisch mit unterschiedlichen Eingaben befüllt werden
- 8. Prompt-Verkettung und komplexe Workflows
- Prompt Chaining anwenden, bei dem die Ausgabe eines Prompts als Eingabe für den nächsten dient und komplexe Aufgaben in eine Sequenz einfacherer Schritte zerlegt werden
- Selbstreflexive Prompts einsetzen, bei denen das Modell seine eigene Ausgabe kritisch prüft, Fehler identifiziert und verbesserte Versionen liefert
- Multi-Turn-Konversationen strategisch führen, indem Kontext erhalten, Feedback eingearbeitet und Anforderungen iterativ verfeinert werden
- 9. Integration in Entwicklungsumgebungen und Produktionsbetrieb
- LLM-Integrationen in IDEs wie Cursor, GitHub Copilot oder Codeium nutzen und deren Prompting-Mechanismen verstehen, um die Autovervollständigung und Code-Assistenz zu optimieren
- Prompts wie Produktionscode behandeln, indem sie versioniert, getestet und dokumentiert werden und Änderungen durch Evaluierungen auf Qualitätseinbußen geprüft werden
- Kosten- und Latenz-Optimierung betreiben durch effiziente Prompt-Gestaltung, Prompt Caching und die Wahl geeigneter Modelle für unterschiedliche Aufgabentypen
- Praxisübung: Einen vollständigen Entwicklungs-Workflow mit Prompt Engineering durchlaufen
- Die Teilnehmer bearbeiten eine Entwicklungsaufgabe von der Spezifikation bis zur dokumentierten Lösung ausschließlich durch gezielte Prompts. Zunächst wird eine Anforderung in einen strukturierten Prompt für die Codegenerierung übersetzt und der erzeugte Code kritisch geprüft. Anschließend wird das Modell als Code Reviewer eingesetzt, um Schwachstellen zu identifizieren, und die vorgeschlagenen Verbesserungen werden durch Refactoring-Prompts umgesetzt. Die Teilnehmer generieren Testfälle für Randfälle und lassen Inline-Dokumentation sowie eine README-Datei erstellen. Es werden verschiedene Prompt-Varianten verglichen, um deren Auswirkung auf Codequalität und Vollständigkeit zu beobachten. Abschließend wird ein wiederverwendbares Prompt-Template erstellt, das die effektivsten Techniken kombiniert und für künftige Aufgaben im eigenen Entwicklungsalltag eingesetzt werden kann.
LernzieleNach Abschluss können die Teilnehmer Prompts gezielt formulieren, um Sprachmodelle für typische Entwicklungsaufgaben wie Codegenerierung, Debugging, Refactoring und Dokumentation einzusetzen. Sie beherrschen fortgeschrittene Techniken wie Few-Shot-Prompting, Rollenkonzepte, strukturierte Ausgaben und Prompt-Verkettung und können diese in ihrem Entwicklungsalltag anwenden.
ZielgruppenDas Seminar richtet sich an Personen aus der Softwareentwicklung, die KI-gestützte Werkzeuge wie Copilot, Cursor oder API-basierte Sprachmodelle bereits nutzen oder einführen möchten und deren Ergebnisse durch gezieltes Prompting verbessern wollen. Angesprochen sind sowohl Fachkräfte mit mehrjähriger Entwicklungserfahrung als auch technische Projektverantwortliche, die Best Practices für den Einsatz von LLMs in Entwicklungsteams etablieren möchten. Grundlegende Programmierkenntnisse werden vorausgesetzt; Vorerfahrung mit Sprachmodellen ist hilfreich, aber nicht erforderlich.