Presentation is loading. Please wait.

Presentation is loading. Please wait.

WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE By Jucain Butler.

Similar presentations


Presentation on theme: "WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE By Jucain Butler."— Presentation transcript:

1 WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE By Jucain Butler

2 Outline of Presentation Introduction Demo Student Responses Inside the Simulator Conclusion

3 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 Feyman’s File Clerk and one based on the LEGO RCX executes a program.

4 What is the RCX 3 input Sensors 3 output Motors 32 16-bit registers datalog Virtual machine Infrared transceiver programmable in NQC

5 Maxfinder Developed web-based tutorial to enable students to understand what goes on internally in a computer for program like the maxfinder

6 Previous Work on LEGO in the classroom Seymour Papert at MIT -- LOGO Fred Martin at MIT - programmable brick CEEO at Tufts – K-12 education Dave Baum of Motorola – NQC

7 How students proceed through the tutorial Pre-survey Read reference page Post-survey Interactive demo W/ simulator Take quiz

8 Outline of Demonstration Arithmetic Instructions Module detailed look from student’s viewpoint Control and Input/Output Instruction Module introduces sensors, motors, & control statements MaxFinder Module

9 Arithmetic Operation Reference Page Arithmetic instructions perform arithmetic operations with 2 operands that overwrite the value of the first operand with the result. They always go to the next sequential address for next instruction. For the RCX processor, the arithmetic instruction format is composed of five pairs of hexadecimal digits (one byte each ).

10 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.

11 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.

12 Arithmetic Operations Reference Page -- RCX AssemblyOperationMachine code sum v[0], v[2]v[0] = v[0] + v[2]24 00 00 02 00 set v[2],0x1A5V[2] = 0x1A514 02 02 A5 01 set v[7], input(1)AV[7]=sensor val port114 07 09 01 00

13 Arithmetic Operations Reference Page-- FC InstructionOperationMachine code add v[0], v[2]v[0] = v[0] + v[2]24 00 02 input v[2]V[2] = input valueInput 2 mult v[9], v[10]V[9] = v[9] x v[10]54 09 10

14 Proceed to demo DEMO

15 Results and Student Responses Post-Quiz Survey How helpful was the learning tool? What did the students learn? Student suggestions about the tutorial’s strengths and weaknesses Over 300 students responded

16 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.

17 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.”

18 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.”

19 Graph of Student Responses 1 - not helpful 2 - a little helpful 3 – somewhat helpful 4 – very helpful

20 Inside the Simulator Approach Generic simulator Customizing for a particular example Implementation Java applet Object oriented Components encapsulated as classes Take advantage of inheritance how it is customized to a particular demo

21 RCXSimulator Display GUIs/ Externals State/ Internals Control buttons Display windows Section headings Register & I/O Device state Execution state Program code Motor state Sensor state program counter RegistersInstruction set Extra storage Simulator Organization Boxes correspond To major classes In Java applet

22 Major Classes and Methods RCXSimulator Class Program Class Interpreter Class RegisterFrame Class

23 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() - i f 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

24 Interpreter Class  The Interpreter class interprets the bytecodes and implements the entire instruction set  This class is the data type of a variable and is instantiated in the RCXSimulator class  Important Methods synchronize executeNextInstruction() - chooses from a case statement based on the opCode a method which interprets the next instruction. it is synchronized because executing an instruction is an indivisible act -- this methods that interpret the bytecodes for the complete instruction set executePWR() executeDIR() executeSETV() executeJUMPL() executeSUMV()

25 Program Class  The Program class supplies the RCXSimulator class with a program’s bytecode and gives the applet it’s personality  This class inherits from the RCXSimulator class and implements its abstract methods  Important Methods getTheProgram() - returns the array of bytecodes that constitute a specific program getbytecodeMnemonics() - returns the array of String that make up the bytecodes mnemonics getAppletTitle() - returns the title of the applet as a string

26 Code Statistics There are 24 Classes There are 3821 lines of code Sensor has 50 lines RCXSimulator has 591 Interpeter has 1301 lines Java Class Package Libraries AWT Applet Thread

27 Conclusions – major contributions An effective online tutorial with simulator using WebCT A simulator for the RCX Impacted the education of 300 students

28 Conclusions - Findings Effective as indicated by quiz & survey results Useful as a supplement to an introductory engineering course Some aspects are too technical

29 Future Work Future Increase functionality A model approach to other Domains Chemical Engineering Nano Technology


Download ppt "WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE By Jucain Butler."

Similar presentations


Ads by Google