On this page:
Details
DrRacket
7.8

Syllabus

Week

   

Topic

1

   

Programming & Computing; All Principles

   

Readings: 1, 2

2

   

How to Design Functions & Programs

   

Readings: 3.1, 3.3, 3.4, 3.5, 4.3, 4.4, 4.5, 5.4, 5.7, 4.6, 5.8, 6.1, 3.6

3

   

From Fixed-size Data to Large Data

   

Readings: 4.7, 5.9, 6.2, 8, 9.2, 9.3, 9.4

4

   

Designing Functions For Arbitrarily Large Data

   

Readings: 9, 10, 11

5

   

Designing Programs For Arbitrarily Large Data

   

Readings: 12, 14, 16.2, 16.3, 16.4

6

   

Design With Abstraction

   

Readings: 15, 16.5, 16.6, 16.7

7

   

General Design With Arbitrarily Large Data

   

Readings: 19, 20

8

   

Iterative Refinement

   

Readings: 17, 21, 23

9

   

Enforcing Signatures and Introduction to Graphs

   

Readings: 25, 26, 27

10

   

Designing With Generative Recursion

   

Readings: 31, 32, 33.2

11

   

Designing With Accumulators

   

Readings: 3.1, 3.4, 3.6, 4.6, 5.8, 6.1, 9, 11, 15, 16.6, 19.4, 20, 26, 32, 33.1

12

   

Typed Programming Languages

   

Readings: none

13

   

Type Checking & Compiling

   

Readings: none

14

   

Type Checking & Compiling II

   

Readings: none

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 Tuesdays at 9pm.

Week 1

   

Programming & Computing; All Principles

09/09

   

`hello world'

09/10

   

Algebra and Arithmetic, Information vs Data

Lab:

   

1 The Basics

    

Week 2

   

How to Design Functions & Programs

09/14

   

Designing Functions: the Overview

09/15

   

Homework due at 9pm

   

HW 1

09/16

   

Designing Functions: Some Practice

09/17

   

Desiging Programs: the Basics

Lab 2

    

Week 3

   

From Fixed-size Data to Large Data

Midterm coming up: 09/23 @ 1:35-2:40pm

09/21

   

Designing Programs: Some Practice

09/22

   

Homework due at 9pm

   

HW 2

09/23

   

Exam 0: are you better off In Regular Fundamentals I?

09/24

   

Representing Arbitrarily Large Data

Lab 3

    

Week 4

   

Designing Functions For Arbitrarily Large Data

09/28

   

Designing Functions: Arbitrarily Large Data

09/29

   

Homework due at 9pm

   

HW 3

09/30

   

Arbitrarily Large Data: Practice Design

10/01

   

Designing Functions via Composition

Lab 4

    

Week 5

   

Designing Programs For Arbitrarily Large Data

10/05

   

Designing Programs: Arbitrarily Large Data

10/06

   

Homework due at 9pm

   

HW 4

10/07

   

Local Definitions

10/08

   

Similar Functions & Functions As Values

Lab 5

    

Week 6

   

Design With Abstraction

10/12

   

Columbus Day

10/13

   

Homework due at 9pm

   

HW 5

10/14

   

Designing (with) Abstractions

10/15

   

Designing (with) Abstractions: Practice

Lab 6

    

Week 7

   

General Design With Arbitrarily Large Data

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

10/19

   

Designing with Abstractions: More Practice

10/20

   

Homework due at 9pm

   

HW 6

10/21

   

Designing Programs: S--expressions

10/22

   

Designing Programs: Trees

Lab 7

    

Week 8

   

Iterative Refinement

10/26

   

Designing Programs: Binary Search Trees

10/27

   

Homework due at 9pm

   

HW 7

10/28

   

Designing for Multiple Complex Arguments

10/29

   

Big-bang, Universe, and Client-Server Programs

Lab 8

    

Week 9

   

Enforcing Signatures and Introduction to Graphs

11/02

   

Designing Client-Server Programs

11/03

   

Homework due at 9pm

   

HW 8

11/04

   

Enforcing Signatures

11/05

   

Graphs with Generative Recursion and Accumulators

Lab 9

    

Week 10

   

Designing With Generative Recursion

11/09

   

Designing Generative Recursive Functions

11/10

   

Homework due at 9pm

   

HW 9

11/11

   

Veterans Day

11/12

   

Designing Generative Recursion, Practice

Lab 10

    

Week 11

   

Designing With Accumulators

11/16

   

The Need For Accumulator Design

09/17

   

Homework due at 9pm

   

HW 10

11/18

   

More Practice with Accumulators

11/19

   

Design Review

Lab 11

    

Week 12

   

Typed Programming Languages

11/23

   

Typed Programming Languages

11/25

   

Thanksgiving

11/26

   

Thanksgiving Day

Lab 12

    

Week 13

   

Type Checking & Compiling

Midterm coming up: 12/01 @ 6:00-9:00pm

11/30

   

Type Checking TypeLang

11/30

   

Homework due at 5pm, to be done individually

   

HW 11

12/02

   

Design of StackLang

12/03

   

Interpreter for StackLang

    

Week 14

   

Type Checking & Compiling II

12/07

   

Compiling TypeLang to StackLang

12/08

   

Homework due at 9pm

   

HW 12

12/09

   

Compiling TypeLang to StackLang II