Princeton University
Computer Science Department

Computer Science 217
Introduction to Programming Systems

Thomas Funkhouser

Spring 2003


Directory
General Information | Schedule | Assignments | Policies

Schedule


Week 1 Mon Feb 3 L1: Introduction
Slides
Tues Feb 4 P1: The Program Preparation Process
Handouts
Readings: Loukides 4; String Functions Assignment Statement
Wed Feb 5 L2: Modules
Slides
Thurs Feb 6 P2: Emacs; Gdb; Advanced C Programming: Const Declarations
Handouts
Readings: Loukides 3,6
Sun Feb 9 String Functions Assignment Due
Week 2 Mon Feb 10 L3: Abstract Data Types
Slides
Tues Feb 11 P3: Advanced C Programming: Void Pointers and Generic ADTs
Handouts
Readings: King 15,19
Wed Feb 12 L4: Programming Style
Slides
Thurs Feb 13 P4: Hash Tables; Advanced C Programming: Declarations and Definitions
Handouts
Readings: King 10,18; Symbol Table Assignment Statement
Week 3 Mon Feb 17 L5: Cancelled due to snow
Tues Feb 18 P5: Advanced C Programming: Dynamic Memory Management
Handouts
Readings: King 17.1-6
Wed Feb 19 L6: Memory Allocation
Slides
Thurs Feb 20 P6: Advanced C Programming: Function Pointers and Generic ADTs
Handouts
Readings: King 17.7
Sun Feb 23 Symbol Table Assignment Due
Week 4 Mon Feb 24 L7: Robust Programming and Testing
Slides
Tues Feb 25 P7: Make; Gprof; Advanced C Programming: Abstract Objects
Handouts
Readings: Loukides 7,9
Wed Feb 26 L8: Digital Circuits
Slides
Thurs Feb 27 P8: Advanced C Programming: Unions and Enumerations; Circuit Simulator Assignment: Functionality
Handouts
Readings: King 16.4-5; Circuit Simulator Assignment Statement
Week 5 Mon Mar 3 L9: Sequential Circuits
Slides
Tues Mar 4 P9: Circuit Simulator Assignment: Design
Handouts
Wed Mar 5 L10: Computer Architecture
Slides
Thurs Mar 6 P10: Digital Circuit Examples
Handouts
Sun Mar 9 Circuit Simulator Assignment Due
Week 6 Mon Mar 10 L11: SPARC Architecture
Slides
Tues Mar 11 P11: Assembly Language: Getting Started
Handouts
Readings: Paul 2.1-4
Wed Mar 12 L12: SPARC Instruction Set
Slides
Thurs Mar 13 P12: Pre-Exam Review
Handouts
Fri Mar 14 Midterm Exam (2-4 PM in CS105. Bring a one page cheat sheet.)
Exams from Previous Semesters    Histogram of scores
Week 7 Mon Mar 24 L13: Branching Instructions
Slides
Tues Mar 25 P13: Assembly Language Fundamentals
Handouts
Readings: Paul 3,4,9; UNIX Commands in Assembly Language Assignment Statement
Wed Mar 26 L14: Pipelining
Slides
Thurs Mar 27 P14: Assembly Language Branching; Gdb for Assembly Language
Handouts
Readings: Paul 2.5-13
Week 8 Mon Mar 31 L15: Procedure Calls
Slides
Tues Apr 1 P15: Assembly Language Stack and Subroutines
Handouts
Readings: Paul 5,7
Wed Apr 2 L16: Arithmetic Instructions
Slides
Thurs Apr 3 P16: Assembly Language Leaf Subroutines, Optimization
Handouts
Sun Apr 6 UNIX Commands in Assembly Language Assignment Due
Week 9 Mon Apr 7 L17: Assembers
Slides
Tues Apr 8 P17: Assembler Assignment: Overview
Handouts
Readings: Assembler Assignment Statement
Wed Apr 9 L18: Linkers
Slides
Thurs Apr 10 P18: Assembler Assignment: Pass 1
Handouts
Week 10 Mon Apr 14 L18: Fun
Slides
Tues Apr 15 P19: Assembler Assignment: Pass 2
Handouts
Readings: Paul 8, King 20
Wed Apr 16 L20: Operating Systems
Slides
Thurs Apr 17 P20: Assembler Assignment: Relocation
Handouts
Sun Apr 20 Assembler Assignment Due
Week 11 Mon Apr 21 L21: Processes
Slides
Tues Apr 22 P21: UNIX and Bash
Handouts
Readings: Loukides 2
Wed Apr 23 L22: Virtual Memory
Slides
Thurs Apr 24 P22: Shell Assignment: Overview
Handouts
Readings: Shell Assignment Statement
Week 12 Mon Apr 28 L23: Communication
Slides
Tues Apr 29 P23: Shell Assignment: Processes
Handouts
Readings: Kernighan (UNIX Programming Environment) 7
Wed Apr 30 L24: Summary
Slides
Thurs May 1 P24: Shell Assignment: Inter-Process Communication
Handouts
Sun May 11 Shell Assignment Due
Mon May 19  Final Exam (7:30 PM in Friend Center 006)
Exam Preparation Sheet
Exams from Previous Semesters    Histogram of scores