Practise C++ programming and diagnose errors through sandboxed execution evidence, multi-test fingerprints, and principled diagnostic analysis.
Every submission compiles once and runs each test case in an isolated Windows Job Object process. Infinite loops, memory faults, and crashes are contained without killing remaining evaluations.
Submissions are not reduced to a single score. The engine derives full P/F/R outcome patterns (Pass, Fail, Runtime error) and compares them against validated reference matrices.
A secondary runtime assertion probe separates algorithmic defects from C++ undefined behavior, ensuring memory layout artifacts do not contaminate diagnostic findings.
When an outcome signature is ambiguous or unmodelled, CodeAdapt abstains rather than speculating. Scientific integrity prevents guessing when evidence is insufficient.
An empirical programming practice platform and diagnostic research instrument investigating how students reason about C++ data structures and algorithms.
Most automated grading and competitive programming platforms treat student submissions as black-box programs to be assigned an opaque grade (e.g. 75% or "Wrong Answer on Test 3"). They provide little insight into why a mistake happened or whether a failing test indicates an off-by-one indexing error, an inverted ordering invariant, or undefined memory behavior.
CodeAdapt is designed differently: it treats program execution as an empirical measurement instrument. Every submission is compiled with MinGW-w64 GCC (-std=c++17 -O1) and runs each test case in an isolated Windows Job Object sandbox. The system captures raw, unreduced execution evidence—exit codes, CPU and wall-clock times, peak memory, raw standard output, remapped compiler diagnostics, and dynamic undefined behavior assertions.
Students use CodeAdapt to deepen their understanding through deliberate problem-solving:
Practise core computer science concepts including in-place arrays, pointer-based linked list reversals, LIFO stack validations, FIFO scheduling queues, and monotonic binary search convergence.
Code executes safely in a sandboxed process with a 256MB memory cap and a 3.0s wall-clock timeout. If a solution enters an infinite loop or crashes on one test case, the remaining test cases still execute to produce complete evidence.
Review per-test results indicating exact outcomes: P (Correct), F (Wrong Answer), or R (Runtime crash or timeout), alongside expected vs. actual outputs.
When a submission fails, CodeAdapt analyzes the complete multi-test outcome pattern rather than reporting an isolated error count:
Undefined Behavior (UB) Separation: In C++, out-of-bounds indexing and dangling pointer dereferences invoke undefined behavior that can yield unpredictable results depending on compiler optimization and memory layout. CodeAdapt uses a secondary assertion probe build (-D_GLIBCXX_ASSERTIONS) to detect dynamic UB. Tests influenced by UB are excluded from diagnostic matching so students are not misled by memory artifacts.
The Cognitive Firewall: Diagnostic patterns are translated into plain-language pedagogical explanations. Internal research error labels and benchmark keys are strictly shielded from the student interface to preserve natural problem-solving.
A cornerstone of CodeAdapt is scientific honesty and epistemic modesty:
When an observed test outcome pattern does not match any known error model, the platform classifies it as an unmodelled implementation failure. The platform explicitly refuses to guess or invent a conceptual misconception.
When two distinct programming mistakes produce identical test fingerprints (known catalog collisions), the platform reports the ambiguity and abstains from picking one.
Passing all test cases verifies task correctness on the specific inputs tested. It does not prove that a student has mastered the broader concept or that a specific algorithm (such as binary search instead of linear search) was used.
Explore the problem library and test your C++ solutions against empirical test suites.
Browse foundational data structure and algorithm problems. Test your code against isolated empirical test suites.
Select a problem to view requirements.
Run your code against tests to view output, runtime evidence, and diagnostic feedback.
Loading your submissions...
Loading student profile...
Loading research overview...
Loading submissions...
Enter a submission ID above or select "Inspect Trace" from the Submission Explorer to inspect candidates and decision rules.
Loading research evaluation data...
Loading documented instrument limitations...