Princeton University
|
Computer Science 217
|
Spring 2018 |
Monday | Tuesday | Wednesday | Thursday | Friday | |
10:00AM | Lecture (Rusinkiewicz) | Lecture (Rusinkiewicz) | |||
11:00AM | Office (Rusinkiewicz) | Office (Rusinkiewicz) | |||
12:30PM | Precept (Gabai) | Precept (Gabai) | |||
1:30PM | Precept (Dondero) | Precept (Le) Office (Gabai) |
Precept (Dondero) | Precept (Le) Office (Gabai) |
Office (at 2:00PM) (Kyung) |
2:30PM | Office (Dondero) | Office (Le) | Office (Dondero) | Office (Le) | Office (at 3:00PM) (Kyung) |
3:30PM | Precept (Dondero) | Precept (Gabai) | Precept (Dondero) | Precept (Gabai) | |
4:30PM | Office (Dondero) | Office (Gabai) | Office (Dondero) | ||
6:00PM | Office (Gabai) | ||||
7:30PM | Precept (Kyung) | Precept (Kyung) | |||
8:30PM |
The schedule will change throughout the course. Please check it frequently.
Reading (required): C Programming (King) 1, 2 ,3
Reading (required): Computer Systems (Bryant & O'Hallaron) 1 (available through Blackboard in the "Course Materials" section)
Reading (recommended): Unix Tutorial for Beginners
Reading (recommended): GNU Emacs Tutorial
Reading (recommended): Linux Pocket Guide (Barrett) pp. 166-179 (concerning composing Bash shell scripts) (available through Blackboard in the "Course Materials" section)
Reading (recommended): Wikipedia "Deterministic finite automaton" article
Lecture 1: (Monday) Introduction; C Overview
Precept 1: (Monday/Tuesday) Introduction; The Computing Environment; Program Preparation
Lecture 2: (Wednesday) A Taste of C
Precept 2: (Wednesday/Thursday) Linux and Bash; Emacs
(Sunday 2/11) Introductory Survey Assignment Due (at 9:00PM)
Reading (required): C Programming (King) 4, 5, 6, 7, 14, 15, 20.1
Reading (recommended): Computer Systems (Bryant & O'Hallaron) 2
Reading (recommended): GNU GDB Tutorial
Lecture 3: (Monday) Number Systems
Precept 3: (Monday/Tuesday) Simple C Programs; C Fundamentals
Lecture 4: (Wednesday) Data Types in C
Precept 4: (Wednesday/Thursday) Multi-File C Programs; GDB
(Sunday 2/18) De-Comment Assignment Due (at 9:00PM)
Reading (required): C Programming (King) 8, 9, 11, 12, 13, 24.1
Reading (recommended): The Practice of Programming (Kernighan & Pike) 6
Lecture 5: (Monday) The Design of C (Operators, Statements, I/O)
Precept 5: (Monday/Tuesday) C Pointers and Arrays
Lecture 6: (Wednesday) Testing
Precept 6: (Wednesday/Thursday) C Arrays and Strings
Reading (required): C Programming (King) 16, 17
Reading (recommended): The Practice of Programming (Kernighan & Pike) 2, 5
Reading (recommended): GNU Make Tutorial
Lecture 7: (Monday) Building; Debugging Part 1
Precept 7: (Monday/Tuesday) C Command-Line Arguments; C Structures; C Dynamic Memory Management
(Wednesday 2/28) String Module Assignment Due (at 9:00PM)
Lecture 8: (Wednesday) Debugging (Part 2); Data Structures
Precept 8: (Wednesday/Thursday) Tools for Debugging Dynamic Memory Management; Abstract Data Types in C
Reading (required): C Programming (King) 19, 22
Reading (recommended): The Practice of Programming (Kernighan & Pike) 1, 4, 8
Lecture 9: (Monday) Modularity
Precept 9: (Monday/Tuesday) C Void Pointers; The Symbol Table Assignment
Lecture 10: (Wednesday) Programming Style
Precept 10: (Wednesday/Thursday) C Function Pointers; A DynArray ADT
(Sunday 3/11) Symbol Table Assignment Due (at 9:00PM)
Reading (required): C Programming (King) 10, 18
Reading (recommended): The Practice of Programming (Kernighan & Pike) 7
Reading (recommended): Computer Systems (Bryant & O'Hallaron) 5.1-5
Reading (recommended, for reference only): OProfile Manual
Lecture 11: (Monday) Performance Improvement
Precept 11: (Monday/Tuesday) C Declarations and Definitions
Lecture 12: (Wednesday) Midterm Examination (Midterm Exam Prep Document, Midterm Exams and Answers from Previous Semesters, This Semester's Exam, Answers to This Semester's Exam)
Precept 12: (Wednesday/Thursday) NO PRECEPT
(Monday - Sunday) Spring Recess
Reading (required): Computer Systems (Bryant & O'Hallaron) 3 (OK to skip 3.11) (available through Blackboard in the "Course Materials" section)
Reading (recommended, for reference only): Intel 64 and IA-32 Architectures Software Developer's Manual: Volume 1: Basic Architecture
Reading (recommended, for reference only): Intel 64 and IA-32 Architectures Software Developer's Manual: Volume 2: Instruction Set Reference
Reading (recommended, for reference only): Intel 64 and IA-32 Architectures Software Developer's Manual: Volume 3: System Programming Guide
Reading (recommended, for reference only): Intel 64 and IA-32 Architectures Optimization Reference Manual
Reading (recommended, for reference only): Using as
Lecture 13: (Monday) Language-Levels Tour: Assembly Language 1
Precept 13: (Monday/Tuesday) Assembly Language: Getting Started
Lecture 14: (Wednesday) Language-Levels Tour: Assembly Language 2
Precept 14: (Wednesday/Thursday) Assembly Language: Fundamentals, Control Transfer (Part 1)
Reading (recommended): Computer Systems (Bryant & O'Hallaron) 7
Lecture 15: (Monday) Language-Levels Tour: Assembly Language Function Calls
Precept 15: (Monday/Tuesday) Assembly Language: Control Transfer (Part 2), Instruction Operands, GDB for Assembly Language
Lecture 16: (Wednesday) Language-Levels Tour: Machine Language
Precept 16: (Wednesday/Thursday) Assembly Language: Local Variables, Functions, The Assignment 4 BigInt_add Function
Reading (required): Computer Systems (Bryant & O'Hallaron) 8.1-8.3 (available through Blackboard in the "Course Materials" section)
Reading (recommended): Computer Systems (Bryant & O'Hallaron) 6
Lecture 17: (Monday) Assembler and Linker; Buffer Overrun (same slides as last time)
Precept 17: (Monday/Tuesday) Linux and Bash (Part 2)
Lecture 18: (Wednesday) Service-Levels Tour: Processes and Exceptions
(Wednesday 4/11) Assembly Language and Testing Assignment Due (at 9:00PM)
Precept 18: (Wednesday/Thursday) The Buffer Overrun Assignment
Reading (required): The C Programming Language (Kernighan & Ritchie) 8.7 (available through Blackboard in the "Course Materials" section)
Reading (required): Computer Systems (Bryant & O'Hallaron) 9 (available through Blackboard in the "Course Materials" section)
Lecture 19: (Monday) Service-Levels Tour: Storage Hierarchy and Virtual Memory
Precept 19: (Monday/Tuesday) C Abstract Objects; The HeapMgr Assignment: Introduction
Lecture 20: (Wednesday) Service-Levels Tour: Dynamic Memory Management
Precept 20: (Wednesday/Thursday) The HeapMgr Assignment: Linked List Implementation Data Structures, Algorithms, and Code
(Sunday 4/22) Buffer Overrun Assignment Due (at 9:00PM)
Reading (required): Computer Systems (Bryant & O'Hallaron) 8.4 (available through Blackboard in the "Course Materials" section)
Lecture 21: (Monday) Service-Levels Tour: Dynamic Memory Management (cont., same as Lecture 20)
Precept 21: (Monday/Tuesday) The HeapMgr Assignment: Doubly-Linked List Implementation Data Structures, Algorithms, and (Partial) Code, Bins Implementation Data Structures, Algorithms, and (Partial) Code
Lecture 22: (Wednesday) Service-Levels Tour: Process Management
Precept 22: (Wednesday/Thursday) The Unix Shell Assignment: Introduction
Reading (recommended): Computer Systems (Bryant & O'Hallaron) 10
Reading (required): Computer Systems (Bryant & O'Hallaron) 8.5 (available through Blackboard in the "Course Materials" section)
Reading (required): C Programming (King) 24.2-3
Lecture 23: (Monday) Service-Levels Tour: I/O Management
Precept 23: (Monday/Tuesday) The Unix Shell Assignment: Processes
(Wednesday 5/2) Heap Manager Assignment Due (at 9:00PM)
Lecture 24: (Wednesday) Service-Levels Tour: Signals
Precept 24: (Wednesday/Thursday) The Unix Shell Assignment: I/O Redirection and Signals
(Monday - Sunday) Reading Period
(Monday - Tuesday) Reading Period
(Tuesday) Dean's Date
(Tuesday 5/15) Shell Assignment Due (at 5:00PM)
(Wednesday - Sunday) Final Examination Period
(Monday - Saturday) Final Examination Period
(Monday 5/21) Final Exam Prep Session, 1:30PM, CS Building 105
(Wednesday 5/23) Final Exam Prep Session, 1:30PM, Friend Center 006
(Thursday 5/24) Final Examination, 7:30PM, Friend Center 101 (Final Exam Prep Document, Final Exams and Answers from Previous Semesters, This Semester's Exam, Answers to This Semester's Exam)