Assembly programming presents significant challenges for novice programmers, who must understand unfamiliar syntax while reasoning about low-level machine behaviour, including registers, memory, and control flow. Although existing MIPS simulators such as MARS and QtSPIM provide access to machine state, students must often manually identify changes between execution steps and determine which instructions caused them. This places additional demands on working memory and makes debugging difficult. This project addresses these challenges through the design and implementation of a web-based educational MIPS assembly development environment grounded in Cognitive Load Theory. The system aims to reduce unnecessary cognitive effort by providing clear visualisations of machine state, execution-linked highlighting of register and memory changes, selective execution tracing, bidirectional step control, and plain-English debugging feedback. These features are designed to help students understand how instructions affect program execution and identify the causes of errors. In addition, the system includes a lecturer portal that allows academic staff to define custom MIPS instruction set variants for assignments and configure automated marking rubrics, supporting assessment flexibility while reducing manual marking effort. By combining interactive execution visualisation, simplified debugging support, and configurable assessment functionality, the project aims to provide a more accessible learning environment for novice assembly programmers while supporting lecturers in the teaching and assessment of MIPS programming.
Watch presentations, demos, and related content
Walkthrough using the Assembly IDE
Like, comment, and subscribe on YouTube to support the creator!
Walkthrough using the Assembly IDE
Explore the visual story of this exhibit
autoInstruction.png
predictDebugger.png
registersDependancy.png
Title Image