Create an interactive learning environment where students can deliberately break algorithms and watch exactly how their assumptions fail.
Support common algorithms and data structures, including binary search, sorting, graph traversal, hash tables, recursion, shortest-path algorithms, and dynamic programming. Provide a visual execution timeline showing variable changes, comparisons, memory structures, recursive calls, and intermediate states.
For each algorithm, generate edge cases involving empty input, duplicates, sorted or reverse-sorted data, negative values where relevant, disconnected graphs, and unusually large inputs. Let learners edit the implementation and compare its output against a reference solution or clearly defined expected behavior.
Highlight the first point where the implementation diverges from the expected result. Explain the violated invariant or assumption, and offer graduated hints before revealing a possible fix.
Include step execution, pause and rewind controls, complexity estimates, and custom test-case creation. Execute untrusted code only in an appropriately isolated environment, and provide prebuilt examples when code execution is unavailable.
0 Comments