Princeton University |
Computer Science 217 |
|
Week 1 | Tue Feb 6 |
Introduction and precept structure (PS,
PDF) Interfaces and Implementations Abstract Data Types, Assertions Assignment 1 available. Due Mon Feb 12. |
Thr Feb 8 |
The C Programming Language: Basics, Scope
(PS,
PDF) | |
Readings |
Hanson Chs 1-3 and 5.0-5.1 Maguire Intro and Chs 1-2; H&S 1, 2.7, 4 |
|
Precepts | No precepts this week. | |
Week 2 | Tue Feb 13 |
Types, including arrays, strings and enums
(PS,
PDF) The C Pre-processor and Basic I/O (PS, PDF) Assignment 2 available. Due Mon Feb 19. |
Thr Feb 15 |
Makefiles and Version Control
(PS,
PDF) QUIZ #1 |
|
Readings |
H&S Chs 3 and 5 Hanson Ch 4 Maguire Ch 5 Man pages for make and rcs |
|
Week 3 | Tue Feb 20 |
Operators and Expressions
(PS,
PDF) Assignment 3 available. Due Mon Mar 5. |
Thr Feb 22 | Pointers, arrays and pointers, pointers to functions (PS, PDF) | |
Readings |
H&S Chs 6 and 7 Maguire Ch 6 (and Ch 5 again) |
|
Week 4 | Tue Feb 27 |
Program design methodology
(PS,
PDF) Implementing sets of strings, and testing. |
Thr Mar 1 |
Structures, Unions and Typedef
(PS,
PDF) | |
Readings |
Hanson Chs 7-9 H&S Ch 14 |
|
Week 5 | Tue Mar 6 |
Self-referential and Dynamic Data Structures (Memory allocation)
(PS,
PDF) Variable-length argument lists (PS, PDF) Programming style (PS, PDF) Assignment 4 available. |
Thr Mar 8 |
Number systems: Two's complement, floating point.
(PS,
PDF) QUIZ #2 | |
Readings |
Paul 3.1-3, 4.1-5, 4.10, 11.1-4, 11.7-8 Maguire Chs. 7 & 8 Pike: Notes on Programming in C |
|
Week 6 | Tue Mar 13 |
Machine architecture, generic instruction formats
(PS,
PDF) Sparc register architecture, memory instruction and addressing modes (PS, PDF) |
Thr Mar 15 |
MIDTERM: in class, open book/notes. Covers everything upto and including number systems. Sample Exams: Fall99 Spr99, Fall98 |
Readings | Paul Ch. 1, 2.1-4, 4.6-4.12, 8, 9 |
Week 7 | Tue Mar 27 |
Arithmetic instructions; data movement; floating point
(PS,
PDF) Assignment 5 available. Due: Mon Apr 2. |
Thr Mar 29 |
Condition Codes; carry and overflow;
branches; control transfer
(PS,
PDF) Pipelining and branch delays (PS, PDF) |
Readings | Paul Ch. 1, 2.1-4, 4.6-4.12, 8, 9 |
Week 8 | Tue Apr 3 | Procedure call and return, stack, register windows
(PS,
PDF) Assignment 6 available. Due: Wed Apr 11. |
Thr Apr 5 | Exception handling
(PS,
PDF) QUIZ: Sparc Architecture, procedure call/return, register windows |
Readings | Paul Chs 5, 7, 12, Sec 10.9 H&S Ch 15 Hanson 2.4, 4 |
Week 9 | Tue Apr 10 | Operating systems, system calls and traps, I/O (PS, PDF) |
Thr Apr 12 | Processes, IPC, signals
(PS,
PDF) Take home QUIZ: Due Monday, 4/16. |
Readings | Kernighan and Pike, Sec 7.4 and 7.5 Paul Sec 9.1-9.7 |
Week 10 | Tue Apr 17 | Compilers and How Assemblers Work
(PS,
PDF) Linking and Loading (PS, PDF) Assignment 7 available. Due in 2 parts. |
Thr Apr 19 | Dynamic Memory Allocation: Implementing Malloc and Free
(PS,
PDF) |
Readings | Paul 1.9, 9.8 H&S Ch 16 |
Week 11 | Tue Apr 24 | Tuning for Performance (PS, PDF) |
Thr Apr 26 | Readings | |
Week 12 | Tue May 1 | QUIZ |
Thr May 3 | Readings |