SPIMbot: An engaging, problem-based approach to teaching assembly language programming

Research output: Contribution to journalConference articlepeer-review


This paper describes SPIM-bot, an extension to James Larus's widely-used MIPS simulator SPIM, that allows virtual robots to be controlled by writing programs in the MIPS assembly language. SPIM-bot was written to provide an engaging environment to motivate students to learn assembly language concepts. The SPIM-bot tool allows the development of scenarios-in which students must program the robot to perform certain tasks-and provides the means to compete two robots against each other. In our sophomore/junior-level class, we structure the programming component as a collection of structured assignments that produce sub-components for the robot; these sub-components are then used in a final open-ended programming assignment to produce an entry for a SPIM-bot tournament. In our experience, this has been an effective means of engaging students, with many students investing time to aggressively optimize their implementations. SPIM-bot has been effectively used in large classes and its source code is freely available [8].

ASJC Scopus subject areas

  • Hardware and Architecture


Dive into the research topics of 'SPIMbot: An engaging, problem-based approach to teaching assembly language programming'. Together they form a unique fingerprint.

Cite this