Princeton University
Computer Science Department

Computer Science 217
Introduction to Programming Systems

Thomas Funkhouser

Spring 2002


Directory
General Information | Schedule | Lectures | Precepts | Assignments | Policies

Lectures

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