zilles

Uploaded from authorPOINTLite
Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

SPIMbot: An Engaging, Problem-based Approach to Teaching Assembly Language Programming: 

SPIMbot: An Engaging, Problem-based Approach to Teaching Assembly Language Programming Craig Zilles University of Illinois at Urbana-Champaign

Executive Summary: 

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

Motivating Students: 

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!

The Challenge, My Inspiration : 

The Challenge, My Inspiration Assembly language can be Tedious Error prone Using robots to teach assembly language A UTEP computer architecture class Patricia Teller’s WCAE 2003 presentation

Why Robots?: 

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.

But, Difficulties with Robots: 

But, Difficulties with Robots Physical robots … Must be purchased Require lab facilities Must be scheduled (if less than # of students) Must be maintained/upgraded UIUC CS 232 has 100-150 students/semester 1 Professor and 2-3 TAs.

Virtual Robots: 

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: 

SPIMbot extends Jim Larus’s 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 Demonstration: 

SPIMbot Demonstration

How Do I Use SPIMbot?: 

How Do I Use SPIMbot? Goals: Let them practice what they’ve 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

How Do I Use SPIMbot? (cont.): 

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 Token Collection Scenario: 

SPIMbot Token Collection Scenario

Example Contest: Token Collection: 

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

Structured MPs Leading to Contest: 

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

Optimization: Pipelining: 

Optimization: Pipelining Scan part of the screen at a time Overlap scanning, traversing, and collecting Waiting for scan? Drive to center of region

Student Reaction: 

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 10-20 hours/person (Fa 05)

Summary: 

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 http://www-faculty.cs.uiuc.edu/~zilles/spimbot/