Project in Software Engineering

339.018 Weninger + members of SSW/Oracle Labs Introduction: Mo 04.03.2024, 16:00, SP3 218 Presentations: Mo. 24.06.2024, 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.


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

  • Topic (Technologies: Nice language, cool framework)
    A few lines of
    descrption for the task...
    Contact: Prof. XYZ
    Student: ABC

  • Dynamic Visualizations of Scanner Tokenization and Parse Trees for Visual Teaching (Technologies: Java (Agent), HTML/CSS/Typescript (Visualization))
    Currently, the compiler construction course at the JKU intensively uses unit tests to help students to find problems in their compilers. Nevertheless, having visual feedback instead of just textual error messages would further help students to more easily find a problem's root cause in their implementation. This project's aim is to a.) write a tool/agent to inject code at the correct locations in a student's implementation to record all necessary data and to b.) provide helpful visualizations based on this data. As a first step, two visualizations should be implemented: a.) A visualization of the scanner's tokenization process (i.e., a graphical representation of all tokens returned by Scanner.next() and b.) a visualization of the (top-down) parser's parsing process by showing the parse tree (i.e., a tree-based visualization of the scan(), error() and recursive descent methods called). The visualizations should allow the students to step back and forth through the recorded data, i.e., one should be able to explore the building of the parse tree step by step. The goal is to use these visualization live during lectures, as well as to provide them to students for learning at home.
    Student: Tobias Herber


Already started before SS24

  • Basic GDB Debugging Support for GraalVM
    Contact: Christian Wirth
    Student: Dominik Mascherbauer
  • Sparse conditional constant propagation for Graal IR
    Contact: Hanspeter Mössenböck (Technical supervisor: Gergö Barany (Oracle Labs))
    Student: Christoph Aigner

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.