Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note that future date schedules are only guidelines. Future homeworks and slides may contain materials from previous Comp 210 and Comp 212 classes. New material will be provided before the corresponding class. There will only be two exams in the course: one given on functional programming during week 7 and one on object-oriented programming given during in the last week of the course. Both are take-home exams. There is no final examination.

 

Day

Date(2009)

Topic

Reading

Lectures

Problems

Due(2009)

Lab

Supplements

1

Mon

Jan 11

Introduction

 

L 1

HW 0

W Jan 13

Lab 0

Pair Programming

2

Wed

Jan 13

Scheme primitives; function and data definitions

Skim Chs. 1-10

L 2

HW 1

F Jan 22

 

 

3

Fri

Jan 15

Inductive data, conditionals, and the design recipe

Review Chs. 1-10

L 3

 

 

 

 

Mon

Jan 18

School Holiday

 

 

 

 

 

 

4

Wed

Jan 20

Data-directed design I

Read Chs. 11-13

L 4

 

 

Lab 1

 

5

Fri

Jan 22

Data-directed design II

Read Chs. 14-15

L 5

HW 2

Fri Jan 29

 

 

6

Mon

Jan 25

Mutually Referential Data Definitions

Skim Chs. 16-17

L 6

 

 

Lab 2

 

7

Wed

Jan 27

Local definitions and Lexical Scope

Read Chs. 18-19

L 7

 

 

 

 

8

Fri

Jan 29

Functional Abstraction and Polymorphism

Read Ch. 20

L 8

HW 3

Fri Feb 5

 

 

9

Mon

Feb 01

Functions as Values

Read Chs. 21-22

L 9

 

 

Lab 3

 

10

Wed

Feb 03

Lambda the Ultimate

Study Chs. 21-22

L 10

 

 

 

 

11

Fri

Feb 05

Generative Recursion

Read Chs. 25-28

L 11

HW 4

Fri Feb 15

 

 

12

Mon

Feb 08

Generative Recursion Illustrated

Study Chs. 25-28

L 12

 

 

Lab 4

 

13

Wed

Feb 10

Complexity and Accumulators

Read Chs. 29.1-2
Skim Chs. 30-32

L 13

 

 

 

 

14

Fri

Feb 12

Accumulators and Tail Calls

Read Chs. 30-32

L 14

HW 5

Fri Feb 19

 

 

15

Mon

Feb 15

Review and First-Class Functions

Review prior readings

L 15

 

 

Lab 5

210 Exam 1
210 Exam 2

16

Wed

Feb 17

Powerful Functionals

Review prior readings

L 16

 

 

 

 

17

Fri

Feb 19

Exam Review

Review prior readings

L 17

HW 6 (optional)
Exam 1

Fri Feb 26

 

 

18

Mon

Feb 22

On to Java

OO Design Notes Ch 1.1-1.4.1

L 18

 

 

Lab 6

parse/unparse (https:wikiriceedudisplayCSWIKI211parsess)

19

Wed

Feb 24

Java Design Recipe

OO Design Notes Ch 1.1-1.4

L 19

 

 

 

 

20

Fri

Feb 26

Defining Inductive Data in Java

OO Design Notes Ch 1.5

L 20

HW 7

 

 

IntList (https:wikiriceedudisplayCSWIKI211IntListdj0)
IntListTest (https:wikiriceedudisplayCSWIKI211IntListTestdj0)

M-F

Mar 01-05

Spring Break

 

 

 

 

 

 

21

Mon

Mar 08

Static Class Members and the Singleton Pattern

OO Design Notes Ch 1.6

L 21

 

 

Lab 7

ObjectList (https:wikiriceedudisplayCSWIKI211ObjectListdj1)
ObjectListTest (https:wikiriceedudisplayCSWIKI211ObjectListTestdj1)

22

Wed

Mar 10

Polymorphism and Interfaces

OO Design Notes Ch 1.8

L 22

 

 

 

ComparableList (https:wikiriceedudisplayCSWIKI211ComparableListdj1)
ComparableListTest (https:wikiriceedudisplayCSWIKI211ComparableListTestdj1)

23

Fri

Mar 12

Loose Ends and First-class Functions

OO Design Notes Ch 1.9-1.10, 1.12

L 23

HW 8

Fri Mar 13

 

 

24

Mon

Mar 15

The Strategy and Visitor Patterns

OO Design Notes Ch 1.9, 1.11

L 24

 

 

Lab 8

IntList.dj1 (https:wikiriceedudisplayCSWIKI211IntListdj1)
IntListTest.dj1 (https:wikiriceedudisplayCSWIKI211IntListTestdj1)

25

Wed

Mar 17

Visitors, Visitors, Vistors ...

OO Design Notes Ch 1.11

L 25

 

 

 

 

26

Fri

Mar 19

Full Java

OO Design Notes Ch 1.13

L 26

HW 9

Wed Mar 25

 

 

27

Mon

Mar 22

Visibility, Type-Checking, and Generics

OO Design Notes Ch. 1.10, 1.13

L 27

 

 

Lab 9

List.java (https:wikiriceedudisplayCSWIKI211Listjava)
ListTest.java (https:wikiriceedudisplayCSWIKI211ListTestjava)

28

Wed

Mar 24

Generics with Discretion

 

L 28

 

 

 

 

29

Fri

Mar 26

Mutation: Succumbing to the Dark Side?

OO Design Notes Ch 1.13

L 29

 

 

 

 

30

Mon

Mar 29

Arrays as Bounded Sequences

OO Design Notes Ch 2.1

L 30

 

 

Lab 10

 

31

Wed

Mar 31

Mutable Linked Lists

OO Design Notes Ch 2.1

L 31

HW 10

 

 

BigBiList.java (https:wikiriceedudisplayCSWIKI211BiListjava)
BigBiListTest.java (https:wikiriceedudisplayCSWIKI211BiListTestjava)

Fri

Apr 2

School Holiday

 

 

 

 

 

 

32

Mon

Apr 5

Mutable Trees

OO Design Notes Ch 2.1

L 32

 

 

 

TreeMap.java (https:wikiriceedudisplayCSWIKI211TreeMapjava)
TreeMapTest.java (https:wikiriceedudisplayCSWIKI211TreeMapTestjava)

33

Wed

Apr 7

Designing OO Data Structures

 

L 33

 

 

Lab 11

OOTreeMap.java (https:wikiriceedudisplayCSWIKI211OOTreeMapjava)
OOTreeMapTest.java (https:wikiriceedudisplayCSWIKI211OOTreeMapTestjava)

34

Fri

Apr 9

Efficient Representations of Maps and Sets

 

L 34

HW 11

 

 

Red-Black Trees

35

Mon

Apr 12

OO Design Retrospective

OO Design Notes

L 35

 

 

Lab 12

 

36

Wed

Apr 14

Fast Searching Methods I

OO Design Notes

L 36

 

 

 

 

37

Fri

Apr 16

Fast Searching Methods II

OO Design Notes

L 37

HW 12

 

 

 

38

Mon

Apr 19

Fast Sorting Methods

OO Design Notes

L 38

 

 

Lab 13

MyHashMap.java (https:wikiriceedudisplayCSWIKI211MyHashMapjava)
MyHashMapTest.java (https:wikiriceedudisplayCSWIKI211MyHashMapTestjava)

39

Wed

Apr 21

Graphical User Interfaces

OO Design Notes Ch. 3

 

 

 

 

 

40

Fri

Apr 23

Concurrency

 

 

 

 

 

 

...