8.11

Schedule

There are generally two homeworks due each week: one on Tuesday (the "A" homework) and one on Thursday (the "B" homework) – both are due at 9PM .

The Tuesday homework can be done solo or with a partner, assuming the partnership has been approved by a member of the instruction team. You may only work with a given person for up to 4 homeworks, after which you must switch. This homework may be autograded, manually graded, or some combination. It will not cover any material beyond the previous Monday, so you will have a week to work on it.

The Thursday homework, which will be entirely autograded (and feedback available immediately, with no hidden tests delayed until after the deadline), must be completed solo. It is intended to ensure you are keeping up with the material for the week, and may cover material that was covered in lecture on Wednesday.

Each date (under Lecture & Notes) links to full notes for the day, which will be posted after the lecture.

Week

Lecture Notes

Homework

Exam

1 (Intro/Prop Logic):

1/8 ~ 1/10 ~ 1/11

1B

2 (Atomic Data):

1/17 ~ 1/18

2A ~ 2B

3 (Atomic Data II):

1/22 ~ 1/24 ~ 1/25

3A ~ 3B

4 (Itemizations / Compound Data):

1/29 ~ 1/31 ~ 2/1

4A

2/1*

5 (Recursive Data):

2/5 ~ 2/7 ~ 2/8

5A ~ 5B

6 (Functions as Data):

2/12 ~ 2/14 ~ 2/15

6A ~ 6B

7 (Programming Against Interfaces):

2/21 ~ 2/22

7A ~ 7B

8 (Design & Temporal Specifications):

2/26 ~ 2/28 ~ 2/29

8A

2/29*

SPRING BREAK

9 (Mutation):

3/11 ~ 3/13 ~ 3/14

9B

10 (Concurrency):

3/18 ~ 3/20 ~ 3/21

10A ~ 10B

11 (Big-O & Performance):

3/25 ~ 3/27 ~ 3/28

11A ~ 11B

12 (Resources & Theorem Proving):

4/1 ~ 4/3 ~ 4/4

12A ~ 12B

13 (Interactive Theorem Proving):

4/8 ~ 4/10 ~ 4/11

4/10*

14 (AI)

4/17

14A

* Exams will take place in class.