On this page:
Details
DrRacket
6.10

Syllabus

Week

   

Topic

   

Readings

1

   

Introduction to programming

   

Prologue, I

2

   

Introduction to design

   

I, Design of Programs, Structural Design (1), Structural Design (2)

3

   

Designing with arbitrarily large data

   

II, Structural Design (2), Complete Programs

4

   

Abstraction

   

III, Design of Abstractions

5

   

Abstraction, Intertwined Data, Trees

   

III, Using Abstractions, maps, S-expressions, Structural Design (3), Nameless Functions, Lexical Scope

6

   

Graphs, Generative Recursion

   

V, Generative Design, Graph Traversal, Design w/ Accumulators

7

   

Accumulators, BSL interpreter

   

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.

Details

Assignments are due at 9:00 pm on the day they are listed (either Monday or Wednesday).

We will not accept late submissions.

Week 1

   

Introduction to programming

05/07

   

Why CS; Arithmetic of numbers, strings; Administrivia

05/08

   

Arithmetic of images, functions, simple animations, Lab 1

05/09

   

Arithmetic of booleans, conditionals in functions, Intervals

   

Assignment 1

05/10

   

Enumerations, Structures, Lab 2

    

Week 2

   

Introduction to design

05/14

   

Posns, structure type definitions, Steps of function design

   

Assignment 2

05/15

   

Functions on structures, Lab 3

05/16

   

Itemizations, functions on itemizations

   

Assignment 3

05/17

   

Self-referential data definitions, Lab 4

    

Week 3

   

Designing with arbitrarily large data

05/21

   

Self-referential unions, Lists

   

Assignment 4

05/22

   

Lists, Functions on Lists, Lab 5

05/23

   

Design of a list-based world program, 1

   

Assignment 5

05/24

   

Design of a list-based world program, 2; Processing two complex inputs

    

Week 4

   

Abstraction

Midterm coming up: 05/31 @ in class

05/28

   

Memorial Day, No class

05/29

   

Similarities in functions

   

Assignment 6

05/30

   

Abstractions over similar functions

05/31

   

Exam 1

    

Week 5

   

Abstraction, Intertwined Data, Trees

06/04

   

Abstracting over DDs, Existing abstractions

   

Assignment 6

06/05

   

Lambda and Scope

06/06

   

Sets, Mutual Recursion, S-expressions

   

Assignment 7

06/07

   

Trees and Forests

    

Week 6

   

Graphs, Generative Recursion

06/11

   

Graphs

   

Assignment 8

06/12

   

Generative Recursion

06/13

   

Generative Recursion

06/14

   

Accumulators

   

Assignment 9

    

Week 7

   

Accumulators, BSL interpreter

Midterm coming up: 06/20 @ in class

06/18

   

Accumulators

06/19

   

BSL Interpreter

   

Assignment 10

06/20

   

Exam 2

06/21

   

Wrap-up