Princeton University |
Computer Science 217 |
|
Week 1 | Mon Feb 4 | Introduction
Topics: Overview of course, interfaces and implementations lectures: PS, PDF Readings: Hansen 1, Harbison-Steele 1 |
Wed Feb 6 | Modules
Topics: Modular programming, string manipulation lectures: PS, PDF Notes on pointers: PS, PDF Examples: sort1.c sort2.csort3.cstringarray3.hstringarray3.cMakefile Readings: Hansen 2; Harbison-Steele 13; Kernighan-Ritchie 5 |
|
Week 2 | Mon Feb 11 | Programming Style
Topics: Programming style, documentation, scope lectures: PS, PDF Examples: parseargs.cMakefile Readings: Hansen 3, 4; Harbison-Steele 4; Kernighan-Ritchie 4 |
Wed Feb 13 | Memory Allocation
Topics: Process memory organization, heap, stack, data, malloc/free lectures: PS, PDF Readings: Hansen 5 & 6; Harbison-Steele 16; Kernighan-Ritchie 8.7 |
|
Week 3 | Mon Feb 18 | Abstract data types
Topics: Encapsulation, abstract data types, function pointers lectures: PS, PDF Examples: sort4.c stringarray4.hstringarray4.cMakefile Readings: Hansen 7, 8, 9 |
Wed Feb 20 | Software Design
Topics: Decomposition into modules, dynamic array ADT, real-time coding! lectures: PS, PDF Examples: echo1.c array1.carray1.hMakefile Readings: Hansen 10, 11 |
|
Week 4 | Mon Feb 25 | Robust Programming
Topics: Error handling, C Preprocessor lectures: PS, PDF Readings: Hansen 12 |
Wed Feb 27 | Testing
Topics: Testing, timing, profiling, instrumentation lectures: PS, PDF Readings: Hansen 13 |
|
Week 5 | Mon Mar 4 | Sparc architecture
Topics: Machine architecture, memory hierarchy, assembly vs. machine language lectures: PS, PDF Readings: Paul 1, 2.1-2.8 |
Wed Mar 6 | Sparc instruction set
Topics: Instruction set design, Synthetic instructions lectures: PS, PDF Readings: Paul 6, 8 |
|
Fri Mar 8 | First midterm exam (2PM,
CS105)
Topics: everything up to and including 2/27/02 Materials: you can bring a one page cheat sheet with writing on both sides Sample exams: Last year (PS, PDF), two years ago (PS, PDF) |
|
Week 6 | Mon Mar 11 | Arithmetic instructions
Topics: Number systems, 1's complement, 2's complement, floating point lectures: PS, PDF Readings: Harbison-Steele 7; Paul 3, 4 |
Wed Mar 13 | Branching instructions
Topics: Conditions lectures/codes, branch instructions, control transfer lectures: PS, PDF Readings: Harbison-Steele 8; Paul 2.9-2.12 |
|
Week 7 | Mon Mar 25 | Pipelining
Topics: Pipelining, delay slots, optimization, annul bit lectures: PS, PDF Readings: Paul 2.5 |
Wed Mar 27 | Procedure call instructions
Topics: Procedure linkage, register windows, stack manipulation lectures: PS, PDF Readings: Harbison-Steele 9; Paul 5, 7 |
|
Week 8 | Mon Apr 1 | Assembler Directives
Topics: directives, memory allocation and initialization, data structures lectures: PS, PDF Readings: Paul 9 |
Wed Apr 3 | Assembler
Topics: two-pass assembling, symbol table, object file format lectures: PS, PDF Readings: |
|
Week 9 | Mon Apr 8 | Linker
Topics: linking, relocation, resolution lectures: PS, PDF Readings: |
Wed Apr 10 | Operating systems
Topics: virtual machines, protection, system calls lectures: PS, PDF Readings: Paul 12 |
|
Week 10 | Mon Apr 15 | Processes
Topics: scheduling, fork, exec, wait lectures: PS, PDF Readings: man pages for fork, exec, wait |
Wed Apr 17 | Inter-Process Communication
Topics: pipes, messaging, sockets lectures: PS, PDF Readings: man pages for pipe, dup, socket |
|
Fri Apr 19 | Second midterm exam (2-4PM,
CS105)
Topics: everything up to and including 4/17/02 Materials: you can bring a one page cheat sheet with writing on both sides Sample exams: Last year (PS, PDF), two years ago (PS, PDF) |
|
Week 11 | Mon Apr 22 | Memory Management
Topics: virtual memory, segmentation, paging, working sets lectures: PS, PDF Readings: Paul 13 |
Wed Apr 24 | Signals
Topics: signals, exceptions, alarms, timers lectures: PS, PDF Readings: Hanson 4, man pages for signal |
|
Week 12 | Mon Apr 29 | Graphics
Topics: overview of graphics, software systems in graphics lectures: PS, PDF Readings: None |
Wed May 1 | Summary
Topics: review, what were the important lessons? Readings: None |
|