Princeton University |
Computer Science 217 |
Fall 2004 |
The schedule will change throughout the course. Please check it frequently.
The .avi movies of the recorded lectures listed below are in MPEG4 format. If you have trouble playing these movies, please see this page for trouble-shooting tips.Reading (required): C Programming (King) 1, 2; The Practice of Programming (Kernighan & Pike) 1
Reading (recommended): Programming with GNU Software (Loukides & Oram) 1, 4
Lecture 1: (Thursday) Introduction: pdf (169KB), avi (50min, 39MB).
Precept 1: (Thursday/Friday) CANCELLED BECAUSE OF SCHEDULING PROBLEMS
Reading (required): C Programming (King) 3, 4, 5, 6, 7; The Practice of Programming (Kernighan & Pike) 4
Reading (recommended): Programming with GNU Software (Loukides & Oram) 2, 3
Lecture 2: (Tuesday) Introduction to C: pdf (228KB), avi (55min, 47MB).
Precept 2: (Tuesday/Wednesday) Introduction; The Program Preparation Process
Lecture 3: (Thursday) Programming style and scope: pdf (497KB), avi (50min, 40MB).
Precept 3: (Thursday/Friday) UNIX; Emacs
Reading (required): C Programming (King) 8, 9, 11, 12, 14, 15
Reading (recommended): Programming with GNU Software (Loukides & Oram) 6
Lecture 4: (Tuesday) Modules and interfaces: pdf (338KB), avi (47min, 36.9MB).
Precept 4: (Tuesday/Wednesday) C Simple Programs; C Fundamentals
Lecture 5: (Thursday) Pointers and arrays: pdf (510KB), avi (54min, 42.6MB).
Precept 5: (Thursday/Friday) C Fundamentals (cont.); C Multi-File Programs; Gdb
(Sunday) De-Comment Assignment Due
Reading (required): C Programming (King) 13, 16, 17, 21, 22
Reading (recommended):
Lecture 6: (Tuesday) Abstract data types: pdf (261KB), avi (54min, 41.2MB).
Precept 6: (Tuesday/Wednesday) C Pointers; C Arrays
Lecture 7: (Thursday) Preprocessing and Macros: pdf (59.6KB), avi (50min, 37.8MB).
Precept 7: (Thursday/Friday) C Arrays (cont.); C Strings; C Constants
(Sunday) MyString Module Assignment Due
Reading (required): C Programming (King) 19; The Practice of Programming (Kernighan & Pike) 2, 5, 6
Reading (recommended):
Lecture 8: (Tuesday) Program design and hash table: pdf (294KB), avi (48min, 39.9MB).
Precept 8: (Tuesday/Wednesday) C Files; C Structures; C Dynamic Memory Management
Lecture 9: (Thursday) Robust programming and debugging: pdf (230KB), avi (56min, 42.9MB).
Precept 9: (Thursday/Friday) C Abstract Data Types
Reading (required): C Programming (King) 10, 18
Reading (recommended):
Lecture 10: (Tuesday) Testing and profiling: pdf (289KB), avi (53min, 39.8MB).
Precept 10: (Tuesday/Wednesday) Void Pointers and Abstract Data Types; The Symbol Table Assignment
Lecture 11: (Thursday) Dynamic memory allocation: pdf (566KB)
Precept 11: (Thursday/Friday) C Function Pointers and Abstract Data Types; A DynArray ADT
(Sunday) Symbol Table Assignment Due
Reading (required): Programming from the Ground Up (Bartlett) 1, 2, 3, 10, B, E
Reading (recommended): Programming with GNU Software (Loukides & Oram) 7, 9; IA32 Intel Architecture Software Developer's Manual: Volume 1: Basic Architecture
Lecture 12: (Tuesday) Overview of architecture: pdf (437KB), avi (49min, 35MB).
Precept 12: (Tuesday/Wednesday) C Declarations and Definitions
Lecture 13: (Thursday) Midterm Examination Old exams and answer sheets, This semester's exams.
Precept 13: (Thursday/Friday) Make; Gprof
(Monday - Sunday) Fall Recess
Reading (required): Programming from the Ground Up (Bartlett) 4, 9, F
Reading (recommended): Programming from the Ground Up (Bartlett) 5, 6, 7, 8, 11, 12, 13, C
Lecture 14: (Tuesday) IA32 instructions, Floating-point, branching and assembler directives: pdf (139KB)
Precept 14: (Tuesday/Wednesday) Assembly Language: Getting Started
Lecture 15: (Thursday) Procedure calls and calling conventions: pdf (160KB)
Precept 15: (Thursday/Friday) Assembly Language: Fundamentals, Control Transfer
Reading (required):
Reading (recommended): IA32 Intel Architecture Software Developer's Manual: Volume 2: Instruction Set Reference; Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification
Lecture 16: (Tuesday) Assembler and Linker: pdf (429KB), avi (47min, 36MB).
Precept 16: (Tuesday/Wednesday) Assembly Language: Instruction Operand Types, Local Variables
Lecture 17: (Thursday) Overview of operating system: pdf (981KB), avi (46min, 34MB)
Precept 17: (Thursday/Friday) Assembly Language: Functions; Gdb for Assembly Language
(Sunday) UNIX Commands in Assembly Language Assignment Due
Reading (required): C Programming (King) 20
Reading (recommended):
Lecture 18: (Tuesday) Signals: pdf (332KB), avi (51min, 43MB)
Precept 18: (Tuesday/Wednesday) The Assembler Assignment: Overview
Lecture 19: (Thursday) Exceptions: pdf (98KB), avi (48min, 40MB)
Precept 19: (Thursday/Friday) The Assembler Assignment: Pass 1
Reading (required):
Reading (recommended):
Lecture 20: (Tuesday) Processes: pdf (172KB), avi (44min, 33MB)
Precept 20: (Tuesday/Wednesday) The Assembler Assignment: Pass 1 Relocation
(Thursday - Friday) Thanksgiving Holiday
Reading (required): C Programming (King) 24
Reading (recommended): The UNIX Programming Environment (Kernighan & Pike) 7.1-3
Lecture 21: (Tuesday) Interprocess communication (pipes): pdf (288KB), avi (50min, 37MB)
Precept 21: (Tuesday/Wednesday) The Assembler Assignment: Pass 2
Lecture 22: (Thursday) Interprocess communication (sockets): pdf (472KB), avi (49min, 36MB)
Precept 22: (Thursday/Friday) The Shell Assignment: Overview
(Sunday) Assembler Assignment Due
Reading (required): The UNIX Programming Environment (Kernighan & Pike) 7.4-5; The Practice of Programming (Kernighan & Pike) 7, 8
Reading (recommended): Programming with GNU Software (Loukides & Oram) 5
Lecture 23: (Tuesday) Portable programming: pdf (168KB), avi (43min, 35MB)
Precept 23: (Tuesday/Wednesday) The Shell Assignment: UNIX Processes
Lecture 24: (Wednesday) Performance tuning: pdf (217KB), avi (41min, 32MB)
Precept 24: (Wednesday/Thursday) The Shell Assignment: UNIX Inter-Process Communication; Signals
(Monday - Sunday) Winter Break
(Monday - Sunday) Winter Break
(Monday - Sunday) Winter Break
(Monday - Sunday) Reading Period
(Monday - Tuesday) Reading Period
(Tuesday) Dean's Date
(Tuesday) Shell Assignment Due
(Wednesday - Sunday) Final Examinations
(Monday - Saturday) Final Examinations
(Tuesday/Wednesday) Exam Preparation Session (Summary Sheet, Old Exams and Answer Sheets)(Friday) Final Examination (8:30am, CS 104)