On this page:
Details
DrRacket
8.5

Syllabus

Week

   

Topic

   

Readings

1

   

Introduction to programming

   

Prologue (5/6), Chapter 1 (up to and including 1.4) (5/6), Chapter 2 (up to and including 2.4) (5/7), Chapter 1 (1.5-1.7) (5/8), Chapter 4 (up to and including 4.4) (5/9)

2

   

Introduction to design

   

Chapter 3 (5/13), Chapter 4 (4.5 - 4.7) (5/14), Chapter 5 (5/16), Chapter 6 (up to and including 6.2) (5/16), Review of BSL

3

   

Designing with arbitrarily large data

   

Chapter 8 (5/20), Chapter 9 (5/21), Chapter 10 (5/22)

4

   

Abstraction

   

Chapter 14 (5/28), Chapter 15 (5/29), Chapter 16 (up to and including 16.1) (5/29)

5

   

Abstraction, Intertwined Data, Trees

   

III, Chapter 16 (16.2-16.7) (6/3), Chapter 17 (6/3), Scope (6/4), Chapter 19 (up to and including 19.4) (6/5)

6

   

Graphs, Generative Recursion

   

Chapter 31 (6/10), Chapter 32 (6/11), Chapter 33 (6/12)

7

   

Accumulators, BSL interpreter

   

Chapter 25 (6/17), Chapter 26 (6/18)

The topics are linked to detailed weekly lecture plans below. The readings point into the on-line version of the text book.

You are primarily responsible for the readings. The lectures will help you understand those and will occasionally add highly pragmatic tips. But, the weekly problem sets and the exams will cover the reading material.

A semester tends to unfold in unpredictable ways, meaning the syllabus is subject to change. The most likely change concerns the last two weeks, which cover material that varies from semester to semester.

Details

Assignments are due at 9:00 pm on the day they are listed (either Monday or Thursday).

See the late policy about late submissions.

Week 1

   

Introduction to programming

05/06

   

Why CS; Arithmetic of numbers, strings; Administrivia

05/07

   

Arithmetic of images, functions, simple animations, Lab 0

05/08

   

Arithmetic of booleans, Conditionals, Intervals

05/09

   

Enumerations, Structures, Lab 1

    

Week 2

   

Introduction to design

05/13

   

Posns, structure type definitions, Steps of function design

05/14

   

Functions on structures, Lab 2

05/15

   

Itemizations, functions on itemizations

05/16

   

Self-referential data definitions, Lab 3

    

Week 3

   

Designing with arbitrarily large data

05/20

   

Self-referential unions, Lists

05/21

   

Lists, Functions on Lists, Lab 4

05/22

   

Design of a list-based world program, 1

05/23

   

Design of a list-based world program, 2; Similarities in functions, Lab 5

    

Week 4

   

Abstraction

Midterm coming up: 05/30 @ in class

05/27

   

Memorial Day, No class

05/28

   

Similarities in functions, Lab 6

05/29

   

Abstractions over similar functions

05/30

   

Exam 1, no lab

    

Week 5

   

Abstraction, Intertwined Data, Trees

06/03

   

Abstracting over DDs, Existing abstractions

06/04

   

Lambda and Scope, Lab 7

06/05

   

Sets, Mutual Recursion, S-expressions

06/06

   

Trees and Forests, Lab 8

    

Week 6

   

Graphs, Generative Recursion

Midterm coming up: 06/13 @ in class

06/10

   

Graphs

06/11

   

Generative Recursion, Lab 8

06/12

   

Generative Recursion

06/13

   

Exam 2, no lab

    

Week 7

   

Accumulators, BSL interpreter

06/17

   

Accumulators

06/18

   

Accumulators, Lab 9

06/19

   

Juneteenth, no class

06/20

   

Wrap-up, No Lab