CS 1102 (A15) 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!

Supplementary Videos! If you had trouble following one of the class lectures in the first half of the course 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. The additional exercises referred to in these videos can be found at EdX.

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

Diagnostic (Pass/Fail) Quiz: Friday, Sept 11, at start of class (for transfer to CS 1101)
Midterm Exam: Friday, Sept 18, in class (closed book; one double-sided reference sheet)
Final Exam: Thursday, Oct 15, in class (open book)

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/27Introduction 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/28Images, 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 8/31Structures - 3 HTDP Chapter 6
HTDP Section 6.3 Exercises
HTDP Section 6.4 Exercises
HTDP Section 6.7 Exercises
   
Tue 9/1Mixed 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
   
Thu 9/3Lists 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
Fri 9/4Lists of structures - 6 HTDP Section 10.2
HTDP Section 10.2 Exercises
  Code from class
Mon 9/7Labor Day -- no class        
Tue 9/8Sorting - 7       Using Templates Effectively
insertion sort code
Thu 9/10Trees - 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/11Diagnostic Quiz -- start of class (CLOSED BOOK)
Mutual Recursion (more trees) - 9
HTDP Chapter 15
HTDP Section 15.1 Exercises
HTDP Section 15.3 Exercises
   
Mon 9/14Intro 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/15Filter 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/17Functions as Values - 12 HTDP Section 22.3
  Homework 3
The GUI teachpack
The room draw solution
Fri 9/18Midterm Exam -- In class - 13
(CLOSED BOOK; one double-sided reference sheet)
Midterm Prep Guide
Sample Midterm 1
Sample Midterm 2
   

Designing and Implementing Languages : SlideShow

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

Macros

DateLecture TopicReading (See Videos)Extra ExercisesDueNotes
Mon 9/28Introduction to Macros - 18 Macro notes
  Project Design
Check-Expect in Pretty Big
Tue 9/29Design Review and More Macros - 19 More macro notes
    ppt-with-macros.rkt
Thu 10/1Languages and Macros for Finite State Machines - 20 Automata Notes
  Homework 5
Code for language approach
Code for functions approach
Fri 10/2More Languages and Macros for Finite State Machines - 21 Automata Macro Notes
     
Mon 10/5Error 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/6Introduction to a Web Server - 23       Simple http server
Web page for hello example
Using HTML in Racket
Thu 10/8The Problem with Web Programming - 24 Web Programming Notes
  Homework 6
 
Fri 10/9Continuation-Passing Style (CPS) - 25 CPS Conversion
    Starter file for class
Solutions to problems from class
Sun 10/11      Project Final
 
Mon 10/12More CPS Conversion - 26       CPS in conditionals

Coda

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


A Racket script generated this page on Mon Sep 14 21:07:28 EDT 2015.