Princeton University
Computer Science Dept.

Computer Science 217
Introduction to Programming Systems

Mona Singh

Schedule and Readings

Spring 2001

General Information | Schedule and Readings

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)
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)
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
Week 12 Tue May 1 QUIZ
Thr May 3