On this page:
Detailed Lecture Schedule
DrRacket
7.5

Syllabus

Week

   

Topic

   

Readings

1

   

Basic Programming

   

Prologue, Chapter 1, Chapter 2

2

   

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 Data

   

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

   

Scoping; Design Recipe for Abstractions

   

Chapter 16.2-16.7, Intermezzo: Scope

9

   

Lambda; Multiple Complex Inputs

   

Chapter 17, Chapter 23

10

   

Mutually Recursive Data

   

Chapter 19

11

   

Graphs

   

12

   

Accumulators and Generative Recursion

   

Chapter 25, Chapter 26, Chapter 28, Chapter 29, Chapter 31, Chapter 32, Chapter 33

13

   

Wrapping Things Up

   

14

   

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

Week 1

 

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

 

6. Practicing World Programs

 

01/16

 

Homework due at 9pm

 

01/17

 

Lab 2

 

HW 01

    

Week 3

 

Design with Fixed-Size Data

01/20

 

Martin Luther King Jr. Day (no classes)

 

01/22

 

7. Structure type definitions

 

01/23

 

8. Practicing structures

 

01/23

 

Homework due at 9pm

 

01/24

 

Lab 3

 

HW 02

    

Week 4

 

From Fixed-Size to Arbitrary-Size Data

01/27

 

9. Union data

 

01/29

 

10. Arbitrary-size data

 

01/30

 

11. Self-referential data definitions

 

01/30

 

Homework due at 9pm

 

01/31

 

Lab 4

 

HW 03

    

Week 5

 

Design with Arbitrary-Size Data

02/03

 

12. Practicing self-referential data definitions

 

02/05

 

13. Lists; Functions on lists

 

02/06

 

14. Lists of structures; Practicing programs with lists

 

02/06

 

Homework due at 9pm

 

02/07

 

Lab 5 (partners assigned)

 

HW 04

02/09

 

Exam 1 review session (6-8pm)

 

    

Week 6

 

Function Abstractions

Midterm coming up: 02/13 @ 6:00-8:00pm

02/10

 

15. Similarities in functions

 

02/12

 

16. Abstracting function behavior

 

02/13

 

17. ISL-provided abstractions; Midterm prep

 

02/13

 

Homework due at 9pm

 

02/14

 

No Lab Today!

 

HW 05

    

Week 7

 

Practice: Function Abstractions

02/17

 

Presidents' Day (no classes)

 

02/19

 

18. ISL-provided abstractions; Midterm discussion

 

02/20

 

19. Practicing function abstractions

 

02/20

 

Homework due at 9pm

 

02/21

 

Lab 6

 

HW 06

    

Week 8

 

Scoping; Design Recipe for Abstractions

02/24

 

20. Scope and Local

 

02/26

 

21. Design Recipe for abstractions

 

02/27

 

22. Practice: Design Recipe for abstractions

 

02/27

 

Homework due at 9pm

 

02/28

 

Lab 7

 

HW 07

    

Week 9

 

Lambda; Multiple Complex Inputs

03/09

 

23. Review abstractions; Lambda and its uses

 

03/11

 

24. Multiple complex inputs

 

03/12

 

25. Practice: Multiple complex inputs

 

03/12

 

Homework due at 9pm

 

03/13

 

Lab 8 (new partners assigned)

 

HW 08

    

Week 10

 

Mutually Recursive Data

03/16

 

26. Trees

 

03/18

 

27. Mutually recursive data

 

03/19

 

28. Practice: Mutually recursive data

 

03/19

 

Homework due at 9pm

 

03/20

 

Lab 9

 

HW 09

    

Week 11

 

Graphs

03/23

 

29. Introducing graphs

 

03/25

 

30. Ad-hoc functions on graphs

 

03/26

 

31. Practice: Functions on graphs

 

03/26

 

Homework due at 9pm

 

03/27

 

Lab 10

 

HW 10

    

Week 12

 

Accumulators and Generative Recursion

03/30

 

32. Accumulators

 

04/01

 

33. Practice: Accumulator-based functions

 

04/02

 

34. Design Recipe for generative recursion

 

04/02

 

Homework due at 9pm

 

04/03

 

Lab 11

 

HW 11

04/05

 

Exam 2 review session (6-8pm)

 

    

Week 13

 

Wrapping Things Up

Midterm coming up: 04/07 @ 6:00pm-9:00pm

04/06

 

35. Exam prep; General Practice

 

04/08

 

36. Second Midterm discussion; Practicing generative recursion

 

04/09

 

37. Section-specific lecture

 

04/09

 

Homework due at 9pm

 

04/10

 

No Lab Today!

 

    

Week 14

 

Really Wrapping Things Up

04/13

 

38. Section-specific lecture

 

HW 12