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
 

Reply via email to