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!
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 |
Designing and Implementing Languages : SlideShow |
Date | Lecture Topic | Reading (See Videos) | Extra Exercises | Due | Notes |
---|---|---|---|---|---|
Mon 9/21 | Introduction to Languages - 14 | Notes |
Powerpoint Sample Slideshow without a language (needs advanced language level) Data definitions and first talk |
||
Tue 9/22 | A First Slideshow Interpreter - 15 | Notes |
ppt-base.rkt (starter file for lecture) ppt-stage1.rkt (final code) Summary of Racket constructs |
||
Thu 9/24 | Adding 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/25 | Supporting Variables - 17 | Homework 4 |
ppt-stage3-nolambda.rkt (dynamic via vars) |
Macros |
Date | Lecture Topic | Reading (See Videos) | Extra Exercises | Due | Notes |
---|---|---|---|---|---|
Mon 9/28 | Introduction to Macros - 18 | Macro notes |
Project Design |
Check-Expect in Pretty Big |
|
Tue 9/29 | Design Review and More Macros - 19 | More macro notes |
ppt-with-macros.rkt |
||
Thu 10/1 | Languages and Macros for Finite State Machines - 20 | Automata Notes |
Homework 5 |
Code for language approach Code for functions approach |
|
Fri 10/2 | More Languages and Macros for Finite State Machines - 21 | Automata Macro Notes |
|||
Mon 10/5 | Error Checking in Macros and Recursive Macros - 22 | Error Checking in Macros Recursive Macros |
Starter file for class |
Web Programming |
Date | Lecture Topic | Reading (See Videos) | Extra Exercises | Due | Notes |
---|---|---|---|---|---|
Tue 10/6 | Introduction to a Web Server - 23 | Simple http server Web page for hello example Using HTML in Racket |
|||
Thu 10/8 | The Problem with Web Programming - 24 | Web Programming Notes |
Homework 6 |
||
Fri 10/9 | Continuation-Passing Style (CPS) - 25 | CPS Conversion |
Starter file for class Solutions to problems from class |
||
Sun 10/11 |   | Project Final |
|||
Mon 10/12 | More CPS Conversion - 26 | CPS in conditionals |
Coda |
Date | Lecture Topic | Reading (See Videos) | Extra Exercises | Due | Notes |
---|---|---|---|---|---|
Tue 10/13 | Fun with Racket; Course Evals - 27 | Racket Syntax |
Homework 7 |
||
Thu 10/15 | Final 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. |