On this page:
Details
Calendar
DrRacket
6.10

Syllabus

This web page is deprecated. Please see the main page for Fundamentals I.

Week

   

Topic

   

Readings

1

   

Introduction to programming

   

Prologue

2

   

Introduction to design

   

I, Design of Programs

3

   

Designing with fixed-size data

   

I, Structural Design (1)

4

   

Designing with arbitrarily large data (1)

   

II, Structural Design (2)

5

   

Designing with arbitrarily large data (2)

   

II, Complete Programs

6

   

Designing abstractions

   

III, Design of Abstractions

7

   

Using abstractions

   

III, Using Abstractions, maps, Lexical Scope

8

   

Designing with tree data

   

IV, S-expressions, Structural Design (3), Nameless Functions

9

   

Complex data types and mutually recursive data

   

IV, S-expressions

10

   

Generative Recursion

   

V, Generative Design

11

   

Graphs and accumulators

   

V, VI, Graph Traversal, Design w/ Accumulators

12

   

Accumulators

   

13

   

Underpinnings

   

14

   

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/08

   

Why CS; Arithmetic of numbers, strings; Administrivia

   

01/10

   

Arithmetic of images, functions, simple animations

   

01/11

   

Booleans, conditionals, and big-bang

   

01/12

   

Lab 1 (partner assignment)

   

    

Week 2

   

Introduction to design

01/15

   

MLK Day

   

01/17

   

Intervals & conditionals

   

01/18

   

Posns and structure type definitions

   

01/19

   

Lab 2

   

    

Week 3

   

Designing with fixed-size data

01/22

   

Design recipe

   

01/24

   

The Universe of Data, structures, functions on structures

   

01/25

   

Unions

   

01/26

   

Lab 3

   

    

Week 4

   

Designing with arbitrarily large data (1)

01/29

   

Self-referential data definition

   

01/31

   

Lists and designing functions on lists (part 1)

   

02/01

   

Lists and designing functions on lists (part 2)

   

02/02

   

Lab 4

   

    

Week 5

   

Designing with arbitrarily large data (2)

02/05

   

Structures in lists, lists in structures

   

02/07

   

Practice with recursive templates

   

02/08

   

Practice with recursive functions

   

02/09

   

Lab 5

   

    

Week 6

   

Designing abstractions

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

02/12

   

Similarities in functions

   

02/14

   

Designing abstractions: functions

   

02/15

   

Designing abstractions: data definitions, signatures

   

    

Week 7

   

Using abstractions

02/19

   

Presidents' Day

   

02/21

   

Introducing local scope

   

02/22

   

Designing with existing abstractions and local

   

02/23

   

Lab 6 (partner swap)

   

    

Week 8

   

Designing with tree data

02/26

   

Practice with local

   

02/28

   

Trees

   

03/01

   

Trees and Forests

   

03/02

   

Lab 7

   

    

Week 9

   

Complex data types and mutually recursive data

03/12

   

Mutual recursion

   

03/14

   

S-expressions

   

03/15

   

Processing two complex inputs

   

03/16

   

Lab 8

   

    

Week 10

   

Generative Recursion

03/19

   

Sets

   

03/21

   

Merge sort

   

03/22

   

Binary search

   

03/23

   

Lab 9 (partner swap)

   

    

Week 11

   

Graphs and accumulators

03/26

   

Generative recursion

   

03/28

   

Graphs (part 1)

   

03/29

   

Graphs (part 2 - traversal)

   

03/30

   

Lab 10

   

    

Week 12

   

Accumulators

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

04/02

   

Accumulators

   

04/04

   

Accumulators

   

04/05

   

BSL Interpreter (part 1)

   

    

Week 13

   

Underpinnings

04/09

   

Universe

   

04/11

   

Universe

   

04/12

   

Universe

   

04/13

   

Lab 12

   

    

Week 14

   

Wrap up

04/16

   

Patriot's Day

   

04/18

   

Wrap up

   

    

Calendar

Here are HTML and iCal versions of the above. It includes all-day events for days when homeworks are due and events for the exams and exam reviews. Feel free to add them to your favorite calendar app.