Academic & Event Usage
Relevant source files
The following files were used as context for generating this wiki page:
Debug Arena is a secure, real-time competitive debugging platform specifically designed for academic environments and technical events such as hackathons, inter-college coding competitions, and internal lab evaluations. It facilitates high-pressure contests where teams must identify and resolve logical and syntactical flaws in Python code within a strictly monitored environment.
The platform's architecture supports event integrity through automated proctoring, dynamic difficulty scaling, and a centralized scoring system. These features ensure that competitive events at institutions like SNS College of Technology remain fair and engaging for participants ranging from beginners to advanced programmers.
Sources: README.md:3-8, README.md:167-172
Competitive Event Integrity & Proctoring
To maintain the academic integrity of competitions, the platform implements a mandatory secure environment. Participants are required to enter "Fullscreen Mode" before accessing the arena. This is enforced by a proctoring system that monitors user behavior to prevent cheating during live events.
Security Enforcement Logic
The security layer, implemented in proctor.js, detects unauthorized actions such as tab switching (visibility change) and exiting fullscreen mode. If a violation is detected, the system logs the incident to the database via the /log_violation endpoint.
The diagram shows the logic flow for monitoring participant integrity and the automated disqualification threshold.
Sources: static/js/proctor.js:22-44, templates/dashboard.html:12-21, routes/arena_routes.py:101-118
Disqualification Thresholds
Academic events typically follow a three-strike policy. Upon the third violation, the team is automatically redirected to a disqualification state, locking their access to the arena.
Sources: static/js/proctor.js:4-5, routes/arena_routes.py:126-136
| Feature | Enforcement Mechanism | Consequence |
|---|---|---|
| Fullscreen | document.fullscreenElement check | Warning & Violation Log |
| Anti-Tab Switch | visibilitychange listener | Warning & Violation Log |
| Strike Limit | Database-persistent violations count | Permanent Disqualification |
| Sources: static/js/proctor.js:68-81, models/team.py:16-18 |
Educational Level Design
The platform uses a progressive difficulty system suitable for structured academic learning. Levels are designed to test various programming concepts, from basic syntax to complex algorithms.
Level Progression
Events are structured into 8 levels, each containing specific buggy code and an expected output. The difficulty ranges from "Easy" to "Hard," allowing event organizers to assess a wide spectrum of technical skills.
Sources: levels/level_manager.py:3-162, routes/arena_routes.py:27-31
Oracle Hint System
To assist students during learning-focused events, the "Oracle" system provides logical guidance. However, in a competitive context, using these hints incurs a point penalty to ensure that pure logic is rewarded over assisted solving.
Sources: README.md:46-50, routes/submit_routes.py:50-55
# Example of a Level 5 (Medium) Challenge for Academic Assessment
# Goal: Validate username length and digit presence
def is_valid_user(name):
if len(name) < 3: # Bug: Should be 5
return False
for char in name:
if char.isdigit():
return False # Bug: Should return True here
return True
Sources: levels/level_manager.py:72-88
Real-Time Scoring & Administration
For live events, the platform calculates scores dynamically based on speed and accuracy. This data is aggregated in a global leaderboard to drive competition.
Scoring Formula
The scoring engine considers three primary factors:
- Completion Time: A base score of 100 is reduced by 1 point for every 10 seconds elapsed.
- Accuracy: Code must produce the exact
expected_outputstring. - Hint Penalties: Usage of the hint system subtracts predefined values (e.g., 10 to 30 points) from the level score.
Sources: routes/submit_routes.py:44-55
Administrative Overrides
Event administrators have access to CLI tools to manage teams during a live contest. This includes the ability to reinstate teams that were disqualified due to technical glitches.
# Reinstate a team via administrative CLI
python admin_reset.py "Team_Alpha"
Sources: admin_reset.py:1-26
Summary of Event Features
| Component | Description | Relevance to Events |
|---|---|---|
| Leaderboard | Real-time team rankings and scores. | Public display for event engagement. |
| Gatekeeper | Middleware blocking disqualified users. | Ensures strict adherence to rules. |
| Arena IDE | In-browser CodeMirror editor. | Standardizes the environment for all participants. |
| Victory State | Finalized mission status for Level 8. | Defines clear win conditions. |
| Sources: README.md:65-72, routes/arena_routes.py:14-25, templates/arena.html:200-215 |
The platform serves as a comprehensive tool for SNS College of Technology and other institutions to host secure, high-stakes coding assessments and competitive festivals.
Sources: README.md:10-14