Learning+Objectives

Write down the learning objectives starting with **//verb//** and in terms of **//measurable outcome//**.
 * 1) Week 01
 * 2) Lecture 01: Basics of Information. By the end of this lesson, students should be able to:
 * define what is information
 * calculate the amount of information
 * encode information and calculate the minimum number of bits
 * convert numbers from and to decimal-binary, binary-hex, decimal-hex.
 * 1) Lecture 02: Digital Abstraction. By the end of this lesson, students should be able to:
 * explain the advantage of digital abstraction in comparison to analog
 * define what is combinational logic
 * state the static disciplines of combinational logic
 * define what is a noise margin
 * calculate and analyze noise margin requirement
 * draw and explain voltage transfer characteristics
 * 1) Lecture 03: CMOS Technology. By the end of this lesson, students should be able to:
 * explain the mechanism of pull up and pull down transistors
 * explain how to build CMOS inverter from field effect transistor (FET)
 * synthesize CMOS gates given a simple specification, truth table, or boolean equation
 * deduce simple boolean equations given some CMOS circuits
 * define propagation delay and contamination delay
 * calculate and analyze timing specification of a combinational circuit
 * 1) Week 02
 * 2) Lecture 01: Logic Synthesis. By the end of this lesson, students should be able to:
 * write the truth table given a functional specification of a combinational device
 * write the sum-of-products of a boolean expression given a truth table or combinational logic, and vice versa
 * draw the combinational logic using NAND and NOR gates given the sum-of-products or truth table
 * 1) Lecture 02: Logic Simplification, Multiplexer, and ROM. By the end of this lesson, students should be able to:
 * simplify boolean expression using boolean algebra and Karnaugh map
 * explain the working of multiplexer
 * use multiplexer as universal gate implementation
 * implement boolean expression in read-only memory (ROM)
 * 1) Week 03
 * 2) Lecture 01: Sequential Logic . By the end of this lesson, students should be able to:
 * draw the model of sequential logic consisting of memory device and combinational logic
 * explain the working of a D-latch
 * explain the working of edge-triggered flip-flop
 * analyze the relationship between setup time, hold time, contamination delay, and propagation delays.
 * 1) Lecture 02: Finite State Machine and Synchronization. By the end of this lesson, students should be able to:
 * define finite state machine and draw a valid state transition diagram given a specification
 * implement finite state machine in a hardware
 * discuss the issues of metastability and common solution


 * 1) Week 04
 * 2) Lecture 01: Pipelining. By the end of this lesson, students should be able to:
 * define and calculate latency and throughput
 * explain how pipelining works and its effect to latency and throughput
 * design pipeline stages given a combinational circuit
 * draw pipeline diagrams to analyze
 * 1) Lecture 02: Programmability and Computability, Designing an Instruction Set.. By the end of this lesson, students should be able to:
 * explain Turing Machine and Church's Thesis on computable functions
 * explain von Neumann model of computer architecture
 * explain the overview of CPU architecture
 * draw two basic Beta instruction formats in terms of bits allocations
 * 1) Week 05 : No lecture
 * 2) Week 06
 * 3) Lecture 01: Machine Language and Compilers. By the end of this lesson, students should be able to:
 * Explain models of interpretation and compilation and state the differences
 * write Beta Assembly language using labels, macros
 * convert from Beta assembly code to binary representation and vice versa
 * compile C code expressions (int, arrays, conditionals, loops) into Beta assembly language
 * 1) Lecture 02: Stacks and Procedures. By the end of this lesson, students should be able to:
 * explain the necessity and functions of stack for program execution
 * explain what is linkage pointer, base pointer, stack pointer, and activation record
 * 1) Week 07: term break
 * 2) Week 08:
 * 3) Lecture 01: Stacks and Procedures
 * state convention and contract used in Beta for procedure linkage
 * draw stack frame detail of a procedure call
 * 1) Lecture 02: Building Beta. By the end of this lesson, students should be able to:
 * draw ALU operation data path
 * draw Load & Store operation data path
 * draw Jump & Branch instruction data path
 * 1) Week 09: 2D Week
 * 2) Week 10
 * 3) Lecture 01: Building Beta (II) & Memory Hierarchy. By the end of this lesson, students should be able to:
 * draw Beta datapath for all instruction classes
 * state the output of control logic for different instructions
 * explain the difference between main memory (RAM) and secondary memory (hard disk, etc)
 * draw memory hierarchy and explain locality of reference
 * 1) Lecture 02: Cache Issues. By the end of this lesson, students should be able to:
 * Explain cache principle and basic cache algorithm for hit and miss
 * Explain the difference between fully-associative cache, direct-mapped cache, and n-way set-associative cache
 * State replacement strategy and analyze their impact on performance
 * Explain write policy on cache
 * 1) Week 11
 * 2) Lecture 01: Virtual Memory. By the end of this lesson, students should be able to:
 * extend memory hierarchy to secondary storage
 * explain simple page map design
 * calculate page map arithmetic given a page map specification
 * explain translation look-ahead buffer and context
 * 1) Lecture 02: Virtual Machine. By the end of this lesson, students should be able to:
 * explain how to build virtual machine using processes
 * explain Beta interrupt handling from hardware and software perspectives
 * explain Beta exception handling and supervisor call handler
 * 1) Week 12
 * 2) Lecture 01: Device Handlers. By the end of this lesson, students should be able to:
 * explain the role of OS for scheduling processes related to I/O
 * define interrupt latency and explain interrupt enable/disable bit
 * explain weak priorities and strong priorities scheduling and its impact on latency
 * 1) Lecture 02: Processes, Synchronization, Deadlock, OS Summary. By the end of this lesson, students should be able to:
 * define precedence constraints in synchronous communication
 * apply semaphores to implement precedence constraints
 * apply semaphores to implement resource allocation, bounded buffer problem, and mutual exclusion
 * explain the problem of deadlocks and how to solve it