Versions Compared

Key

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

...

 

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 Ch. 18

L 7

 

 

 

 

8

Fri

Jan 29

Functions as Values

Read Chs. 21-22

L 8

HW 3

Fri Feb 5

 

 

9

Mon

Feb 01

Functional Abstraction and Polymorphism

Read Chs. 19-20

L 9

 

 

Lab 3

 

10

Wed

Feb 03

Lambda the Ultimate

Read Ch. 24

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

Clever Programming With Functions

Review prior readings

L 15

 

 

Lab 5

210 Exam 1
210 Exam 2

16

Wed

Feb 17

Vectors and Iteration

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

L 18

 

 

Lab 6

parse/unparse

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.dj1
IntListTest.dj1

-

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.dj1
ObjectListTest.dj1

22

Wed

Mar 10

Polymorphism and Interfaces

OO Design Notes Ch 1.8

L 22

 

 

 

ComparableList.dj1
ComparableListTest.dj1

23

Fri

Mar 12

Handling Exceptions and Errors

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
IntListVisitor.dj1
IntListTest.dj1

25

Wed

Mar 17

Visitors, Visitors, Vistors ...

OO Design Notes Ch 1.11

L 25

 

 

 

26

Fri

Mar 19

Full Java, Arrays, Mutation

OO Design Notes Ch 1.13

L 26

HW 9

Wed Mar 31

 

IntList.java
IntListTest.java

27

Mon

Mar 22

Visibility, Type-Checking, and Generics

OO Design Notes Ch. 1.10, 1.13

L 27

 

 

Lab 9

List.java
ListTest.java

28

Wed

Mar 24

Generics with Discretion

 

L 28

 

 

 

 

29

Fri

Mar 26

Mutation and Bi-Directional Linked Lists

OO Design Notes Ch 1.13

L 29

 

 

 

 

30

Mon

Mar 29

Graphical User Interfaces

OO Design Notes Ch 3

L 30

 

 

Lab 10

 

31

Wed

Mar 31

Anonymous Inner Classes and Task Decomposition

OO Design Notes Ch 2.1

L 31

HW 10

 

 

BigBiList.java
BigBiListTest.java

-

Fri

Apr 2

School Holiday

 

 

 

 

 

 

32

Mon

Apr 5

Mutable Trees

OO Design Notes Ch 2.1

L 32

 

 

Lab 11

TreeMap.java
TreeMapTest.java
OOTreeMap.java
OOTreeMapTest.java

33

Wed

Apr 7

Review: Confronting the Reality of Full Java

 

L 33

 

 

 

 

34

Fri

Apr 9

QuickSort Revisited

 

L 34

HW 11

 

 

FunctionalQuicksort.java
CallableQuicksort.java
CallableQuicksortAlternateOrder.java
ParallelQuicksort.java
QuicksortWithComparable.java
QuicksortTest.java

35

Mon

Apr 12

Graphical User Interfaces II

OO Design Notes

L 35

 

 

Lab 12

 

36

Wed

Apr 14

OO Sorting Algorithms

 

L 36

 

 

 

Design Patterns for Sorting
Design Patterns for Sorting SIGCSE paper.pdf
Sorter Demo code.zip

37

Fri

Apr 16

Fast Searching with Balanced Trees

 

L 37

HW 12

 

 

Red-Black Trees
Animated PPT
OOPSLA paper on balanced trees
Executable demo
Demo source code

38

Mon

Apr 19

Fast Searching and Memoization

 

L 38

 

 

Lab 13

MyHashMap.java
MyHashMapTest.java
BetterMath.java

39

Wed

Apr 21

Parallel Programming Tradeoffs

 

L 39

 

 

 

 

40

Fri

Apr 23

Exam II Review

 

L 40

 

 

Lab 14

 

...