maria jastrzębskaAI research & engineeringGet in touch ↗
← Back to Projects

Private project · Learning & feedback

Algorithm Learning Lab

I built a learning application around the part of algorithms that I wanted to understand more deeply: how program state changes through recursive calls, returns and backtracking. It combines interactive execution, deliberate practice and model-assisted feedback.

Python · FastAPI · SQLite · JavaScript · Pyodide · Web Workers · PWA · LLM judging

Make execution visible

The learner works through understanding the problem, examples, a plan, code, a dry run and complexity analysis. Python runs in the browser through Pyodide. A shared tracer records calls, returns, state changes, the line returned to and the next line executed.

The application compares a hand-written trace with actual execution. Graph-based lessons connect a decision tree to separate-path solutions and then to shared state with explicit undo. This makes the relationship between a visual model and executable code something the learner can inspect.

Separate execution evidence from coaching

The trace and solution checks are computed by code. An LLM judge provides a separate assessment using an interview-style rubric. Keeping those roles distinct lets the learner see what the program did as well as receive feedback on the explanation and approach.

The same tracing logic is used in CPython and the browser. Content tooling executes reference solutions and builds verified traces before the learning material is bundled. Browser execution runs in a worker with time limits so a runaway attempt can be stopped and the worker restarted.

Support a continuing practice

The mobile-friendly PWA includes progress tracking, a daily problem selection and spaced repetition. Service-worker caching supports the application shell and runtime resources, while the server persists attempts and judge results. I use it as an example of adapting an application to how I learn, rather than expecting a generic chat interface to provide the whole learning experience.