Open Projects

For Master's theses, Bachelor's theses or for Software Engineering projects in the Master's program

(Most topics can be adapted in scale to fit any of the above categories)

  • Various extensions for the online examination system Xaminer (Kotlin (Backend), HTML + CSS + Typescript (Frontend))
    The examination system Xaminer, developed at the institut for System Software at the Johannes Kepler University, has been developed with special focus on computer science online exams that involve coding exercises. Over time, the system has evolved and has since grown into a gernal-purpose examination system, providing features such as coding exercises, free-text answers, single- and multiple choice questions as well as fill-in-the-gap questions. Nevertheless, the system can still be extended in various directions: Automatic compiling and testing of source code, automatic correction of single- and multiple-choice questions, new question types, frontend improvements and clearer visualisations, better notification of supervisors about submissions, etc. Please talk to the project's lead developer and supervisor Dr. Markus Weninger if you are interested in working on Xaminer.

  • New JavaScript Language Features - ECMAScript proposals (Java, some JavaScript)
    JavaScript is specified in the ECMAScript language specification. It is an evolving language, and is extended by a "proposal" process. Each new or improved feature is specified by one proposal. Current open proposals include Realms, Pipeline operator, In-Place Resizable and Growable ArrayBuffers, Array find-from-last, Array grouping, and several more. As the different proposals vastly differ in effort to implement them, we have topics for projects (project in software engineering), bachelor theses and master theses. The task is to fully implement the current state of the proposal in the GraalVM/Graal.js JavaScript engine.
    Contact: Dr. Lukas Stadler (Oracle Labs)

  • Humongous Object Aware Region Allocation (C++)
    The Hotspot G1 garbage collector is a regional collector: the Java heap is strictly split into same-sized regions. Objects larger than a single region ("humongous regions") are allocated using separate contiguous sets of regions, and are unmovable for performance reasons. This poses a few problems, for example:
    - at the end of such a humongous region there is often a significant amount of space that is effectively wasted and unavailable for allocation.
    - region level fragmentation due to never moving these objects can cause unexpected Out-of-memory situations if there are not enough contiguous regions left for a given new allocation.
    This project could lessen the problem by implementing one or more changes to the existing strategy in heap management by for example better region selection for evacuation and placement, automatic region level defragmentation efforts, over-provisioning the heap area, more aggressive reclaimation of humongous objects and regular object allocation at the end of a humongous object.
    Contact: DI Thomas Schatzl (Oracle Java)

  • G1 garbage collector Full GC improvements (C++)
    Only in JDK10 the Hotspot G1 garbage collector received a parallel full-heap collector. It uses a parallelized mark-sweep-compact algorithm. While its performance is on par with the Parallel GC Full GC algorithm, there are opportunities to improve the algorithm related to work distribution, exploiting pre-existing work and handling various edge cases better.
    Contact: DI Thomas Schatzl (Oracle Java)