Managing Code Evolution: Refactoring Challenges in Kattis’ Code Judge
| dc.contributor.author | Andersson, Joshua | |
| dc.contributor.author | Gilabert, Alexander | |
| dc.contributor.author | Hulthe, Rasmus | |
| dc.contributor.author | Söderbergh, Hugo | |
| dc.contributor.department | Chalmers tekniska högskola / Institutionen för data och informationsteknik | sv |
| dc.contributor.department | Chalmers University of Technology / Department of Computer Science and Engineering | en |
| dc.contributor.examiner | Almgren, Magnus | |
| dc.contributor.supervisor | Alhanahnah, Mohannad | |
| dc.date.accessioned | 2025-11-18T09:58:22Z | |
| dc.date.issued | 2025 | |
| dc.date.submitted | ||
| dc.description.abstract | Online code judges are platforms that offer programming problems and assess submitted solutions based on correctness, efficiency, and other performance metrics. As online code judges evolve to support increasingly complex features, maintaining backward compatibility and secure system design becomes a significant challenge. This thesis investigates the practical implications of refactoring and extending the Kattis code judge to accommodate their new problem package format. By collaborating with Kattis, the project focusses on developing a selected set of key features from their upcoming 2023-07 problem format. Through a combination of architectural design and modular programming, the thesis proposes a solution to handle both the upcoming 2023-07 format and the old legacy format. The work also includes solutions for the integration of static validators, using markdown for problem statements and multi-pass problems. The project resulted in the addition of 5,716 and deletion of 1,070 lines of code, of which 1,967 of the additions and 644 deletions were merged into Kattis’ codebase. The results of the project highlight the nuances of creating maintainable systems, identifying sacrifices in simplicity that are made to accomplish modular designs. The project also gives insight into the special considerations that need to be addressed when developing features from the 2023-07 format. | |
| dc.identifier.coursecode | DATX11 | |
| dc.identifier.uri | http://hdl.handle.net/20.500.12380/310747 | |
| dc.language.iso | eng | |
| dc.relation.ispartofseries | CSE 25-43 | |
| dc.setspec.uppsok | Technology | |
| dc.subject | LOC, Online code-judge, Katti, Code, Regex, Sandbox, Problem Package, Problem-solver, | |
| dc.title | Managing Code Evolution: Refactoring Challenges in Kattis’ Code Judge | |
| dc.type.degree | Examensarbete på kandidatnivå | sv |
| dc.type.degree | Bachelor Thesis | en |
| dc.type.uppsok | M2 |
