AI in Software Engineering (Sommersemester 2024)
Dozent:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
,
Toni Mattis
(Software-Architekturen)
Allgemeine Information
- Semesterwochenstunden: 4
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 01.04.2024 - 30.04.2024
- Prüfungszeitpunkt §9 (4) BAMA-O: 30.07.2024
- Lehrform: Seminar
- Belegungsart: Wahlpflichtmodul
- Lehrsprache: Englisch
- Maximale Teilnehmerzahl: 15
Studiengänge, Modulgruppen & Module
- HCGT: Human Computer Interaction & Computer Graphics Technology
- HPI-HCGT-K Konzepte und Methoden
- HCGT: Human Computer Interaction & Computer Graphics Technology
- HPI-HCGT-S Spezialisierung
- HCGT: Human Computer Interaction & Computer Graphics Technology
- HPI-HCGT-T Techniken und Werkzeuge
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-K Konzepte und Methoden
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-S Spezialisierung
- SAMT: Software Architecture & Modeling Technology
- HPI-SAMT-T Techniken und Werkzeuge
- SYSE: Systems Engineering
- HPI-SYSE-K Konzepte und Methoden
- SYSE: Systems Engineering
- HPI-SYSE-T Techniken und Werkzeuge
- SYSE: Systems Engineering
- HPI-SYSE-S Spezialisierung
- SSYS: Software Systems
- HPI-SSYS-C Concepts and Methods
- SSYS: Software Systems
- HPI-SSYS-T Technologies and Tools
- SSYS: Software Systems
- HPI-SSYS-S Specialization
- MALA: Machine Learning and Analytics
- HPI-MALA-C Concepts and Methods
- MALA: Machine Learning and Analytics
- HPI-MALA-T Technologies and Tools
- MALA: Machine Learning and Analytics
- HPI-MALA-S Specialization
Beschreibung
Generative AI is currently changing the way we program and maintain software. Tools like ChatGPT or GitHub CoPilot help programmers find answers and write code faster. In this seminar, we are taking the perspective of the developers of such tools. We survey and apply a wide range of techniques that make state-of-the-art AI models, real-world software repositories, and programing workflows work together.
Over the course of the seminar, students will design, implement, and evaluate their own AI for a specific software engineering task. The seminar involves several small lectures and in-class exercises on the topics of
- Code and repository mining and analysis,
- Using and fine-tuning pre-trained large language models (LLMs) and embeddings,
- Data cleaning, analysis, and biases,
- User- and Programming Experience (UX/PX) with LLM-assisted tools, and
- Finding and using scientific publications, data, and software in the field
that students can incorporate into their seminar project. During the project, students will work with software to access software repositories, history, and CI logs (e.g., GitHub API, libgit/GitPython), parsers (e.g., tree-sitter), IDEs (e.g., Squeak/Smalltalk, VSCode Extensions), generative AI (e.g., PyTorch, retrievel-augmented generation, generation-augmented retrieval) and fine-tuning (e.g., PEFT/LoRA).
Software created during the seminar should be licensed under the MIT license.
Voraussetzungen
In-depth knowledge of at least one dynamic programming language (ideally some Python experience).
Lern- und Lehrformen
Project Seminar with Lectures + Group Project
Lectures: The first 8 - 9 seminar slots interleave short lectures with on-site exercises, hands-on coding, and structured discussions
Project: Participants are expected to design, implement, evaluate, and document a programming project during the course
Remote participation is ensured on a best-effort basis, but on-site participation in the exercises and discussions is highly encouraged.
Leistungserfassung
To complete this six credits course, students will need to hand in their documented project and a written report. Project and report each account for 50% of the final grade.
A complete hand-in consists of:
The project
- The source code of the project under MIT license,
- Data required to reproduce the results,
- Documentation (including dependencies, setup, and reproduction instructions),
- If the work resulted in an end-user tool: A screencast demonstrating the prototype,
The written report.
Termine
Room: A-2.1, Building ABC, Campus Griebnitzsee
Zoom: https://uni-potsdam.zoom-x.de/j/64487523848 (Passcode: 16890405)
Slack: Join "hpi-swa-teaching" in the HPI Enterprise Grid and join Channel #ai4se
Moodle: https://moodle.hpi.de/course/view.php?id=758
Important meetings and deadlines:
- Tuesday, 09.04. 13:30: Kick-off: Introduction of the topics and forming groups
- Not later than Sunday, 14.04.: Submit group and topic preferences via email & join Moodle course
- Tuesday, 16.04. 13:30: Assigning groups, introduction to the literature, hands-on introduction (recommended to bring 1 laptop per group)
Zurück