This is a living schedule and subject to change

Readings: BO - Bryant and O’Hallaron, M - Martin, T - Tarnoff

Date Topic Reading Notes Assignment
02/15 Introductions, How programs run BO 1 01-first.c, notes Attendance form
02/17 Basic C BO 2.1.1-2.1.5 02-power.c, 03-swap.c, notes Attendance form, HW 1
02/19 Pointers and arrays   04-arrays.c  
02/22 Arrays and strings   05-maxarrays.c, 06-strings.c, notes  
02/24 Number systems M 2.1 notes HW 2
02/26 Winter Carnival [no class]      
02/29 Fixed precision numbers M 2.2.1-2.2.3 notes  
03/02 Boolean operations in C M 2.5-2.6 notes, 07-sizes.c, 08-endian.c HW 3
03/04 Floating point M 2.2.4 notes, 09-bits.c  
03/07 History of computers     HW 4
03/09 More history      
03/11 Bit More History, Fetch-execute cycle   History  
03/14 Programming the ∑niac Σniac reference    
03/16 ∑niac to Intel BO 3.1-3.5 10-samples.c HW 5
03/18 ASM basics   Basic x86-64  
03/21 ASM control flow BO 3.6 11-controlflow.c  
03/23 More ASM control flow BO 3.6 notes  
03/25 ASM procedures BO 3.7 notes HW 6
03/28-04/01 Spring Break      
04/04 ASM recursion   12-factorial.c  
04/06 Debugging with GDB   notes  
04/08 Picking apart a program with GDB     Take home midterm
04/11 Data structures in C and ASM BO 3.8-3.10 13-array.c HW 7
04/13 The heap   14-memory.c  
04/15 Spring symposium [no class]      
04/18 Multidimensional arrays   15-multiarray.c  
04/20 Boolean algebra and digital circuits T 4-6 [BO 4.2.1-4.2.2] Logisim examples  
04/22 structs, unions, and adders T 8 16-structures.c HW 8
04/25 Multiplexers, decoders, adders/subtractors T 8 Logisim adder  
04/27 Sequential circuits T 10    
04/29 Registers and sequential design     HW 9
05/02 Datapaths and the ∑niac   notes, ∑niac datapath  
05/04 Pipelines and superscalar   Datapath HW 10
05/06 Memory organization T 12 Memory, notes  
05/09 Caches BO 6.2-6.4, T 13.4    
05/11 More caches BO 6.2-6.4, T 13.4    
05/13 Yet more caches BO 6.2-6.4, T 13. notes  
05/16 Performance BO 5.1-5.14 notes  
05/17-05/18 Reading days      
05/19-05/24 Exam Period      


Working Remotely
Some thoughts about how to do work for this class with your own computer
This is the tool we will be using for simulating logic circuits
Σniac reference
A reference for the simple Σniac architecture
C Programming tutorial
A basic C tutorial
The homepage of GDB. Look in the Documentation section for the Debugging with GDB book.
GDB Refcard
A quick reference to the basic commands available in GDB.
IA32 Cheatsheet
A quick reference to the most common IA32 instructions
IA32 Instruction List
A more comprehensive overview of IA32
gprof documentation
A simple guide to using gprof