High dropout and failure rate in introductory programming courses indicate
the need to improve programming comprehension of novice learners.
Some of educational tools have successfully used game environments
to motivate students. Our approach is based on a novel type of notional
machine which can facilitate programming comprehension in the context of
turn-based games. The first aim of this project is to design a layered notional
machine that is reversible. This type of notional machine provides
bi-directional traceability and supports multiple layers of abstraction. The
second aim of this project is to explore the feasibility and in particular to
evaluate the performance of using the traceability in a web-based environment.
To achieve these aims, we implement this type of notional machine
through instrumentation and investigate the capture of the entire execution
state of a program. However, capturing the entire execution state produces
a large amount of tracing data that raises scalability issues. Therefore, several
encoding and compression methods are proposed to minimise the server
work-load. A proof-of-concept implementation which based on the SoGaCo
educational web IDE is presented. The evaluation of the educational benefits
and end user studies are outside the scope of this thesis.