On this page:
Detailed Lecture Schedule
DrRacket
8.15

Syllabus🔗

Week

   

Topic

   

Readings

1

   

Class Motivation; Basic Programming

   

Prologue, Chapter 1, Chapter 2

2

   

Introduction to Design

   

Chapter 3, Chapter 4.1-4.4, Chapter 5

3

   

Design with Fixed-Size Data

   

Chapter 4.5-4.7

4

   

From Fixed Size to Arbitrary Size

   

Chapter 6.1-6.2, Chapter 9.3-9.4

5

   

Design with Arbitrary-Size Data

   

Chapter 8, Chapter 9, Chapter 10, Chapter 11

6

   

Function Abstractions

   

Chapter 14, Chapter 15

7

   

Scope

   

Chapter 16.1

8

   

Design Recipe for Abstractions; Lambda

   

Chapter 16.2-16.7, Intermezzo: Scope

9

   

Multiple Complex Inputs; Trees

   

Chapter 17, Chapter 23

10

   

Mutually Recursive Data

   

Chapter 19

11

   

Graphs, Accumulators

   

Chapter 31, Chapter 32, Chapter 33

12

   

Generative Recursion

   

Chapter 33, Chapter 25, Chapter 26, Chapter 28, Chapter 29

13

   

Advanced Topics

   

14

   

Wrapping Things Up

   

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.

Detailed Lecture Schedule🔗

Homeworks are due at 9:00pm on the day they are listed in the schedule.

Week 1

 

Class Motivation; Basic Programming

01/06

 

1. Why CS; Basic arithmetic; Course administrivia

 

01/08

 

2. Defining constants and functions; Simple animations

 

01/09

 

3. Booleans, conditionals, tests

 

01/10

 

Lab 1

 

    

Week 2

 

Introduction to Design

01/13

 

4. The Design Recipe

 

01/15

 

5. World Programs

 

01/15

 

Homework due at 9pm

 

HW 01

01/16

 

6. Structure type definitions

 

01/17

 

Lab 2

 

    

Week 3

 

Design with Fixed-Size Data

01/20

 

MLK Day (no classes)

 

01/22

 

7. Practicing structures

 

01/22

 

Homework due at 9pm

 

HW 02

01/23

 

8. World Program design with structures

 

01/24

 

Lab 3

 

    

Week 4

 

From Fixed Size to Arbitrary Size

01/27

 

9. Union data

 

01/29

 

10. Nested fixed-size data

 

01/29

 

Homework due at 9pm

 

HW 03

01/30

 

11. Self-referential data definitions

 

01/31

 

Lab 4

 

    

Week 5

 

Design with Arbitrary-Size Data

02/03

 

12. Lists; Functions on lists

 

02/05

 

13. Lists of structures; Practicing programs with lists

 

02/05

 

Homework due at 9pm

 

HW 04

02/06

 

14. Similarities in functions

 

02/07

 

Lab 5 (new partners assigned)

 

    

Week 6

 

Function Abstractions

02/10

 

15. Abstracting function behavior

 

02/12

 

16. ISL-provided abstractions

 

02/12

 

Homework due at 9pm

 

HW 05

02/13

 

17. Practicing function abstractions

 

02/14

 

Lab 6

 

    

Week 7

 

Scope

Exam coming up: 02/20 @ 6pm-8pm

02/17

 

Presidents Day (no classes)

 

02/19

 

18. Scope and Local

 

02/19

 

Homework due at 9pm

 

HW 06

02/20

 

Exam 1 prep

 

02/21

 

No Lab!

 

    

Week 8

 

Design Recipe for Abstractions; Lambda

02/24

 

19. Design Recipe for abstractions

 

02/26

 

20. Practice: Design Recipe for abstractions

 

02/26

 

Homework due at 9pm

 

HW 07

02/27

 

21. Function abstractions with 'Lambda'

 

02/28

 

Lab 7

 

    

Week 9

 

Multiple Complex Inputs; Trees

03/10

 

22. Multiple complex inputs

 

03/12

 

23. Practice: Multiple complex inputs

 

03/12

 

Homework due at 9pm

 

HW 08

03/13

 

24. Trees

 

03/14

 

Lab 8 (new partners assigned)

 

    

Week 10

 

Mutually Recursive Data

03/17

 

25. Mutually recursive data

 

03/19

 

26. Practice: Mutually recursive data

 

03/19

 

Homework due at 9pm

 

HW 09

03/20

 

27. Catch-up Day

 

03/21

 

Lab 9

 

    

Week 11

 

Graphs, Accumulators

03/24

 

28. Introducing graphs

 

03/26

 

29. Functions on graphs

 

03/26

 

Homework due at 9pm

 

HW 10

03/27

 

30. Accumulators

 

03/28

 

Lab 10

 

    

Week 12

 

Generative Recursion

03/31

 

31. Practice: Accumulator-based functions

 

04/02

 

32. Generative recursion

 

04/02

 

Homework due at 9pm

 

HW 11

04/03

 

33. Practicing generative recursion

 

04/04

 

Lab 11

 

    

Week 13

 

Advanced Topics

Exam coming up: 04/07 @ 6pm-9pm

04/07

 

Exam 2 prep

 

04/09

 

Exam 2 discussion

 

04/09

 

Homework due at 9pm

 

HW 12

04/10

 

34. Advanced topics

 

04/11

 

No lab!

 

    

Week 14

 

Wrapping Things Up

04/14

 

35. Wrapping up, AMA