### Syllabus

 W Topics Dates Readings 1 The Basics 09/09 2 Data Types 09/14, 09/16 2e: I:3-5 3 Enumerations, Unions, and Structures 09/21, 09/23 2e: I:6-7 4 Designing Programs 09/28, 09/30 2e: I:3-5 5 Lists 10/05, 10/07 6 Program Design with Lists 10/12, 10/14 7 Program Design & Abstraction 10/19, 10/21 8 Lambda & Scope 10/26, 10/28 9 Trees & Forests 11/2, 11/4 2e: IV:22-23 10 Generative Recursion & Graphs 11/9, 11/11 2e: V:29-31 11 Accumulators & BSL Interpreter 11/16, 11/18 2e: VI:36-39 12 Broad topic title 11/23, 11/25 Textbook reference 13 Broad topic title 11/30, 12/2 Textbook reference 14 Broad topic title 12/7, 12/9 Textbook reference

The above table is your guide to the entire semester. It lists topics and reading assignments on a week-by-week basis. In the third column you find the primary lecture dates (Profs. Lerner, Razzaq, Shivers).

The readings column is linked to the relevant book’s web site. You can find the required readings there.

You are primarily responsible for the readings not the content of the lectures though the latter will help you understand the former. The weekly problem sets, the quizzes, and the exams will cover the reading material.

#### Detailed Syllabus

 WEEK 1 09/09 why cs; administrivia; arithmetic of numbers, strings, booleans and images Hw. Set 1 Playing with BSL WEEK 2 09/14 functions; intervals; simple big-bang Lab 1 BSL in Dr. Racket 09/16 conditionals in functions Hw. Set 2 Conditional Functions WEEK 3 09/21 enumerations; structures; functions on structures Lab 2 Structures 09/23 unions of strings, numbers, structures; functions on unions Hw. Set 3 Design Recipe WEEK 4 09/28 designing programs: 6 steps; tests; the universe of data Lab 3 The World 09/30 self-referential unions; russian dolls and functions on russian dolls Hw. Set 4 Making Design Choices WEEK 5 10/05 lists and functions on lists, non-empty lists and functions, structures in lists Lab 4 Unknown 10/07 lists in structures Hw. Set 5 Unknown 10/07 EXAM: Location: 108 Snell Engineering 10/08 EXAM: MAKE-UP Location: 003 Snell Library WEEK 6 10/12 Columbus Day. No classes. NO LAB NO LAB NO LAB NO LAB NO LAB 10/14 design of a list-based world program (Part 1) Hw. Set 6 Unknown WEEK 7 10/19 design of a list-based world program (Part 2) Lab 5 Unknown 10/21 design of a list-based world program (Part 3), abstraction over similar functions (Part 1) Hw. Set 7 Unknown WEEK 8 10/26 local definitions & O() asymptotic complexity, using loop functions; lambda & scope Lab 6 Unknown 10/28 lambda, using loop functions, sets Hw. Set 8 Unknown WEEK 9 11/2 Computing computation: deriv, infinite sets; trees and forests Lab 7 Unknown 11/4 trees and forests: functions, design; S-expressions, functions over S-expr Hw. Set 9 Unknown WEEK 10 11/9 leafy-trees; generative recursion: quick sort vs. insert sort, x^n, root finding & the big idea Lab 8 Unknown 11/11 Veterans Day. No classes. Hw. Set 10 Unknown WEEK 11 11/16 graphs – big idea, uses, data defs, graph search & accumulators & foldl (reverse, rel->abs) Lab 9 Unknown 11/18 accumulators & fold, BSL interpreter Hw. Set 11 Unknown 11/19 EXAM: Location: 200 Richards WEEK 12 11/23 topics Lab 10 Unknown 11/25 Thanksgiving Recess. No classes. Hw. Set 12 Unknown WEEK 13 11/30 topics NO LAB NO LAB NO LAB NO LAB NO LAB 12/2 topics Hw. Set 13 Unknown WEEK 14 12/7 topics Lab 11 Unknown 12/9 topics Hw. Set 14 Unknown

A semester can unfold in unpredictable ways. Therefore the detailed syllabus is subject to changes.