SPIMbot: An Engaging, Problem-based Approach to Teaching Assembly Language Programming Craig Zilles University of Illinois at Urbana-Champaign
SPIMbot SIGCSE 2005 Craig Zilles 2 Executive Summary Goal: Teaching assembly language in a way that Is motivating to students Scales to large enrollment classes Makes teaching fun Two contributions: A tool: SPIMbot Program virtual robots using assembly language A pedagogy: open-ended programming contest A creative design/optimization opportunity
SPIMbot SIGCSE 2005 Craig Zilles 3 Motivating Students One of the keys to learning is engagement: Time plus energy equals learning. There is no substitute for time on task. - Chickering and Gamson We should design out-of-class work that our students work on willingly!
SPIMbot SIGCSE 2005 Craig Zilles 4 The Challenge, My Inspiration Assembly language can be 8Tedious 8Error prone Using robots to teach assembly language A UTEP computer architecture class Patricia Tellers WCAE 2003 presentation
SPIMbot SIGCSE 2005 Craig Zilles 5 Why Robots? They are inherently cool Something visceral about controlling something Visual feedback Non-contrived uses of I/O and interrupts Sensors, actuators, etc. Problem-based assignments Engineering students like solving problems More on this later.
SPIMbot SIGCSE 2005 Craig Zilles 6 But, Difficulties with Robots Physical robots … 8Must be purchased 8Require lab facilities 8Must be scheduled (if less than # of students) 8Must be maintained/upgraded UIUC CS 232 has students/semester 1 Professor and 2-3 TAs.
SPIMbot SIGCSE 2005 Craig Zilles 7 Virtual Robots Achieve most of the benefits of real ones Modern ugrads happy with virtual environments Without cost, space, hassle, maintenance Not constrained by real physics make environment emphasize desired concepts
SPIMbot SIGCSE 2005 Craig Zilles 8 SPIMbot extends Jim Laruss widely used SPIM Available under an open source license Models robot & interactions w/virtual world Updates world after every instruction Display using simple X primitives Portable, minimal resources, not distracting Emulates multiple robots simultaneously Organized for new scenario development
SPIMbot SIGCSE 2005 Craig Zilles 9
SPIMbot SIGCSE 2005 Craig Zilles 10 SPIMbot Demonstration
SPIMbot SIGCSE 2005 Craig Zilles 11 How Do I Use SPIMbot? Goals: Let them practice what theyve learned Or so they learn Have students write non-trivial programs A challenging, open-ended assignment Exposure to the design (& optimization) process Push the students to their abilities But provide a graceful learning curve Start with structured assignments
SPIMbot SIGCSE 2005 Craig Zilles 12 How Do I Use SPIMbot? (cont.) Tightly integrated assignments: 3 structured machine problems (MPs) An open-ended design contest MPs introduce concepts, provide code which can be integrated into contest entry. Introduce contest first: MPs serve as a bottom up implementation
SPIMbot SIGCSE 2005 Craig Zilles 13 SPIMbot Token Collection Scenario
SPIMbot SIGCSE 2005 Craig Zilles 14 Example Contest: Token Collection SCAN: Request scan (I/O writes), wait, receive interrupt TRAVERSE: Scan returns data encoded in a tree Must traverse the tree to find token locations COLLECT: Orient to token (arctangent approximation), Drive, Repeat
SPIMbot SIGCSE 2005 Craig Zilles 15 Structured MPs Leading to Contest MP#1: interpret command seq. to control SPIMbot Control flow (if, loop), functions, simple I/O MP #2: tree traversal & arctangent approximation Recursion, linked data structures, floating point MP #3: simple interrupt handler and scanner I/O, interrupt handling, initial integration
SPIMbot SIGCSE 2005 Craig Zilles 16 Optimization: Pipelining Scan part of the screen at a time Overlap scanning, traversing, and collecting Waiting for scan? Drive to center of region
SPIMbot SIGCSE 2005 Craig Zilles 17 Student Reaction Enjoyment: Overwhelmingly positive I really liked the SpimBot Tournament. That was the coolest thing I have done in a class. Engagement: 75% of students attempt optimization (Spring 04) See paper for example descriptions students report spending hours/person (Fa 05)
SPIMbot SIGCSE 2005 Craig Zilles 18 Summary Best learning occurs when self-motivated Make the students want to complete homework SPIMbot: a MIPS programmable robot Open source, scalable, and fun! SPIMbot tournament: friendly competition A creative challenge for students