Lectures

Date Meeting Material covered Required reading Other materials
1/6 Lecture 1 Course intro; begin MIPS assembly   slides; code
1/8 Lecture 2 Practicing control flow structures in assembly   slides; code
1/9 Lab 1 Printing primes (assembly control flow)    
1/10 Lecture 3 Memory in assembly   slides
1/13 Lecture 4 Classes/structs in assembly; functions   slides; code
1/15 Lecture 5 More functions; unsigned binary and hexadecimal numbers   slides; code; Section 4.1
1/16 Lab 2 Functions in assembly    
1/17 Lecture 6 More binary: signed integers and floating point   slides; Section 4.3; Section 4.8
1/20 Lecture 7 Introduction to C   slides; code; text (basically thru output)
1/22 Lecture 8 Differences with C: 1 pass compilation, no boolean, pointers   slides; handout
1/23 Lab 3 Connect 4 (practice with C)    
1/24 Lecture 9 Pointer errors; memory allocation; pointers as arrays and strings   slides
1/27 Lecture 10 Pointer arithmetic   slides
1/29 Lecture 11 struct; linked lists   slides; code
1/30 Lab 4 Linked list operations in C    
1/31 Lecture 12 Idea of caching; direct-mapped caching   slides
2/3 Lecture 13 Associative caching   slides
2/5 Lecture 14 Multiprocessor caching; virtual memory   slides
2/6 Lab 5 Simulating a cache    
2/7 Lecture 15 Threads   slides
2/10 No class -- work on Midterm Exam
2/12 No class -- Day of Dialog
2/13 Lab 6 Parallelizing the Mandelbrot set with pthreads    
2/14 Lecture 16 Race conditions; deadlocks; producer-consumer; locks and semaphores   slides
2/17 Lecture 17 Monitors; readers and writers; beginning of deadlock strategies   slides1; slides2
2/19 Lecture 18      
2/20 Lab 7      
2/21 Lecture 19      
2/24 Lecture 20      
2/26 No class
2/27 Lab 8      
2/28 Lecture 21      
3/3 Lecture 22      
3/5 Lecture 23      
3/6 Lab 9      
3/7 Lecture 24      
3/10 Lecture 25