On this page:
Detailed Lecture Schedule
DrRacket
6.6

Syllabus

Week

   

Topic

   

Readings

1

   

Basic Programming, Intro to Design

   

Prologue, Chapter 1 (up to and including 1.4), Chapter 2 (up to and including 2.4), Chapter 4 (up to and including 4.4), Chapter 1 (1.5-1.7)

2

   

Structures, Arbitrary-size data

   

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

3

   

Designing with arbitrarily large data, Abstraction

   

Chapter 8, Chapter 9, Chapter 10

4

   

Abstraction, Scope

   

Chapter 14, Chapter 15, Chapter 16 (up to and including 16.1)

5

   

Abstraction, Intertwined Data, Trees

   

III, Chapter 16 (16.2-16.7), Chapter 17, Scope, Chapter 19 (up to and including 19.4)

6

   

Graphs, Accumulators

   

Chapter 31, Chapter 32, Chapter 33

7

   

Generative Recursion, Exam, Wrap-up

   

Chapter 25, Chapter 26

The topics are linked to the detailed weekly lecture schedule listed below. The readings are linked to the on-line version of the textbook.

You are responsible for the readings. The lectures will help you understand the readings and may add pragmatic tips. But both the weekly homeworks and the exams will cover the assigned reading.

As the semester may unfold in unpredictable ways, the syllabus is subject to change. The most likely change concerns the last two weeks, which cover material that varies from semester to semester, and from instructor to instructor. Extra-credit homeworks, if any, will be based on this material.

Detailed Lecture Schedule

Homeworks are due at 10:00pm EST on the day they are listed in the schedule. They must be submitted via the handin server.

Week 1

 

Basic Programming, Intro to Design

05/04

 

1. Arithmetic of numbers, strings; Defining constants, functions; Administrivia; Lab 1

 

05/05

 

2. Booleans, conditionals; animations

 

05/06

 

3. Design recipes; Lab 2

 

05/07

 

4. World programs

 

HW 01

    

Week 2

 

Structures, Arbitrary-size data

05/11

 

5. Practicing world programs; Structures; Lab 3

 

05/12

 

6. Functions on structures; Union Data

 

HW 02

05/13

 

7. Arbitrary-size data; Self-referential data definitions; Lab 4

 

05/14

 

8. Practice with self-referential data definitions; Lists

 

HW 03

    

Week 3

 

Designing with arbitrarily large data, Abstraction

05/18

 

9. Practice with lists, Lists of sturctures, Lab 5

 

05/19

 

10. Similarities in functions

 

HW 04

05/20

 

11. Abstracting function behavior; Lab 6

 

05/21

 

12. ISL-provided abstractions

 

HW 05

    

Week 4

 

Abstraction, Scope

Midterm coming up: 05/28 @ online

05/25

 

Memorial Day, No class

 

05/26

 

13. Practice with ISL-provided abstractions; Scope and local

 

HW 06

05/27

 

14. Uses of local; Exam prep; Lab 7

 

05/28

 

Exam 1

 

    

Week 5

 

Abstraction, Intertwined Data, Trees

06/01

 

15. Review existing abstractions with local; Lab 8

 

06/02

 

16. Lambda and its uses; Multiple complex inputs

 

HW 07

06/03

 

17. Practice with multiple complex inputs; Trees; Lab 9

 

06/04

 

18. Mutually recursive data

 

HW 08

    

Week 6

 

Graphs, Accumulators

06/08

 

19. Practice mutually recursive data; Graphs; Lab 10

 

06/09

 

20. Functions on graphs; practice with graphs

 

06/10

 

21. Accumulators, Lab 11

 

06/11

 

22. Practice with accumulators; exam prep

 

    

Week 7

 

Generative Recursion, Exam, Wrap-up

Midterm coming up: 06/15 @ online

06/15

 

23. Exam; No Lab

 

06/16

 

24. Generative recursion

 

06/17

 

Practice with generative recursion; Lab 12

 

06/18

 

Wrap-up