On this page:
Details
DrRacket
6.6

Syllabus

Week

   

Topic

   

Readings

1

   

Introduction to programming

   

Prologue, Chapter 1 (up to and including 1.4), Chapter 2 (up to and including 2.4), Chapter 4 (up to and including 4.4)

2

   

Introduction to design

   

Chapter 1 (1.5-1.7), Chapter 3, Chapter 4 (4.5 - 4.7)

3

   

Posns

   

Chapter 5 (up to and including 5.3)

4

   

Customizing structured data

   

Chapter 5, Chapter 6 (up to and including 6.2), Review of BSL

5

   

Designing with arbitrarily large data

   

Chapter 9 section 4

6

   

Designing with lists

   

Chapter 8, Chapter 9, Chapter 10

7

   

Snake game

   

8

   

Abstractions

   

Chapter 14, Chapter 15, Chapter 16 (up to and including 16.1)

9

   

SPRING BREAK - NO CLASSES

   

10

   

Local, scope, and anonymous functions

   

Chapter 16 (16.2-16.7), Chapter 17, Scope

11

   

Trees and mutually recursive data

   

Chapter 19 (up to and including 19.4)

12

   

Graphs and accumulators

   

Chapter 31, Chapter 32, Chapter 33

13

   

Accumulators and generative recursion

   

Chapter 25, Chapter 26

14

   

TBD

   

15

   

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 problem sets 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 problem sets, if any, will be based on this material.

Details

Assignments are due at 8:59 pm on the day they are listed.

Week 1

   

Introduction to programming

01/07

   

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

   

01/09

   

2. Defining functions on numbers, strings, images; Defining functions with more than one input

   

01/10

   

3. Booleans and conditionals; enumerated data; functions on enumerated data

   

01/11

   

Lab 1

   

    

Week 2

   

Introduction to design

01/14

   

4. Unions; functions on union data

   

Assignment 1

01/16

   

5. The design recipe for data and functions

   

01/17

   

6. World programs

   

Assignment 2

01/18

   

Lab 2

   

    

Week 3

   

Posns

01/21

   

MLK Day - no class

   

01/23

   

7. More on world programs; An introduction to Posns

   

01/24

   

8. A world program with Posns

   

Assignment 3

01/25

   

Lab 3

   

    

Week 4

   

Customizing structured data

01/28

   

9. Designing structure data definitions; working with custom structures

   

Assignment 4

01/30

   

10. A world program with custom structures

   

01/31

   

11. Practice with structure data

   

Assignment 5

02/01

   

Lab 4 (partner assignment (effective for homework 6))

   

    

Week 5

   

Designing with arbitrarily large data

02/04

   

12. Arbitrarily large data; self-referential data

   

Assignment 6

02/06

   

13. Designing functions over arbitrarily large data

   

02/07

   

14. A world program with arbitrarily large data

   

Assignment 7

02/08

   

Lab 5

   

    

Week 6

   

Designing with lists

02/11

   

Lists; functions on lists

   

Assignment 8

02/13

   

15. Lists of structures; structures of lists

   

02/14

   

16. Practice designing functions on lists

   

Assignment 9

02/15

   

Lab 6 (partner re-assignment (effective for homework 10))

   

    

Week 7

   

Snake game

Midterm coming up: 02/20 @ 6:00-9:00pm

02/18

   

President's Day - no class; Review session for exam 1

   

02/20

   

17. Snake game - Day 1

   

02/21

   

18. Snake game - Day 2

   

    

Week 8

   

Abstractions

02/25

   

19. Snake game - Day 3

   

Assignment 10

02/27

   

20. Similarities in functions; designing abstractions

   

02/28

   

21. DrRacket provided abstractions

   

Assignment 11

03/01

   

Lab 7

   

    

Week 9

   

SPRING BREAK - NO CLASSES

    

Week 10

   

Local, scope, and anonymous functions

03/11

   

22. Local and scope; functions as values

   

03/13

   

23. Practice with list abstractions and local

   

03/14

   

24. Anonymous functions; lambda

   

Assignment 12

03/15

   

Lab 8

   

    

Week 11

   

Trees and mutually recursive data

03/18

   

25. Practice with list abstractions and lambda

   

Assignment 13

03/20

   

26. Trees

   

03/21

   

27. Mutually recursive data

   

Assignment 14

03/22

   

Lab 9 (partner re-assignment (effective for homework 16))

   

    

Week 12

   

Graphs and accumulators

03/25

   

Practice with mutually recursive data

   

Assignment 15

03/27

   

28. Graphs; functions on graphs

   

03/28

   

29. Accumulators

   

Assignment 16

03/29

   

Lab 10

   

    

Week 13

   

Accumulators and generative recursion

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

03/31

   

Review session for exam 2

   

04/01

   

30. Practice with accumulators

   

Assignment 17

04/03

   

31. Generative recursion

   

04/04

   

32. Practice with generative recursion

   

    

Week 14

   

TBD

04/08

   

33. TBD

   

Assignment 18

04/10

   

34. TBD

   

04/11

   

35. TBD

   

Assignment 19

04/12

   

Lab 11

   

    

Week 15

   

Wrap up

04/15

   

Patriot's day - no class

   

04/17

   

36. Wrap up; Q+A session