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

Slides:



Advertisements
Similar presentations
Chapter 2: Data Manipulation
Advertisements

Instruction Set-Intro
Dr. Ken Hoganson, © August 2014 Programming in R COURSE NOTES 2 Hoganson Language Translation.
Arithmetic Logic Unit (ALU)
The 8051 Microcontroller and Embedded Systems
INSTRUCTION SET ARCHITECTURES
SPIM and MIPS programming
 2005 Pearson Education, Inc. All rights reserved Introduction.
Instruction Set Architecture & Design
The Analytical Engine Module 6 Program Translation.
TK 2633 Microprocessor & Interfacing Lecture 3: Introduction to 8085 Assembly Language Programming (2) 1 Prepared By: Associate Prof. Dr Masri Ayob.
1 ICS 51 Introductory Computer Organization Fall 2006 updated: Oct. 2, 2006.
Java Programming, 3e Concepts and Techniques Chapter 3 Manipulating Data Using Methods.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
Computer ArchitectureFall 2007 © Sep 10 th, 2007 Majd F. Sakr CS-447– Computer Architecture.
Computer Architecture
Processor Types And Instruction Sets Barak Perelman CS147 Prof. Lee.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
Advanced Instructions Most PLCs now support more advanced functions such as Floating point math, Boolean operations, Shifting, Sequencing, Program control.
Java Programming, 2E Introductory Concepts and Techniques Chapter 3 Manipulating Data Using Methods.
CPS120: Introduction to Computer Science
Microsoft Visual Basic 2005: Reloaded Second Edition
An Interactive Web-Based Simulation of a General Computer Architecture
WEB-BASED LEARNING TOOLS ON MICROPROCESSOR FUNDAMENTALS FOR A FIRST-YEAR ENGINEERING COURSE By Jucain Butler.
COMP 110 Spring Announcements Computers in class on Friday: Lab Office Hours: Monday 12-2 New students see me after class Administrative Changes.
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
COMP2011 Assembly Language Programming and Introduction to WRAMP.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Goals of Course Introduction to the programming language C Learn how to program Learn ‘good’ programming practices.
L/O/G/O The Instruction Set Chapter 9 CS.216 Computer Architecture and Organization.
Implementation of a Stored Program Computer ITCS 3181 Logic and Computer Systems 2014 B. Wilkinson Slides2.ppt Modification date: Oct 16,
COMP3221 lec04--prog-model.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 4: Programmer’s Model of Microprocessors
Introduction to Computing Systems from bits & gates to C & beyond The Von Neumann Model Basic components Instruction processing.
Java Programming, Second Edition Chapter One Creating Your First Java Program.
4-1 4 Interpretation  Overview  Virtual machine interpretation  Case study: SVM  Case study: SVM interpreter in Java Programming Languages 3 © 2012.
Lecture 8 February 29, Topics Questions about Exercise 4, due Thursday? Object Based Programming (Chapter 8) –Basic Principles –Methods –Fields.
Computer Systems Week 7: Looping and Input/Output with 3-bit Alma Whitfield.
Execution of an instruction
CMSC 150 PROGRAM EXECUTION CS 150: Wed 1 Feb 2012.
Introduction to Microprocessors
INTRODUCTION.  Upon completing this topic, you should be able to: Illustrate a basic elements of digital computer system and their functions, Depicts.
ECE 353 Lab 2 Pipeline Simulator. Aims Further experience in C programming Handling strings Further experience in the use of assertions Reinforce concepts.
Assembly language: arithmetic and load/store instructions Ellen Spertus MCS 111 September 17, 2002.
Microarchitecture. Outline Architecture vs. Microarchitecture Components MIPS Datapath 1.
Computer Organization Rabie A. Ramadan Lecture 3.
A.Abhari CPS1251 Topic 1: Introduction to Computers Computer Hardware Computer components Connecting Computers Computer Software Operating System (OS)
CS 178: Programming with Multimedia Objects Aditya P. Mathur Professor of Computer Sciences Purdue University, West Lafayette August 27, 2004 Last update:
Department of Electronic & Electrical Engineering Introduction to microcontrollers A microcontroller is a small computer on a single integrated circuit.
What is a program? A sequence of steps
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
Ass. Prof. Dr Masri Ayob TK 2123 Lecture 14: Instruction Set Architecture Level (Level 2)
1 TM 1 Embedded Systems Lab./Honam University ARM Microprocessor Programming Model.
EE345 Chapter 2 Lecture 3 April 4. Quiz every Wednesday 1 quiz = 1% extra credit five quizzes before midterm  5% for midterm. five quizzes before final.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
CS/COE 0447 (term 2181) Jarrett Billingsley
Microprocessor Systems Design I
Introduction to 8086 Microprocessor
A Closer Look at Instruction Set Architectures
Microcomputer Programming
Chapter 7 Subroutines Dr. A.P. Preethy
Introduction to Assembly Language
Computers: Hardware and Software
Chapter 1 Background Professor Gwan-Hwan Hwang
ECEG-3202 Computer Architecture and Organization
ECEG-3202 Computer Architecture and Organization
CPU Structure CPU must:
Computer Programming-1 CSC 111
Presentation transcript:

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 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 Post-survey Interactive demo W/ simulator Take quiz

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 -- RCX AssemblyOperationMachine code sum v[0], v[2]v[0] = v[0] + v[2] set v[2],0x1A5V[2] = 0x1A A5 01 set v[7], input(1)AV[7]=sensor val port

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.

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

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

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

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

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

File Clerk Simulator

RCX Simulator