220 likes | 306 Views
WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE. By Jucain Butler. Outline of Presentation. Introduction Demo Student Responses Inside the Simulator Conclusion. Introduction. WWW has changed how teaching occurs Virtual labs limited resources
E N D
WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE By Jucain Butler
Outline of Presentation • Introduction • Demo • Student Responses • Inside the Simulator • Conclusion
Introduction • WWW has changed how teaching occurs • Virtual labs • limited resources • physical space restrictions • The Tutorial • A series of surveys, quizzes, references and interactive programs that simulates how a computer based on Feynman’s File Clerk and one based on the LEGO RCX executes a program.
Previous Work • Seymour Papert at MIT -- LOGO • Fred Martin at MIT - programmable brick • CEEO at Tufts – K-12 education • Dave Baum of Motorola – NQC • Richard Feynman – Lectures on Computation
What is the RCX 3 input Sensors 3 output Motors • 32 16-bit registers • datalog • Virtual machine • Infrared transceiver • programmable in NQC
Maxfinder Developed web-based tutorial to enable students to understand what goes on internally in a computer for program like the maxfinder
How students proceed through the tutorial Pre-survey Read reference page Interactive demo W/ simulator Take quiz Post-survey
Arithmetic Operations Reference Page -- RCX 1. The first byte represents one of five operations. 1)14 (setv)- stores a value in the destination register 2)24 (sumv)- adds operand 1 to operand 2 3)34 (subv)- subtracts operand 2 from operand 1 4)44 (divv)- divides operand 2 into operand 1 5)54 (mulv)- multiplies operand 1 to operand 2 2. The second byte is the index (or register number) of the register that holds operand 1 and is the index of the destination register that stores the result. 3. The third byte represents one of three types for operand 2. 1)0 – the value of operand 2 is stored in a variable register 2)2 – the value of op 2 is immediately provided by the next two bytes 3)9 – the value of operand 2 is provided by a sensor 4. The fourth byte is the least significant byte of argument to the second operand. 5. The fifth byte is the most significant byte of argument to the second operand. (Note that the last two bytes combine to form a two byte integer that together represent the argument to the second operand.
Arithmetic Operations Reference Page -- FC 1. The first byte represents one of three operations. 1) 14 (input)- input value from the scrollbar into the register 2) 21 (output)- output the value from the register to the screen 3) 24 (add)- add contents of first register to the second 4)34 (sub)- subtract contents of first register from second 5)44 (div)- divide contents of second register into the first 6)54 (mult)- multiply contents of first register by the second 2. The second byte is the index (or register number) of the register that holds operand 1 and is the index of the destination register that stores the result. 3. The third byte represents the second operand.
Proceed to demo • DEMO
Quotes from Student Responses • “It was useful in understanding the underlying task the RCX performs to process our NQC commands.” • “It was very helpful, and I believe we should have been required to do this before the Scanner project. • “I wish that more resources like these were made available throughout the entire EG 111/112 course. They are an excellent supplement to the course and provide instruction where the course is lacking.”
Quotes from Student Responses cont’d • “I found it interesting to see how high-level code works as machine code.” • “ I was confused by some of the terminology and it would have been helpful to have someone there to explain.”
Quotes from Student Responses cont’d • “I think that the online tutorial is a useful tool but could become overused by professors. This may lead to excessive information for the students, and the professors not teaching.”
Simulator Organization RCXSimulator Display GUIs/ Externals State/ Internals Control buttons Section headings Display windows Register & I/O Device state Execution state Program code Extra storage Registers Motor state Sensor state program counter Instruction set Boxes correspond To major classes In Java applet
RCXSimulator Class • accept a program, step or run through the execution of that program, and displaying the state • an abstract class that inherits from the APPLET class • important methods init () - initialize variables and instantiate instances of major & GUI classes run() - if the run button is pushed, execute the next instruction until the end actionPerformed() - perform function based on which control button is selected abstract int[] getTheProgram() - get the array of bytecodes
Conclusions – major contributions • An effective online tutorial with simulator using WebCT • A simulator for the RCX • Impacted the education of 300 students
Conclusions - Findings • Effective as indicated by quiz & survey results • Useful as a supplement to an introductory engineering course • Some aspects are too technical
Future Work • Future • Increase functionality • A model approach to other Domains • Chemical Engineering • Nano Technology