CS 1102 (A14) 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 Racket by the third week of the course!

NEW THIS YEAR--Supplementary Videos! If you had trouble following one of the class lectures below or would just like a review of similar material, you now have the option of referring to an excellent collection of YouTube videos based on the corresponding chapters of the Readings in the HTDP textbook below.

To find the videos, visit the Systematic Program Design channel and then refer to the CS 1101 website to determine which videos in the "All Modules" list corresponds to the HTDP chapter(s) you are interested in reviewing.

NB: Although these videos cover roughly the same material with the same basic approach, they are not a replacement for the course lectures!

Exam Dates

Midterm Exam: Friday, Sept 19, in class
Final Exam: Thursday, Oct 16, in class

Schedule (other than exam dates) subject to change by instructor! (Students will be notified in class.)

Some material will not be posted until after class date.


Functional Programming

DateLecture TopicReading (See Videos)Extra ExercisesDueNotes
Thu 8/28Introduction to Racket - 1 HTDP Chapter 2
HTDP Chapter 3
HTDP Section 2.2 Exercises
HTDP Section 2.3 Exercises
HTDP Section 3.3 Exercises
   
Fri 8/29Images, Symbols and Conditionals - 2 HTDP Chapter 4
HTDP Chapter 5
HTDP Section 4.3 Exercises
HTDP Section 4.4 Exercises
HTDP Section 5.1 Exercises
Survey/Partners
 
Mon 9/1Labor Day -- no class        
Tue 9/2Structures - 3 HTDP Chapter 6
HTDP Section 6.3 Exercises
HTDP Section 6.4 Exercises
HTDP Section 6.7 Exercises
   
Thu 9/4Mixed Data, Nested Structures, Intro to Lists - 4 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
   
Fri 9/5Lists and The Design Recipe - 5 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
Homework 1
Design matrix
Code from class
Mon 9/8Lists of structures - 6 HTDP Section 10.2
HTDP Section 10.2 Exercises
  Code from class
Tue 9/9Sorting - 7       Using Templates Effectively
insertion sort code
Thu 9/11Trees - 8 HTDP Chapter 14
HTDP Section 14.2 Exercises
Homework 2
Summary of Template Forms
Notes on trees [ppt]
Notes on trees [pdf]
Fri 9/12Mutual Recursion (more trees) - 9 HTDP Chapter 15
HTDP Section 15.1 Exercises
HTDP Section 15.3 Exercises
   
Mon 9/15Intro to Higher-Order Functions and Filter - 10 HTDP Chapter 20
HTDP Chapter 22
    quicksort code
Notes on loops [ppt]
Notes on loops [pdf]
Tue 9/16Filter and Map - 11 HTDP Section 19.1
HTDP Section 21.1
HTDP Section 21.2
HTDP Section 21.2 Exercises
  Notes and Exercises
filter-ftree code
Notes on lambdas as args
Advanced Loops (OPTIONAL) [ppt]
Advanced Loops (OPTIONAL) [pdf]
Thu 9/18Functions as Values - 12 HTDP Section 22.3
  Homework 3
The GUI teachpack
The room draw solution
Fri 9/19Midterm Exam -- In class (CLOSED BOOK) - 13 Midterm Prep Guide
Sample Midterm 1
Sample Midterm 2
   

Designing and Implementing Languages : SlideShow

DateLecture TopicReading (See Videos)Extra ExercisesDueNotes
Mon 9/22Introduction to Languages - 14 Notes
    Powerpoint Sample
Slideshow without a language (needs advanced language level)
Data definitions and first talk
Tue 9/23A First Slideshow Interpreter - 15 Notes
    ppt-base.ss (starter file for lecture)
ppt-stage1.ss (final code)
Summary of Racket constructs
Thu 9/25Adding Time Conditionals and Dynamic Content - 16 Notes
    ppt-stage2.ss (time)
ppt-stage3.ss (dynamic via lambda)
set! and when to use it
Fri 9/26Supporting Variables - 17     Homework 4
ppt-stage3-nolambda.ss (dynamic via vars)

Macros

DateLecture TopicReading (See Videos)Extra ExercisesDueNotes
Mon 9/29Introduction to Macros - 18 Macro notes
  Project Design
Check-Expect in Pretty Big
Tue 9/30Design Review and More Macros - 19 More macro notes
    ppt-with-macros.ss
Thu 10/2Languages and Macros for Finite State Machines - 20 Automata Notes
  Homework 5
Code for language approach
Code for functions approach
Fri 10/3More Languages and Macros for Finite State Machines - 21 Automata Macro Notes
     
Mon 10/6Error Checking in Macros and Recursive Macros - 22 Error Checking in Macros
Recursive Macros
    Starter file for class

Web Programming

DateLecture TopicReading (See Videos)Extra ExercisesDueNotes
Tue 10/7Introduction to a Web Server - 23       Simple http server
Web page for hello example
Using HTML in Racket
Thu 10/9The Problem with Web Programming - 24 Web Programming Notes
  Homework 6
 
Fri 10/10Continuation-Passing Style (CPS) - 25 CPS Conversion
    Starter file for class
Solutions to problems from class
Sun 10/12      Project Final
 
Mon 10/13More CPS Conversion - 26       CPS in conditionals

Coda

DateLecture TopicReading (See Videos)Extra ExercisesDueNotes
Tue 10/14Fun with Racket; Course Evals - 27 Racket Syntax
  Homework 7
 
Thu 10/16Final Exam -- In class (OPEN BOOK) - 28 Prep Guide
Sample Final Exam 1
Sample Final Exam 2
   


A Racket script generated this page on Wed Sep 24 09:19:57 EDT 2014.