EECS 284 Winter 2000 Syllabus (tentative)


Thursday  
January 6

Introduction. Roadmap.

  • Administrative structure of course
  • Grading policy
  • History of computers
  • The computer as a Universal computational device 
  • Build simple circuit

Tuesday  
January 11

Bits and arithmetic

  • The bit as a unit of information
  • Encoding information: binary numbers, ASCII characters
  • Negative numbers, 2's complement representation, sign extension
  • Hex representation of binary numbers
  • Arithmetic operations: ADD, SUB
  • Logical operations: AND, OR, NOT
  • Arithmetic operations: MULT, DIV
  • Test operations: sign, equality, compare
  • Arithmetic in C

Thursday  
January 13

Logic elements

Homework #1 assigned
  • The transistor as a switch
  • Basic gates (AND, OR, NOT)
  • Truth table representations
  • Any arbitrary function can be built from these gates
  • Half adder, full adder
  • MUX
  • Decoder

Tuesday  
January 18

Storage and memory

  • Basic storage element (gated RS latch)
  • A register
  • A logic circuit to implement a small piece of memory
  • Concept of memory: address space, addressability
  • Pointers and arrays in C - pointers are addresses

Thursday  
January 20

Von Neumann model, instruction cycle, Intro to LC-2

Homework #1 due. 
Homework #2 assigned
  • The basic structure of the Von Neumann model
  • Instruction = opcode, operands
  • Encoding of instructions and data
  • Instruction cycle (Fetch, Decode, EA, Fetch data, Execute, Store result)
  • GPRs, MAR and MDR
  • LC-2 ISA: instruction formats, operates, load/store, indirects

Tuesday  
January 25

LC-2 continued

Program #1 assigned
  • LC-2 ISA: Control, condition codes
  • The datapath necessary to implement the LC-2
  • How I/O works at a very simple level (keyboard in, screen out)
  • The control structure of a stored program (sequential, conditional, iterative)
  • A detailed example in machine language, with i/o

Thursday  
January 27

Moving up a level --  
compiling, assembling, linking

Homework #2 due. 
Homework #3 assigned
  • Going from higher to lower level: interpretation vs. translation
  • Translation: what do assembler and compiler do?
  • Hand assemble examples from lectures 5 and 6
  • Detailed example from lecture 6 in Assembler

Tuesday  
February 1

Subroutines, parameters, and stacks

Program #1 due. 
Program #2 assigned
  • Why subroutines?
  • How subroutines?
  • Transfer and return of control
  • Transfer and return of data 
  • The stack in the abstract
  • Stack pointer and stack operations
  • Detailed examples of subroutine call and return
  • Traps
  • Interrupts and i/o service routines

Thursday  
February 3

Pointers and addresses

Homework #3 due. 
Homework #4 assigned
  • Pointers, arrays, and strings are addresses (reprise)
  • How do pointers and array uses compile?
  • Call by reference
  • Double and triple indirection

Tuesday  
February 8

Linked structures, debugging

  • Linked lists
  • Pointer problems in C
  • Debugging C programs that use pointers

Thursday  
February 10

Review and catch-up

Homework #4 due

Tuesday  
February 15

Final Exam


Tuesday  
February 17


Program #2 due