Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
Project in Software Engineering
| 339.018 |
Weninger + members of SSW/Oracle Labs |
Introduction + Presentations from WS 2024/25: Mo 10.03.2025, 16:00-17:00, SP3 218 |
Presentations SS 2025: Mo. 30.06.2025, 15:30-17:00 (no Master's Thesis Seminar on this day), SP3 218 |
The kickoff meeting as well as the final presentation meeting are both happing in person in room SP3 218, attendance is mandatory for all participants.
Goal
The goal of this course is to do a non-trivial software project over a whole semester and to go through all its phases (requirements definition, design, implementation, testing, documentation).
The projects can be done in teams of 2 (with doubled workload), but can also be selected by a single student.
At the end of the semester, the results have to be presented in a 15 minutes presentation.
Topics
Open Topics
The following list contains open thesis topics that might have to be adjusted in size to fit as topic for Project in Software Engineering.
You might also find an interesting open master thesis topic that could be adjusted to a Project in Software Engineering.
If you are interested in working on one of these topics, please contact the respective supervisor and discuss the scope of the work.
Once you have done this, please inform Dr. Markus Weninger (markus.weninger@jku.at) to mark your topic as assigned.
If you did not choose a topic before the introduction meeting (which has mandatory participation for everybody), you have to select one of the remaining open topics during that meeting.
Assigned Topics (presentation on Mo. 30.06.2025)
-
Visualization of Trace Output from Coco/R (Technologies: Java / WebDev )
Coco/R is a compiler generator that creates
a scanner and a parser from an attributed grammar
and a description of the terminal symbols of a language. For debugging purposes, Coco/R can generate trace output.
While creating the scanner, it prints the states and the transitions of the corresponding deterministic finite automaton.
While creating the parser, it prints the states of a syntax graph from which the recursive descent parser is generated.
All output is in textual form and therefore hard to read. The goal of this project is to build a visualization of the
automaton and the syntax graph with an easy to use graphical user interface. Depending on whether the project is done
as a Project in Software Engineering, a Bachelor's thesis, or a Master's thesis, either only the automaton or also the
syntax graph should be visualized.
Student: Krasniqi Albian
-
QoL Features for the graphical debugger JavaWiz (Technologies: Kotlin / WebDev )
-
Student: Sen Melissa
-
JavaWiz for IntelliJ: Advanced Visual Debugging Integration (Technologies: Java / Kotlin)
Create a comprehensive IntelliJ IDEA plugin that brings JavaWiz's powerful visual debugging capabilities to one of the most popular Java development environments. This project aims to replicate and enhance the existing Visual Studio Code plugin's functionality in IntelliJ. The implementation will ensure seamless integration with IntelliJ's ecosystem and maintain feature parity with the VS Code version, making JavaWiz accessible to a broader audience of students and educators who prefer or require IntelliJ IDEA as their primary development environment.
Student: Gatzweiler Florian
-
CI Upgrades for LaTeX Builds in Software Development 1 (UE) (Technologies: -)
The lab (UE) for Software Development 1 is organised via a git repository. When preparing an exercise, we use pull requests to gather feedback from colleagues and discuss the subject matter. While we use a customized CI pipeline that automatically builds the lecture documents from TeX files, projects in this area focus on improving this process by integrating further checks and features, such as spell checking, linting, and formatting of TeX files and other auxiliary material (source code, figures), as well as other customizable checkers and feedback tools.
Student: Blaimschein Katharina
Started WS24/25 (presentation on Mo. 10.03.2025)
-
QoL Features for a Semester Planner Web Application (WebDev)
In a Bachelor's thesis, a web application was developed that allows JKU students to plan the weekly schedule of the courses they want to attend in the next semester. This tool should be extended by further functionality such as advanced searching and filtering, printing as well as an export of the schedule for backup purposes. Most importantly, an authentication via single sign-on should be added and possibilities should be explored how this tool can be integrated into myJKU.
Student: Alexander Burghuber
-
Constrained Grammar-Based Generation and Mutation of Code (Java, ANTLR)
Code generation and mutation is an essential part of randomized compiler testing (compiler fuzzing). Using attributed grammars to generate and mutate code provides support for various languages. The task is to create a grammar-based code generator that adheres to certain constraints, such as the liveness of all generated assignment statements. Using a standard grammar definition, e.g. ANTLR, it should generate code in both Java and other languages.
Student: Florian Schwarcz
-
Interactive and Playful Visualizations of Graph Flow Algorithms (WebDev)
In the course "Algorithmen und Datenstrukturen 2" (Algorithms and Data Structures 2) at the Johannes Kepler University, students learn about graph flow algorithms. Currently, the teaching materials for these topics are limited to slides and blackboard explanations. To enhance the learning experience for students and provide lecturers with more effective teaching aids, an interactive and playful visualization tool for graph flow algorithms can be developed.
The goal of this project is to create an interactive visualization tool that supports lecturers in teaching and helps students learn graph flow algorithms more effectively. The tool should include the following features:
1. Graph building and editing:
- Allow users to add, remove, and edit nodes and edges in a graph.
- Enable users to change node names and edge weights to create custom graph structures.
- Provide functionality to lay out graphs automatically for better visualization.
2. Visualization of the Edmond-Karps graph flow algorithm:
- Implement visualizations for said algorithm.
- Visualize the algorithm step-by-step, highlighting the nodes and edges/flows being traversed or updated.
3. Modes for teaching and learning:
- Step-by-step mode: Allow lecturers to present the algorithm's process step by step, with the ability to move forward and backward through the steps.
- Play mode: Engage students by asking them questions about the algorithm's next steps. For example, ask which path will be chosen next and how the graph's flow will change by taking that decision.
- Provide immediate feedback on the correctness of student answers and offer explanations for incorrect responses.
4. Web application:
- Implement the interactive visualization tool as a web application using modern web technologies such as HTML, CSS, and JavaScript.
- Design an intuitive and user-friendly interface that is easy to understand, navigate, and use.
- Ensure compatibility with modern web browsers and responsiveness across different devices.
The interactive visualization tool should be developed with a focus on usability and educational value. It should provide a visually appealing and engaging experience for both lecturers and students, making it easier to teach and learn graph and graph flow algorithms.
Student: Sebastian Stiegler
Final Presentation
The results of every project have to be presented by all team members in a 15 minutes presentation at the end of the semester.
The presentation should mainly consist of a demo, but you should also shortly explain the problems tackled in this project and how you solved them (no bullet point presentation - rather use graphics and examples to demonstrate your problem and solution).
Grading
The grading is performed based on the quality of the implemented software (functionality, user friendlyness, robustness, readability and maintainability, documentation) as well as from the final presentation and the commitment during the semester.
|