Bachelor & Master Seminars:
Interface Theories and Session Types: Refinement vs. Type Checking?
Concurrent software is notoriously difficult to get correct in the sense that deadlocks are avoided and that threads/processes achieve their common goal. This is the case for shared-memory parallel programs as well as for distributed-memory software, and a particular challenge when the software is employed as part of a safety-critical system.
This seminar studies advanced formal techniques for aiding concurrent systems development: interface theories and session types. Interface theories encapsulate an incremental, component-based specification and design methodology, and may be employed for checking the interoperability of a critical system's components. Session types provide behavioural type systems that focus more on the implementation side. Their static type checking can be used to ensure important properties such as deadlock-freedom, progress and session fidelity.
In this seminar, students will have the opportunity to look at different variants of session types and interface theories and to discover what aspects they address. The ideal seminar student has an interest in parallel programming, type checking, and foundations of Computer Science such as logics and automata theory.
Bachelor & Master Projects:
The Software Technologies Research Group (SWT) is building a digital model railway for use in teaching, especially for student projects and the practicals of the new module “SWT-RSD-B: Reactive Systems Design“ that will start in Summer Semester 2018. This will give students a realistic case studyof a safety-critical system, thereby supporting the learning of important principles for their design, programming and testing/verification.
In this context we are offering several individual and/or team student projects of all kinds (Bachelor & Master, 6, 9 & 12 ECTS), which cover various aspects of establishing SWT's model railway. Foci are on the development of software for digital control and programming and, in particular, on theconnection to the commercial model-based development environment SCADE.
- Possible project topics include the design and implementation of
- Interfaces and logic for configuring and monitoring the track ("Administrator");
- Control logic for the track ("Stellwerk") in SCADE, as well as interfacing it to the model railway;
- Interfaces and logic for driving trains along the track ("Lokführer");
- An infrastructure – possibly using a RESTful API – for wrapping the different interfaces together, as well as logic for authentication.
The ideal project students will have an interest in the development of embedded and safety-critical software. Programming skills in C and JavaScript are desirable but not mandatory; missing knowledge can be compensated during the project.
To express interest in one or more of these projects, please contact either Mr. Johannes Gareis (johannes.gareis@uni-bamberg.de) or Prof. Dr. Gerald Lüttgen (gerald.luettgen@uni-bamberg.de) at the earliest opportunity.