On this page:
Detailed Lecture Schedule
DrRacket
7.9

Syllabus

Week

   

Topic

   

Readings

1

   

Class Motivation; Basic Programming

   

Prologue, Chapter 1, Chapter 2

2

   

More Basic Programming; Introduction to Design

   

Chapter 3, Chapter 4.1-4.4

3

   

Design with Fixed-Size Data

   

Chapter 5

4

   

From Fixed Size to Arbitrary Size

   

Chapter 4.5-4.7, 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

   

Practice: Function Abstractions

   

Chapter 16.1

8

   

Scope; Design Recipe for Abstractions

   

Chapter 16.2-16.7, Intermezzo: Scope

9

   

Lambda; Multiple Complex Inputs

   

Chapter 17, Chapter 23

10

   

Trees and Mutually Recursive Data

   

Chapter 19

11

   

Graphs

   

12

   

Accumulators

   

Chapter 31, Chapter 32, Chapter 33

13

   

Generative Recursion

   

Chapter 25, Chapter 26, Chapter 28, Chapter 29

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/20

 

1. Why CS; Basic arithmetic; Course administrivia

 

01/21

 

2. Defining constants and functions; Simple animations

 

01/22

 

Lab 1

 

    

Week 2

 

More Basic Programming; Introduction to Design

01/25

 

3. Booleans, conditionals, tests

 

01/27

 

4. The Design Recipe

 

01/28

 

5. World Programs

 

01/29

 

Lab 2

 

HW 01

01/29

 

Homework due at 9pm

 

    

Week 3

 

Design with Fixed-Size Data

02/01

 

6. Structure type definitions

 

02/03

 

7. Practicing structures

 

02/04

 

8. World Program design with structures

 

02/05

 

Lab 3

 

HW 02

02/05

 

Homework due at 9pm

 

    

Week 4

 

From Fixed Size to Arbitrary Size

02/08

 

9. Union data

 

02/10

 

10. Arbitrary-size data

 

02/11

 

11. Self-referential data definitions

 

02/12

 

Lab 4 (partners assigned)

 

HW 03

02/12

 

Homework due at 9pm

 

    

Week 5

 

Design with Arbitrary-Size Data

02/15

 

Presidents' Day (no classes)

 

02/17

 

12. Lists; Functions on lists

 

02/18

 

13. Lists of structures; Practicing programs with lists

 

02/19

 

Lab 5

 

HW 04

02/19

 

Homework due at 9pm

 

    

Week 6

 

Function Abstractions

Midterm coming up: 02/25 @ 12am-11:59pm

02/22

 

14. Similarities in functions

 

02/24

 

15. Midterm 1 prep

 

02/25

 

16. Abstracting function behavior

 

02/26

 

No Lab!

 

HW 05

02/26

 

Homework due at 9pm

 

    

Week 7

 

Practice: Function Abstractions

03/01

 

17. Midterm 1 discussion

 

03/03

 

18. ISL-provided abstractions

 

03/04

 

19. Practicing function abstractions

 

03/05

 

Lab 6

 

HW 06

03/05

 

Homework due at 9pm

 

    

Week 8

 

Scope; Design Recipe for Abstractions

03/08

 

20. Scope and Local

 

03/10

 

21. Design Recipe for abstractions

 

03/11

 

22. Practice: Design Recipe for abstractions

 

03/12

 

Lab 7

 

HW 07

03/12

 

Homework due at 9pm

 

    

Week 9

 

Lambda; Multiple Complex Inputs

03/15

 

23. Function abstractions with 'Lambda'

 

03/17

 

24. Multiple complex inputs

 

03/18

 

25. Practice: Multiple complex inputs

 

03/19

 

Lab 8 (new partners assigned)

 

HW 08

03/19

 

Homework due at 9pm

 

    

Week 10

 

Trees and Mutually Recursive Data

03/22

 

26. Trees

 

03/24

 

27. Mutually recursive data

 

03/25

 

28. Practice: Mutually recursive data

 

03/26

 

Lab 9

 

HW 09

03/26

 

Homework due at 9pm

 

    

Week 11

 

Graphs

03/29

 

29. Introducing graphs

 

03/31

 

30. Functions on graphs

 

04/01

 

31. Practice: Functions on graphs

 

04/02

 

Lab 10

 

HW 10

04/02

 

Homework due at 9pm

 

    

Week 12

 

Accumulators

Midterm coming up: 04/08 @ 12am-11:59pm

04/05

 

32. Accumulators

 

04/07

 

33. Midterm 2 prep

 

04/08

 

34. Practice: Accumulator-based functions

 

04/09

 

No lab!

 

HW 11

04/09

 

Homework due at 9pm

 

    

Week 13

 

Generative Recursion

04/12

 

35. Midterm 2 discussion

 

04/14

 

36. Generative recursion

 

04/15

 

37. Practicing generative recursion

 

04/16

 

No Lab!

 

HW 12

04/16

 

Homework due at 9pm

 

    

Week 14

 

Wrapping Things Up

04/21

 

38. General practice