On this page:
Details
DrRacket
6.6

Syllabus

This web page is deprecated.

Please see the main page for Fundamentals I.

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, Intermezzo: Scope

9

   

Practice with Abstraction, Multiple Complex Inputs

   

Chapter 23

10

   

Design with Mutually Recursive Data

   

Chapter 19

11

   

Graphs

   

12

   

Accumulators and Generative Recursion

   

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

13

   

A Very Short Week

   

14

   

More Generative Recursion, Wrap-Up

   

The topics are linked to detailed weekly lecture plans below. The readings point into the on-line version of the text book.

You are primarily responsible for the readings. The lectures will help you understand those and will occasionally add highly pragmatic tips. But, the weekly homeworks and the exams will cover the reading material.

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

Details

Homeworks are due at 6:00 pm exactly on the day they are listed. Reading quizzes must be submitted via Blackboard, whereas homeworks must be submitted via the handin server.

Week 1

 

Introduction to Programming

09/04

 

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

 

09/05

 

2. Defining constants, functions; Simple animations

 

    

Week 2

 

Introduction to Design

09/08

 

Reading quiz due at 6pm

 

09/09

 

3. Booleans, conditionals, tests

 

09/10

 

Lab 1

 

09/11

 

4. The Design Recipe

 

09/12

 

5. World Programs

 

09/13

 

Homework due at 6pm

 

HW 01

    

Week 3

 

Design with Fixed-Size Data

09/15

 

Reading quiz due at 6pm

 

09/16

 

6. Structure Type Definitions

 

09/17

 

Lab 2

 

09/18

 

7. Custom Structures

 

09/19

 

8. Practice With Structures

 

09/20

 

Homework due at 6pm

 

HW 02

    

Week 4

 

Towards Arbitrarily Large Data

09/22

 

Reading quiz due at 6pm

 

09/23

 

9. Union Data

 

09/24

 

Lab 3

 

09/25

 

10. Transition from Fixed-Size to Arbitrarily Large Data

 

09/26

 

11. Self-Referential Data Definitions

 

09/27

 

Homework due at 6pm

 

HW 03

    

Week 5

 

Design with Arbitrarily Large Data

09/29

 

Reading quiz due at 6pm

 

09/30

 

12. Lists and Designing Functions on Lists

 

10/01

 

Lab 4 (partners assigned)

 

10/02

 

13. Lists of Structures

 

10/03

 

14. Practice with Lists

 

10/04

 

Homework due at 6pm

 

HW 04

10/05

 

Exam 1 review session (4-6pm)

 

    

Week 6

 

Abstracting Functions

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

10/06

 

Reading quiz due at 6pm

 

10/07

 

15. Project Discussion, Exam Review

 

10/08

 

No Lab Today!

 

10/09

 

16. Similarities in Functions

 

10/10

 

17. Abstractions

 

10/11

 

Homework due at 6pm

 

HW 05

    

Week 7

 

Using Abstractions

10/13

 

Reading quiz due at 6pm

 

10/14

 

Columbus Day (no classes)

 

10/15

 

Lab 5

 

10/16

 

18. DrRacket-provided Abstractions

 

10/17

 

19. More DrRacket-provided Abstractions

 

10/18

 

Homework due at 6pm

 

HW 06

    

Week 8

 

Design with Abstractions, Lambda

10/20

 

Reading quiz due at 6pm

 

10/21

 

20. Scope and Local

 

10/22

 

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

 

10/23

 

21. Design Recipe for Abstractions

 

10/24

 

22. Lambda

 

10/25

 

Homework due at 6pm

 

HW 07

    

Week 9

 

Practice with Abstraction, Multiple Complex Inputs

10/27

 

Reading quiz due at 6pm

 

10/28

 

23. Discuss Project, Practice with Abstractions

 

10/29

 

Lab 7

 

10/30

 

24. Multiple Complex Inputs

 

10/31

 

25. Practice with Multiple Complex Inputs

 

11/01

 

Homework due at 6pm

 

HW 08

    

Week 10

 

Design with Mutually Recursive Data

11/03

 

Reading quiz due at 6pm

 

11/04

 

26. Trees

 

11/05

 

Lab 8

 

11/06

 

27. Mutually Recursive Data

 

11/07

 

28. Graphs

 

11/08

 

Homework due at 6pm

 

HW 09

    

Week 11

 

Graphs

11/10

 

Reading quiz due at 6pm

 

11/11

 

Veterans' Day (no classes)

 

11/12

 

Lab 9

 

11/13

 

29. Ad-hoc Functions on Graphs

 

11/14

 

30. Practice with Graphs, Exam Review

 

11/15

 

Homework due at 6pm

 

HW 10

    

Week 12

 

Accumulators and Generative Recursion

11/17

 

Reading quiz due at 6pm

 

11/18

 

31. Accumulators

 

11/19

 

Lab 10

 

11/20

 

32. Practice with Accumulators

 

11/21

 

33. Design Recipe for Generative Recursion

 

11/22

 

Homework due at 6pm

 

HW 11

11/23

 

Exam 2 review session (4-6pm)

 

    

Week 13

 

A Very Short Week

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

11/25

 

34. Exam Review

 

11/26

 

No Lab Today!

 

11/27

 

Thanksgiving break (no classes)

 

11/28

 

Thanksgiving break (no classes)

 

    

Week 14

 

More Generative Recursion, Wrap-Up

12/02

 

35. Practice with Generative Recursion

 

12/03

 

Lab 11

 

12/04

 

36. Wrap-Up, Homework due at 6pm

 

HW 12