Princeton University |
Computer Science 217 |
|
Reading (required): The Game of Kalah
Reading (recommended): Kernighan & Pike (The Practice of Programming) 4
Lecture 1: (Thursday) Introduction; Modules & Interfaces
Reading (required): Loukides & Oram 2, 3, 4, 6
Reading (recommended): Kernighan & Pike (The Practice of Programming) 1
Precept 1: (Monday/Tuesday) Introduction; The Program Preparation Process
Lecture 2: (Tuesday) Modules & Interfaces
Precept 2: (Wednesday/Thursday) Emacs; Gdb
Lecture 3: (Thursday) Programming Style; Scope
(Sunday) String Functions Assignment Due
Reading (required): King 15, 17.1-6, 19, Kernighan & Pike (The Practice of Programming) 2.7, 2.9
Reading (recommended): Kernighan & Pike (The Practice of Programming) 4.5, 4.6
Precept 3: (Monday/Tuesday) Advanced C: Dynamic Memory Management
Lecture 4: (Tuesday) ADTs; Software Design; Hashing
Precept 4: (Wednesday/Thursday) Advanced C: Void Pointers and Generic ADTs
Lecture 5: (Thursday) Dynamic Memory Management
Reading (required): King 10, 17.7, 18; McGill notes; Rich 12
Precept 5: (Monday/Tuesday) Advanced C: Function Pointers and Generic ADTs
Lecture 6: (Tuesday) Game playing programs; Alpha-beta search
Precept 6: (Wednesday/Thursday) Hash Tables; Advanced C: Declarations, Definitions, Scope, Linkage, Duration
Lecture 7: (Thursday) Incremental evaluation in alpha-beta
(Sunday) Symbol Table ADT Assignment Due
Reading (required): Loukides & Oram 7
Reading (recommended): Kernighan & Pike (The Practice of Programming) 6, 7
Precept 7: (Monday/Tuesday) Game Player Team Discussion (attendance is mandatory)
Lecture 8: (Tuesday) Testing and profiling
Precept 8: (Wednesday/Thursday) Make; Game Player Team Discussion (attendance is mandatory)
Lecture 9: (Thursday) Robust programming
Reading (required): Loukides & Oram 9
Precept 9: (Monday/Tuesday) Gprof; Game Player Team Discussion (attendance is mandatory)
Lecture 10: (Tuesday) Operating systems; Buffered I/O
Precept 10: (Wednesday/Thursday) UNIX and Bash; Game Player Team Discussion (attendance is mandatory)
Lecture 11: (Thursday) Processes; fork/exec
(Sunday) Kalah Player Assignment Due
Reading (required): Kernighan & Pike (The UNIX Programming Environment) 7.4
Precept 11: (Monday/Tuesday) UNIX Processes
Lecture 12: (Tuesday) Interprocess communication; pipe/dup
Precept 12: (Wednesday/Thursday) UNIX Processes (cont.)
Lecture 13: (Thursday) Sparc architecture
(Thursday) Midterm Examination: 7:30 PM in CS 104. (Last year's midterm exam and answers, midterm exam preparation guide)
(Monday - Sunday) Fall Recess
Reading (required): Kernighan & Pike (The UNIX Programming Environment) 7.5
Precept 13: (Monday/Tuesday) UNIX Low-Level I/O and Pipes
Lecture 14: (Tuesday) Sparc instructions
Precept 14: (Wednesday/Thursday) UNIX Signals and Alarms
Lecture 15: (Thursday) Number systems
(Sunday) Kalah Referee Assignment Due
Reading (required): Paul 2.1-4, 3, 4, 9
Precept 15: (Monday/Tuesday) Assembly Language: Getting Started
Lecture 16: (Tuesday) Branching
Precept 16: (Wednesday/Thursday) Assembly Language Fundamentals
Lecture 17: (Thursday) Procedure Calls
Reading (required): Paul 2.5-13, 5, 7
Precept 17: (Monday/Tuesday) Assembly Language Branching; Gdb for Assembly Language
Lecture 18: (Tuesday) Assembly Language Stack and Subroutines (Note: Andrew Appel will be on travel, so Bob Dondero will present this lecture. The lecture will be in the style of a typical precept, will build on the material that was covered in Precept 16, and will be prerequisite for the material to be covered in Precept 18.)
Precept 18: (Wednesday/Thursday) Assembly Language Leaf Subroutines and Optimization
Lecture 19: (Thursday) Combinational circuits
(Sunday) UNIX Commands in SPARC Assembly Language Assignment Due
Reading (required): King 16.4-5, 19.1-2
Precept 19: (Monday/Tuesday) Circuit Simulator (Interpreted Version)
Lecture 20: (Tuesday) Sequential circuits
(Thursday - Sunday) Thanksgiving Holiday
Precept 20: (Monday/Tuesday) Circuit Simulator (Interpreted Version)
Lecture 21: (Tuesday) Parsing
Precept 21: (Wednesday/Thursday) Digital Circuit Examples
Lecture 22: (Thursday) Building a computer
Reading (required): Paul 8; King 20; Appel
Precept 22: (Monday/Tuesday) SPARC Assembler, Linker, and Machine Language
Lecture 23: (Tuesday) Assemblers & Linkers
(Tuesday) Digital Circuit Simulator (Interpreted Version) Assignment Due
Precept 23: (Wednesday/Thursday) Circuit Simulator: Compiled Version
Lecture 24: (Thursday) Software engineering
(Monday - Sunday) Winter Recess
(Monday - Sunday) Winter Recess
(Monday - Sunday) Winter Recess
(Monday - Sunday) Reading Period
(Monday) Reading Period
(Tuesday) Dean's Date
(Tuesday) Digital Circuit Simulator (Compiled Version) Assignment Due
(Thursday) Exam Preparation Session: 3:00 PM - 4:00 PM, Friend Center 110, conducted by Benedict Brown
(Friday) Exam Preparation Session: 1:00 PM - 2:00 PM, Friend Center 110, conducted by Bob Dondero
(Monday) Final Exam: Jan 19th, 8:30 a.m., Frick Chemistry Lab, room 324 (Last year's final exam and answers, final exam preparation guide)