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.
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 (Fall Semester 2023)
- Materials: ILIAS
- Start: Tuesday, 19.09.2023, 10:15-12:00: Seminarraum 107, Engehalde, E8
- Language: English, German
- Course Repetition: Spring Semester 2024
Schedule (Fall Semester 2023)
- Tuesday, 19.09.2023, 10:15-12:00 (Seminarraum 107, Engehalde, E8): Introduction and presentation of topics
- Tuesday, 26.09.2023, 10:15-12:00 (Seminarraum 107, Engehalde, E8): Presentation of topics
- Tuesday, 03.10.2023, 10:15-12:00 (Seminarraum 107, Engehalde, E8): Presentation of topics (if needed)
- Work on individual projects, supervised by members of the group
- Thursday, 21.12.2023, 08:00-18:00 (Seminarraum 105, Engehalde, E8): Final presentations
Good to know
- How should my scientific presentation/talk look like? Some DOs and DON’Ts..
Examples of former project topics
Project topics of former semesters included, e.g.:
- “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”