Seminar (BSc/MSc) Software Engineering

Page content

This is a seminar for Masters students in the Swiss Joint Master of Science in Computer Science as well as Bachelors, Masters and PhD students completing their project work or thesis in the Software Engineering Group. Seminar students will work on a small, supervised project during the semester, and present their work at the end of the semester. The course is offered in both fall/spring semesters.

The seminar typically starts with a few scheduled talks revolving around different contemporary topics in advanced software engineering. The talks are given by members of the Software Engineering Group, who will also serve as mentors during the seminar and guide the student’s work on a practical and focused problem in the field of software engineering.

Learning outcomes

The Software Engineering Group aims at understanding the problems and challenges that software developers are faced with in often times highly interdisciplinary environments, and at devising novel software engineering methods, techniques and tools addressing their needs. An essential result of the research are novel development tools in order to evaluate the developed approaches in the context of practical case studies and experiments.

Within this seminar, students are invited to participate in the group’s research, e.g., by contributing to the prototypical implementation of new development tools and their evaluation, delving into state-of-the-art software engineering techniques and methods, but also experimenting with cutting-edge tools from other parties. This way, after the successful completion of this course, students will be able to, e.g.:

  • Use a sophisticated tool supporting software verification at different levels of abstraction, or
  • build an Eclipse or other IDE plugin supporting developers in their daily development tasks, or
  • write a crawler that analyzes open source software repositories to answer a specific research question, or
  • train a machine learning model predicting quality attributes of a given program or software project, or
  • create a new method of visualizing static and dynamic aspects of a software system, or
  • work on the design and implementation of programming or modeling tools, etc.

As all the works will be presented in a research seminar at the end of the semester, students will also learn to:

  • Read and critically analyze scientific publications in the area of software engineering;
  • Discuss methods, techniques and tools supporting advanced and automated software engineering;
  • Relate the work during the seminar to their own scientific work, if applicable;
  • Give a scientific presentation, in terms of structure, level of content, and presentation techniques;
  • Manage their time during the preparation of their work, when operating in teams or independently.

Organization (Spring Semester 2024)

  • Materials: ILIAS
  • Start: Tuesday, 20th February 2024, 14:15-16:00 (Seminarraum 111, Engehalde, E8)
  • Language: English, German
  • Course Repetition: Fall Semester 2024

Schedule (Spring Semester 2024)

Introduction and presentation of topics:

  • Tuesday, 20th February 2024, 14:15-16:00 (Seminarraum 111, Engehalde, E8)
  • Tuesday, 27th February 2024, 14:15-16:00 (Seminarraum 111, Engehalde, E8)

Throughout the semester:

  • Work on individual projects, supervised by members of the group

Final presentations:

  • Tuesday, 28th May 2024, 14:00 - 18:00 (Seminarraum 109, Engehalde, E8):
  • Wednesday, 29th May 2024, 14:00 - 18:00 (Seminarraum 109, Engehalde, E8):

Good to know

Examples of former project topics

  • Model Reverse Engineering with LLMs
  • What is a Feature? Lessons Learnt from Mining GitHub
  • Visualizing the Provenance of Test Cases Generated by EvoSuite
  • Challenges and state-of-the-art solutions to online Multiplayer (RTS) Games
  • Generating Unit Tests from System Executions
  • Test Generation for Python
  • Diversity-guided Search Exploration for Self-driving Cars Test Generation through Frenet Space Encoding
  • Prototype Development for Android Dynamic Analysis
  • Simulation-based Test Case Generation for UAVs
  • Co-simulation Support for (Mutation Testing in) Simulation-based test suites of Self-driving Cars
  • TLA+ and its application in industry
  • GitHub Action Code Ownership
  • Runtime CAN-Bus translation with Simulated Data for Self-driving Cars
  • Model-Based Development using an AI Language Model
  • Mutation Testing for Simulation-based Test Suites of Self-driving Cars
  • MWE Generator: Automated creation of Minimal Working Examples
  • The role of software documentation in sustainable software engineering process
  • How do code documentation efforts spread over class hierarchy?
  • Documentation practices of developers in Polyglot environments
  • Software Model Checking with CBMC
  • Distributed Systems and TLA+
  • Software Model Checking C Source Code
  • Early validation of system requirements and design through BIP
  • Runtime Verification with Metric First Order Temporal Logic
  • Monitoring Spatially-Distributed Systems with Spatio-Temporal Logics
  • Software Modeling with Alloy