CS1102 (A08) Accelerated Intro to Program Design
Lecture and Reading Schedule

Note: The "Extra Exercises" column provides additional practice exercises that you can try. These will not be graded, and are separate from the homework assignments. You are always welcome to bring questions on these practice problems to office hours. We strongly recommend that you try some of these exercises as you will need to be comfortable programming in Scheme by the third week of the course!

Exam Dates

Midterm Exam: Tuesday, Sept 23, in class (moved from Monday 9/22)
Final Exam: Thursday, Oct 16, in class

Functional Programming

DateLecture TopicReadingsExtra ExercisesDueNotes
8/28Introduction to Scheme HTDP Chapter 2
HTDP Chapter 3
HTDP Section 2.2 Exercises
HTDP Section 2.3 Exercises
HTDP Section 3.3 Exercises
8/29Images, Symbols and Conditionals HTDP Chapter 4
HTDP Chapter 5
HTDP Section 4.3 Exercises
HTDP Section 4.4 Exercises
HTDP Section 5.1 Exercises
9/1Labor Day -- no class        
9/2Structures HTDP Chapter 6
HTDP Section 6.3 Exercises
HTDP Section 6.4 Exercises
HTDP Section 6.7 Exercises
9/4Mixed Data, Nested Structures, and Intro to Lists HTDP Chapter 7
HTDP Section 9.1
HTDP Section 9.2
HTDP Section 7.2 Exercises
HTDP Section 9.1 Exercises
HTDP Section 9.2 Exercises
Homework 1
9/5Lists and The Design Recipe HTDP Chapter 9
HTDP Chapter 10
HTDP Section 9.1 Exercises
HTDP Section 9.2 Exercises
HTDP Section 9.5 Exercises
HTDP Section 10.1 Exercises
9/8Lists of structures HTDP Section 10.2
HTDP Section 10.2 Exercises
9/9Sorting       Using Templates Effectively
insertion sort
large circles code
9/11Trees HTDP Chapter 14
HTDP Section 14.2 Exercises
Homework 2
Summary of Template Forms
Notes on trees [ppt]
Notes on trees [pdf]
9/12Mutual Recursion (more trees) HTDP Chapter 15
HTDP Section 15.1 Exercises
HTDP Section 15.3 Exercises
9/15Intro to higher-order functions and filter HTDP Chapter 20
HTDP Chapter 22
    quicksort code
Notes on loops [ppt]
Notes on loops [pdf]
9/16Filter and Map HTDP Section 19.1
HTDP Section 21.1
HTDP Section 21.2
HTDP Section 21.2 Exercises
  Notes and Exercises
Notes on lambdas as args
Advanced Loops (OPTIONAL) [ppt]
Advanced Loops (OPTIONAL) [pdf]
9/18Functions as Values HTDP Section 22.3
  Homework 3
The GUI teachpack
The room draw solution

Designing and Implementing Languages : SlideShows

DateLecture TopicReadingsExtra ExercisesDueNotes
9/19Introduction to Languages Notes
    Powerpoint Sample
Slideshow without a language (needs advanced language level)
Data definitions and first talk
9/22A First Slideshow Interpreter Notes
    ppt-base.ss (starter file for lecture)
ppt-stage1.ss (final code)
Summary of Scheme constructs
9/23Midterm Exam -- In class Midterm Prep Guide
A07 midterm exam
A05 midterm exam
9/25Adding Time Conditionals and Dynamic Content Notes
  Homework 4
ppt-stage2.ss (time)
ppt-stage3.ss (dynamic via lambda)
set! and when to use it
9/26Supporting Variables       ppt-stage3-nolambda.ss (dynamic via vars)


DateLecture TopicReadingsExtra ExercisesDueNotes
9/29Introduction to Macros Macro notes
  Project Design
9/30Design Review and More Macros More macro notes
10/2Languages and Macros for Finite State Machines Automata Notes
  Homework 5
10/3More Languages and Macros for Finite State Machines Macro Notes
10/6Error Checking in Macros and Recursive Macros Error Checking in Macros
Recursive Macros
    Starter file for class

Web Programming

DateLecture TopicReadingsExtra ExercisesDueNotes
10/7The Problem of Web Programming Web Notes
    Code from lecture
10/9Converting to Script Position Script Pos Notes
  Homework 6
Starter file for class
10/10Practice with Script Position Same Notes and starter file
    Solutions to problems from class
10/13Language Tools for Web Programming       The adder with let/cc
The adder in the Scheme server

Odds and Ends

DateLecture TopicReadingsExtra ExercisesDueNotes
10/14What's with those *@#*&$!*# Parentheses?; Course Evals Notes on quoted lists
  Homework 7
10/16Final Exam -- In class (OPEN BOOK) Prep Guide
A07 final exam
A05 final exam

A MzScheme script generated this page on Thu Oct 16 09:08:39 EDT 2008.