# Omniscient Debugger to Support Beginner Programmers

*2026-10-01 — idea*


Status: Ongoing
Level: PartII
Year: 2026
Project: OxCaml Labs
Supervisors: Anil Madhavapeddy, Laurie Gale
Students: Ethan Smith


Debuggers help novice programmers understand code as it grows more complex.
They are also complicated and rarely taught thoroughly, which gives beginners
a steep learning curve.

An "omniscient debugger" records the state of a program throughout its
execution. The user can then move through time to see what changed and when.
This suits beginners, who often struggle to choose useful places for
breakpoints and to follow how data flows through a program.

This project will develop an educational omniscient debugger for Python 3,
designed for beginner programmers. It will track the execution history and
state of a program to help users investigate problems. It also aims to build
their understanding of what caused those problems and to make them more
familiar with debuggers.

A major part of the project is tracking the relevant program state and its
changes during execution, so that a user can follow them over time and see
what the program is doing. The debugger will store the changes and use them to
recreate the state at each step. It must track and display this efficiently,
so the project will implement and evaluate several approaches.

---
Canonical: https://anil.recoil.org/ideas/omniscient-debugger-beginners
Type: idea
License: CC BY 4.0 <https://creativecommons.org/licenses/by/4.0/>
Tags: programming, education, python
