Fall 2008 -- Computer Organization

Class Syllabus [PDF]

Email Address: Prof. Pfaffmann

Course Textbooks

Computer Systems – Randal Bryant & David O’Hallaron
 The primary textbook.
 
C: In a Nutshell – Peter Prinz & Tony Crawford
 A reference book for the C programming language.

Reference Links

  1. Linux Distro Resources.
  2. C Programming Information


Grading Rubrics

This course will use rubrics for grading. These rubric provide you guidance in how to organize your programs, submissions, and documents. It is provided to let you know what is expected of the materials you produce. Note, it is not a set of points you need to produce a "good document", it is a set of points to ensure your "good document" is well received.

It should also be noted that additional rubrics will be provide with major assignment that will cover content.

  1. The Coding Rubric.
  2. The Written Assignment Rubric.

Homework Solution Links

  1. Homework 1
  2. Homework 2
  3. Homework 3
  4. Homework 4
  5. Homework 5

Lab Links

  1. Labs are due at 11pm the day they are due.
  2. Labs submissions will be evaluated using the submission, coding, and individual lab rubrics.
    (See the rubric sections of the main webpage and/or specific lab page.)
Lab Link Due Date
Lab 1 - Getting to know Linux and C September 1
Lab 2 -- Manipulating Bits September 8
Lab 3 - Introduction to Assembly Code September 15
Lab 4 - Loops and Conditionals September 22
Lab 5 - Exploring Executable Code October 3
Lab 6 -- Function Calls and the Stack October 13
Lab 7 -- Tkgate and Combinational Circuits October 27
Lab 8 -- Tkgate and Sequential Circuits November 3
Lab 9 -- Assembly Programming on the simulators. November 17
Lab 10 -- Optimization and Cacheing. December 1

Project Links

  1. Project Assignment.
  2. Project Tar File (New on 11/07/08.)
  3. Processor Simulator User Guide

Class Calendar

  1. All assignments are due at 11pm the day they are due.
  2. Labs submissions will be evaluated using the submission, coding, and individual lab rubrics.
    (See the rubric sections of the main webpage and/or specific lab page.)
  3. Homework submissions will be evaluated using the submission rubrics.
  4. Project submissions will be evaluated using the submission, coding, and individual lab rubrics rubrics.
    (See the rubric sections of the main webpage and/or specific lab page.)
Lecture Agenda Reading Assignments Due Date
Tuesday
August 26
Week: 1
  1. Topics:
    • Introduction
    • Basic Organization
    • Memory/Stack/Heap
  2. Handout: handout_20080826.pdf
  1. Become aquatinted with Nutshell book.
Thursday
August 28
Week: 1
  1. Topics:
    • Introduction to C
  2. Handout: handout_20080828.pdf
  1. CS:APP -- Chapter 1
Tuesday
September 2
Week: 2
  1. Topics:
    • Information Storage
    • Casting
    • Logic Operations
  2. Handout: handout_20080902.pdf
  1. CS:APP -- Chapter 2.1 and 2.2
  2. Nutshell -- Chapter 2 thru 5
  1. CS:APP -- questions 2.40, 2.41, 2.42, 2.45, 2.56, 2.57, 2.60
Thursday
September 4
Week: 2
  1. Topics:
    • Integer Arithmetic
    • Floating Point
  2. Handout: handout_20080904.pdf
  1. CS:APP -- Chapter 2.3 thru 2.5
Tuesday
September 9
Week: 3
  1. Topics:
    • Assembly Language Basics
    • Compilers
    • Example Assembly Langages
  1. CS:APP -- Chapter 3.1 thru 3.3
  2. Nutshell -- Chapter 5
  1. CS:APP -- questions 3.31, 3.32, 3.33
  1. Week 2 Homework (Start of Lecture)
Thursday
September 11
Week: 3
  1. Topics:
    • Basic Command Types
    • Data Movement
    • Concept of Memory in Assembly
    • Math Operations
  1. CS:APP -- Chapter 3.4 and 3.5
Tuesday
September 16
Week: 4
  1. Topics:
    • Conditionals in Assembly
    • Control Flow
  1. CS:APP -- Chapter 3.6
  2. Nutshell -- Chapter 6
  1. CS:APP -- questions 3.34, 3.35
  1. Week 3 Homework (Start of Lecture)
Thursday
September 18
Week: 4
  1. Topics:
    • Loops
    • Function Calls
  1. CS:APP -- Chapter 3.7
  2. Nutshell -- Chapter 7
Tuesday
September 23
Week: 5
  1. Topics:
    • Catch up
  1. Project 1 -- The Bomb Project
  1. Week 4 Homework (Start of Lecture)
Thursday
September 25
Week: 5
  1. Topics:
    • Exam 1
Tuesday
September 30
Week: 6
  1. Topics:
    • Higher-Level of Memory Organization
    • Function Calls
    • Stacks
  1. CS:APP -- Chapter 3.7
  2. Nutshell -- Chapter 7
  1. CS:APP -- questions 3.36, 3.38
Thursday
October 2
Week: 6
  1. Topics:
    • Data Structures
    • Memory Alignment
  1. CS:APP -- Chapter 3.8 thru 3.16
  2. Nutshell -- Chapter 8 thru 10
Tuesday
October 7
Fall
Break
Fall
Break
Fall
Break
Fall
Break
Thursday
October 9
Week: 7
  1. Topics:
    • Basic Circuits
    • Truth Tables
    • Topology of Boolean Codes
Tuesday
October 14
Week: 7
  1. Topics:
    • Boolean Expression
    • Simplification
Thursday
October 16
Week: 8
  1. Topics:
    • Combinational Circuits
    • Basic Components
  1. Project 1 -- The Bomb Project (Friday Oct 17th)
  2. Week 6 Homework (Start of Lecture)
Tuesday
October 21
Week: 8
  1. Topics:
    • Clocks
    • Latches
    • Flip-Flops
Thursday
October 23
Week: 9
  1. Topics:
    • Sequential Circuits
Tuesday
October 28
Week: 9
  1. Topics:
    • Simple Processors
    • Instruction Set Architectures
Thursday
October 30
Week: 10
  1. Topics:
    • Catchup
Tuesday
November 4
Week: 10
  1. Topics:
    • SEQ processor overview.
  2. Handout: lecture_081104.pdf
Thursday
November 6
Week: 11
  1. Topics:
    • Exam 2
Tuesday
November 11
Week: 11
  1. Topics:
    • Architecture and Optimization
  2. Handout: lecture_20081111.html
Thursday
November 13
Week: 12
  1. Topics:
    • Pipeling and Superscalar
  2. Handout: lecture_20081113.html
Tuesday
November 18
Week: 12
  1. Topics:
    • Superscalar and Code Optimization
  2. Handout: lecture_20081118.html
Thursday
November 20
Week: 13
  1. Topics:
    • Caching
  2. Handout: lecture_20081120.html
Tuesday
November 25
Week: 13
  1. Topics:
    • Virtual Memory
  2. Handout: lecture_20081125.html
Thursday
November 27
Thanksgiving
Break
Thanksgiving
Break
Thanksgiving
Break
Thanksgiving
Break
Tuesday
December 2
Week: 14
  1. Topics:
    • GPU's
Thursday
December 2
Week: 14
  1. Topics:
    • SIMD Processing
Date: December 10 Wednesday (9-11) Final
Exam
Final
Exam
Final
Exam
Final
Exam

© Jeffrey O. Pfaffmann, 2008. Contact --