Schedule

Day Date Topic Lab Reading Work Due
Week 0
8/28 An Introduction to Algorithms (notes) Making Paper Airplanes
Week 1
8/31 An Introduction to Linux (notes) Getting Started with Linux
Parts of Algorithms
The Linux Environment
Assignment 1
9/1 An Introduction to Scheme (notes) Getting Started with Scheme
Beginning Scheme
The DrRacket Program-Development Environment
How Scheme Evaluates Expressions (take 1)
9/2 Computing with Symbols and Numbers (notes) Numeric Computation
Numeric Values
Symbolic Values
9/4 RGB Colors (notes) RGB Colors
Design and Color
RGB Colors
Quiz 1
Week 2
9/7 Transforming Colors (notes) Transforming RGB Colors
Transforming RGB Colors
9/8 Transforming Images (notes) Transforming Images
Transforming Images
Assignment 2
9/9 Writing Your Own Procedures (notes) Writing Your Own Procedures
Writing Your Own Procedures
How Scheme Evaluates Expressions (take 2)
9/11 Writing Your Own Procedures, Continued (notes) Quiz 2
Week 3
9/14 Side Effects: Images, Output, and More (notes) Side Effects
Output in Scheme
Simple Input in Scheme
9/15 Documenting Programs and Procedures (notes) Documenting Your Procedures
Wray: How Pair Programming Really Works
Assignment 3
9/16 Testing Your Procedures (notes) Testing Your Procedures
Testing Your Procedures
9/18 Testing Your Procedures, Continued (notes) Testing 2.0
Quiz 3
Week 4
9/21 Boolean Values and Predicate Procedures (notes) Boolean Values and Predicate Procedures
Boolean Values and Predicate Procedures
9/22 Drawings as Values (notes) Drawings as Values
Drawings as Values
Exam 1
Printing your exam
9/23 Homogeneous Lists: Making and Manipulating
Groups of Drawings (notes)
Making and Manipulating Lists of Drawings
Making and Manipulating Homogeneous Lists
9/25 Programming the GIMP Tools (notes) Scripting the GIMP Tools
The GNU Image Manipulation Program
Programming the GIMP Tools
Quiz 4
Week 5
9/28 Exam Discussion (notes)
9/29 Work on Assignment 4 (notes) Assignment 4
9/30 Anonymous Procedures & Local Bindings (notes) Anonymous Procedures
Local Bindings
Anonymous Procedures
Local Bindings
10/2 Conditionals (notes) Conditionals
Conditionals
Quiz 5
Week 6
10/5 Images as Functions from Positions to Colors Building Images by Iterating Over Positions
Building Images by Iterating Over Positions
10/6 Revisiting Lists Exploring Lists
Building Data Structures with Heterogeneous Lists
10/7 Recursion Basics Recursion Basics
Recursion Basics
Assignment 5
10/9 Rescursion Basics, Continued (notes) Quiz 6
Week 7
10/12 Preconditions, Revisited (notes) Verifying Preconditions
Verifying Preconditions
10/13 Characters and Strings (notes) Characters and Strings
Characters and Strings
Exam 2
10/14 Recursion with Helper Procedures (notes) Recursion with Helper Procedures
Recursion with Helper Procedures
10/16 Recursion with Helper Procedures, Continued (notes) Quiz 7
Fall Break
Week 8
10/26 Other Forms of List Recursion (notes) List Recursion, Revisited
List Recursion, Revisited
10/27 Numeric Recursion (notes) Numeric Recursion
Numeric Recursion
10/28 Naming Local Procedures (notes) Local Procedure Bindings
Local Procedure Bindings
10/30 Turtle Graphics (notes) Turtle Graphics
Turtle Graphics
Quiz 8
Week 9
11/2 Iteration (notes) Iteration
Iteration
11/3 Geometric Art Through Numeric Recursion (notes) Geometric Art
Geometric Art
Assignment 6
11/4 Randomized (Unpredictable) Drawing (notes) Randomized Drawing
Randomized Drawing
11/6 Pairs and Pair Structures (notes) Pairs and Pair Structures
Pairs and Pair Structures
Quiz 9
Week 10
11/9 Vectors (notes) Vectors
Vectors
11/10 Trees (notes) Trees
Trees
Exam 3
11/11 On Two-Dimensional Design (notes) Elements and Principles of Two-Dimensional Design
About the Project
11/13 Project Kickoff (notes) Playing with Project Ideas
Project Ideas
Quiz 10
Week 11
11/16 Higher-Order Procedures, Revisited (notes) Design Patterns and Higher-Order Procedures
Design Patterns and Higher-Order Procedures
Project Proposal
11/17 Files in Scheme (notes) Files in Scheme
Files Reading
Proposal Images
11/18 Project Working Day (notes)
11/20 Pause for Breath (notes) Quiz 11
Week 12
11/23 Analyzing Procedures (notes) Analyzing Procedures
Analyzing Procedures
11/24 Association Lists (notes) Association Lists
Association Lists
Project
11/25 Binary Search (notes) Search Algorithms
Thanksgiving Break
Week 13
11/30 Project Assessment: Images
12/1 Project Assessment: Algorithms (notes)
12/2 Binary Search Lab (notes) Binary Search
12/4 An Introduction to Sorting (notes) Quiz 12
Week 14
12/7 Insertion Sort (notes) Insertion Sort
Sorting
Exam 4
12/8 Merge Sort (notes) Merge Sort
Merge Sort
12/9 Recap
12/11 Wrapup