On this page:
Detailed Lecture Schedule
DrRacket
7.8

Syllabus

Week

   

Topic

   

Readings

1

   

Introduction to Programming

   

Prologue, Chapter 1 (1.1-1.4), Chapter 2 (2.1-2.5)

2

   

Introduction to Design

   

Chapter 1 (1.5 - 1.7), Chapter 3, Chapter 4 (4.1 - 4.4)

3

   

Design with Fixed-Size Data

   

Chapter 5 (5.1-5.11)

4

   

Towards Arbitrarily Large Data

   

Chapter 4 (4.5-4.7), Chapter 6 (6.1-6.2), Chapter 9 (9.3-9.4)

5

   

Design with Arbitrarily Large Data

   

Chapter 8 (8.1-8.4), Chapter 9 (9.1-9.6), Chapter 10 (10.1-10.4), Chapter 11 (11.1-11.4)

6

   

Abstracting Functions

   

Chapter 12, Chapter 14, Chapter 15

7

   

Using Abstractions

   

Chapter 16 (16.1)

8

   

Design with Abstractions, Lambda

   

Chapter 16 (16.2-16.7), Chapter 17

9

   

Practice with Abstractions, Trees

   

Intermezzo: Scope, Chapter 19 (19.1)

10

   

Trees

   

Chapter 19 (19.2)

11

   

Mutually Recursive Data and Multiple Complex Inputs

   

Chapter 19 (19.3), Chapter 23

12

   

Graphs

   

Chapter 29

13

   

Accumulators

   

Chapter 31, Chapter 32, Chapter 33

14

   

Generative Recursion, Wrap-Up

   

Chapter 25, Chapter 28

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 6:00pm on the day they are listed in the schedule. They must be submitted via the handin server.

Week 1

 

Introduction to Programming

09/09

 

1. Why CS; Arithmetic of numbers, strings, images; Administrivia

 

09/10

 

2. Defining constants, functions; Simple animations

 

    

Week 2

 

Introduction to Design

09/14

 

3. Booleans, conditionals, tests

 

09/15

 

Lab 1 (partners assigned for Friday's homework)

 

09/16

 

4. The Design Recipe

 

09/17

 

5. World Programs

 

09/18

 

Homework due at 6pm

 

HW 01

    

Week 3

 

Design with Fixed-Size Data

09/21

 

6. Structure Type Definitions

 

09/22

 

Lab 2

 

09/23

 

7. Custom Structures

 

09/24

 

8. Practice With Structures

 

09/25

 

Homework due at 6pm

 

HW 02

    

Week 4

 

Towards Arbitrarily Large Data

09/28

 

9. Union Data

 

09/29

 

Lab 3

 

09/30

 

10. Transition from Fixed-Size to Arbitrarily Large Data

 

10/01

 

11. Self-Referential Data Definitions

 

10/02

 

Homework due at 6pm

 

HW 03

    

Week 5

 

Design with Arbitrarily Large Data

10/05

 

12. Lists and Designing Functions on Lists

 

10/06

 

Lab 4

 

10/07

 

13. Lists of Structures

 

10/08

 

14. Practice with Lists

 

10/09

 

Homework due at 6pm

 

HW 04

10/10

 

Exam 1 review session (4-6pm)

 

    

Week 6

 

Abstracting Functions

Midterm coming up: 10/14 @ 6:00-9:00pm

10/12

 

Columbus Day (no classes)

 

10/13

 

Lab 5

 

10/14

 

15. Project Discussion, Exam Review

 

10/15

 

16. Similarities in Functions

 

10/16

 

Homework due at 6pm

 

HW 05

    

Week 7

 

Using Abstractions

10/19

 

17. Abstractions

 

10/20

 

Lab 6

 

10/21

 

18. DrRacket-provided Abstractions

 

10/22

 

19. More DrRacket-provided Abstractions

 

10/23

 

Homework due at 6pm

 

HW 06

    

Week 8

 

Design with Abstractions, Lambda

10/26

 

20. Scope and Local

 

10/27

 

Lab 7 (new partners assigned for Friday's homework)

 

10/28

 

21. Design Recipe for Abstractions

 

10/29

 

22. Lambda

 

10/30

 

Homework due at 6pm

 

HW 07

    

Week 9

 

Practice with Abstractions, Trees

11/02

 

23. Practice with Abstractions, Sets as Lists

 

11/03

 

Lab 8

 

11/04

 

24. Practice with Lambda, Sets as Functions

 

11/05

 

25. Trees

 

11/06

 

Homework due at 6pm

 

HW 08

    

Week 10

 

Trees

11/09

 

26. Binary Trees

 

11/10

 

Lab 9

 

11/11

 

Veterans' Day (no classes)

 

11/12

 

27. More Trees

 

11/13

 

Homework due at 6pm

 

HW 09

    

Week 11

 

Mutually Recursive Data and Multiple Complex Inputs

11/16

 

28. Mutually Recursive Data

 

11/17

 

Lab 10

 

11/18

 

29. Multiple Complex Inputs

 

11/19

 

30. Practice with Multiple Complex Inputs

 

11/20

 

Homework due at 6pm

 

HW 10

11/21

 

Exam 2 review session (4-6pm)

 

    

Week 12

 

Graphs

Midterm coming up: 11/23 @ 6:00pm-9:00pm

11/23

 

31. Graphs

 

11/24

 

No Lab Today!

 

11/25

 

Thanksgiving break (no classes)

 

11/26

 

Thanksgiving break (no classes)

 

    

Week 13

 

Accumulators

11/30

 

32. Graphs and Accumulators

 

12/01

 

Lab 11

 

12/02

 

33. Accumulators

 

12/03

 

34. More Accumulators, Generative Recursion

 

12/04

 

Homework due at 6pm

 

HW 11

    

Week 14

 

Generative Recursion, Wrap-Up

12/07

 

35. More Generative Recursion

 

12/08

 

Lab 12

 

12/09

 

36. Practice with Generative Recursion, Wrap-Up, Homework due at 9pm

 

HW 12