Managing Code Evolution: Refactoring Challenges in Kattis’ Code Judge

Loading...
Thumbnail Image

Date

Type

Examensarbete på kandidatnivå
Bachelor Thesis

Programme

Model builders

Journal Title

Journal ISSN

Volume Title

Publisher

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.

Description

Keywords

LOC, Online code-judge, Katti, Code, Regex, Sandbox, Problem Package, Problem-solver,

Citation

Architect

Location

Type of building

Build Year

Model type

Scale

Material / technology

Index

Collections

Endorsement

Review

Supplemented By

Referenced By