Tentative Schedule




Date Subject Reading Assignment Lab
August 30, 2004 Overview of Class and introduction to programming tools Chapter 1
September 1, 2004 Programming tools See online syllabus Lab 1 handed out 9/2
September 8, 2004 Bits and Bytes Section 2.1
September 13, 2004 Integers and Floating Point representation Sections 2.2 - 2.5 Lab 1 is due 9/14
September 15, 2004 Assembly Programming - Control Sections 3.1 - 3.6
September 20, 2004 Assembly Programming - Procedures Section 3.7 Lab 2 handed out 9/21
September 22, 2004 Assembly Programming - Data Sections 3.8 - 3.11
September 27, 2004 Assembly Programming - integrating with C Sections 3.12 - 3.13 and 3.15 - 3.16
September 29, 2004 Program Optimization I Sections 5.1 - 5.6
October 4, 2004 Program Optimization II Sections 5.7 - 5.16 Lab 2 is due 10/5
October 6, 2004 Exam I

October 11, 2004 Processor basics and pipelining

October 13, 2004 Safe C Programming Secure Programming FAQ Lab 3 handed out 10/14
October 18, 2004 Memory Hierarchy Sections 6.1 - 6.4
October 20, 2004 Cache Memories Sections 6.5 - 6.8
October 25, 2004 Linking Chapter 7 Lab 3 is due 10/26
October 27, 2004 Exception Control Flow I Sections 8.1 - 8.4
November 1, 2004 Exception Control Flow II Sections 8.5 - 8.8 Lab 4 handed out 11/2
November 3, 2004 Time Measurement Chapter 9
November 8, 2004 Virtual Memoy Sections 10.1 - 10.6
November 10, 2004 P6/Linux Memory Sections 10.7 - 10.8 Lab 4 is due 11/11
November 15, 2004 Dynamic Storage I Section 10.9
November 17, 2004 Dynamic Storage II Sections 10.10 - 10.13 Lab 5 handed out 11/18
November 22, 2004 Exam II

November 24, 2004 System IO Chapter 11
November 29, 2004 Network Programming Sections 12.1 - 12.4
December 1, 2004 Concurrent Servers Sections 13.1 - 13.3 Lab 5 due 12/2
December 6, 2004 Thread Programming Sections 13.4 - 13.8
December 8, 2004 Course Review