Managing Code Evolution: Refactoring Challenges in Kattis’ Code Judge
Ladda ner
Publicerad
Typ
Examensarbete på kandidatnivå
Bachelor Thesis
Bachelor Thesis
Program
Modellbyggare
Tidskriftstitel
ISSN
Volymtitel
Utgivare
Sammanfattning
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.
Beskrivning
Ämne/nyckelord
LOC, Online code-judge, Katti, Code, Regex, Sandbox, Problem Package, Problem-solver,
