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 (up to and including 1.4), Chapter 2 (up to and including 2.4), Chapter 4 (up to and including 4.4), Chapter 1 (1.5-1.7)

2

   

Introduction to design

   

Chapter 3, Chapter 4 (4.5 - 4.7), Chapter 5, Chapter 6 (up to and including 6.2), Review of BSL

3

   

Designing with arbitrarily large data

   

Chapter 8, Chapter 9, Chapter 10

4

   

Abstraction

   

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

5

   

Abstraction, Intertwined Data, Trees

   

III, Chapter 16 (16.2-16.7), Chapter 17, Scope, Chapter 19 (up to and including 19.4)

6

   

Graphs, Generative Recursion

   

Chapter 31, Chapter 32, Chapter 33

7

   

Accumulators, BSL interpreter

   

Chapter 25, Chapter 26

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 10:00 pm on the day they are listed (either Tuesday or Thursday).

See the late policy about late submissions.

Week 1

   

Introduction to programming

05/06

   

Why CS; Arithmetic of numbers, strings; Administrivia, Lab 0

05/07

   

Arithmetic of images, functions, simple animations

05/08

   

Arithmetic of booleans, Conditionals, Intervals, Lab 1

05/09

   

Enumerations, Structures

    

Week 2

   

Introduction to design

05/13

   

Posns, structure type definitions, Steps of function design, Lab 2

05/14

   

Functions on structures

05/15

   

Itemizations, functions on itemizations, Lab 3

05/16

   

Self-referential data definitions

    

Week 3

   

Designing with arbitrarily large data

05/20

   

Self-referential unions, Lists, Lab 4

05/21

   

Lists, Functions on Lists

05/22

   

Design of a list-based world program, 1, Lab 5

05/23

   

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

    

Week 4

   

Abstraction

Midterm coming up: 05/30 @ in class

05/27

   

Memorial Day, No class

05/28

   

Similarities in functions

05/29

   

Abstractions over similar functions, Lab 6

05/30

   

Exam 1

    

Week 5

   

Abstraction, Intertwined Data, Trees

06/03

   

Abstracting over DDs, Existing abstractions, Lab 7

06/04

   

Lambda and Scope

06/05

   

Sets, Mutual Recursion, S-expressions, Lab 8

06/06

   

Trees and Forests

    

Week 6

   

Graphs, Generative Recursion

06/10

   

Graphs, Lab 9

06/11

   

Generative Recursion

06/12

   

Generative Recursion, Lab 10

06/13

   

Accumulators

    

Week 7

   

Accumulators, BSL interpreter

Midterm coming up: 06/19 @ in class

06/17

   

Accumulators, Lab 11

06/18

   

BSL Interpreter

06/19

   

Exam 2

06/20

   

Wrap-up