Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

AI in Software Engineering (Sommersemester 2024)

Lecturer: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Toni Mattis (Software-Architekturen)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 01.04.2024 - 30.04.2024
  • Examination time §9 (4) BAMA-O: 30.07.2024
  • Teaching Form: Seminar
  • Enrolment Type: Compulsory Elective Module
  • Course Language: English
  • Maximum number of participants: 15

Programs, Module Groups & Modules

IT-Systems Engineering MA
  • 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
Data Engineering MA
Software Systems Engineering MA

Description

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.

Requirements

In-depth knowledge of at least one dynamic programming language (ideally some Python experience).

Learning

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.

Examination

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.

Dates

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