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

W Jan 20

 

 

3

Fri

Jan 09

Inductive data, conditionals, and the design recipe

Review Chs. 1-10

L 3

 

 

 

 

 

4

Mon

Jan 12

Data-directed design I

Read Chs. 11-13

L 4

 

 

 

Lab 1

 

5

Wed

Jan 14

Data-directed design II

Read Chs. 14-15\

L 5 \

HW 2 (Solution to 12.4.2 (https:wikiriceedudisplayCSWIKI2111242solss)) \

Th Jan 22 \ \

 

\  

6

Fri

Jan 16 \

Mutually Referential Data Definitions \

Skim Chs. 16-17\

L 6 \ \

 

\   \

 

\  

-

Mon

Jan 19 \

School Holiday \

Review Chs. 16-17\ \

 

\   \

 

Lab 2\ \

 

7

Wed

Jan 21 \

Local definitions and Lexical Scope \

Read Chs. 18-19\

L 7 \

HW 3 \

Mon Feb 2 \ \

 

\  

8

Fri

Jan 23 \

Functional Abstraction and Polymorphism \

Read Ch. 20\

L 8 \ \

 

\   \

 

\  

9

Mon

Jan 26 \

Functions as Values \

Read Chs. 21-22\

L 9 \ \

 

\  

Lab 3 \ \

 

10

Wed

Jan 28 \

Lambda the Ultimate \

Study Chs. 21-22\

L 10 \ \

 

\   \

 

\  

11

Fri

Jan 30 \

Generative Recursion \

Read Chs. 25-28\

L 11 \

HW 4 \

Mon Feb 9 \ \

 

\  

12

Mon

Feb 02 \

Generative Recursion Illustrated \

Study Chs. 25-28\

L 12 \ \

 

\  

Lab 4\ \

 

13

Wed

Feb 04 \

Complexity and Accumulators \

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

L 13 \ \

 

\   \

 

\  

14

Fri

Feb 06 \

Accumulators and Tail Calls \

Read Chs. 30-32\

L 14 \

\

\

\

\

15

Mon

Feb 09 \

Review and First-Class Functions\

Review prior readings\

L 15 \

HW 5 \

Mon Feb 16 \

Lab 5 \

210 Exam 1, 210 Exam 2\

16

Wed

Feb 11 \

Powerful Functionals \

Review prior readings \

L 16 \

\

\

\

\

17

Fri

Feb 13 \

Exam Review \

Review prior readings \

L 17 \

Take-home exam \

\

\

Exam Errata \

18

Mon

Feb 16 \

On to Java\

OO Design Notes, Ch 1.1-1.4.1 \

L 18 \

HW 6 (Extra Credit) \

Mon Feb 23 \

Lab 6 \

parse/unparse (https:wikiriceedudisplayCSWIKI211parsess)\

19

Wed

Feb 18 \

Java Design Recipe \

OO Design Notes, Ch 1.1-1.4 \

L 19 \

\

\

\

\

20

Fri

Feb 20 \

Defining Inductive Data in Java \

OO Design Notes, Ch 1.5\

L 20 \

HW 7\

\

\

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

21

Mon

Feb 23 \

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

Feb 25 \

Polymorphism and Interfaces \

OO Design Notes, Ch 1.8\

L 22 \

\

\

\

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

23

Fri

Feb 27 \

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 9 \

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 11 \

Visitors, Visitors, Vistors ... \

OO Design Notes, Ch 1.11\

L 25 \

\

\

\

\

26

Fri

Mar 13 \

Full Java \

OO Design Notes, Ch 1.13\

L 26 \

HW 9 \

Wed Mar 25 \

\

\

27

Mon

Mar 16 \

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 18 \

Generics with Discretion \

\

L 28 \

\

\

\

\

29

Fri

Mar 20 \

Mutation: Succumbing to the Dark Side? \

OO Design Notes, Ch 1.13 \

L 29 \

\

\

\

\

30

Mon

Mar 23 \

Arrays as Bounded Sequences\

OO Design Notes, Ch 2.1 \

L 30 \

\

\

Lab 10\

\

31

Wed

Mar 25 \

Mutable Linked Lists\

OO Design Notes, Ch 2.1 \

L 31 \

HW 10 \

\

\

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

32

Fri

Mar 27 \

Mutable Trees \

OO Design Notes, Ch 2.1 \

L 32 \

\

\

\

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

33

Mon

Mar 30 \

Designing OO Data Structures \

\

L 33\

\

\

Lab 11\

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

34

Wed

Apr 1 \

Efficient Representations of Maps and Sets \

\

L 34\

HW 11 \

\

\

Okasaki's Red-Black Trees\

35

Fri

Apr 3 \

Rice Board Game Framework \

\

\

\

\

\

\

36

Mon

Apr 5 \

OO Design Retrospective \

OO Design Notes \

L 36\

\

\

Lab 12\

\

37

Wed

Apr 7 \

Faster Searching Methods \

OO Design Notes \

L 37\

\

\

\

\

38

Fri

Apr 9 \

The Othello Game Framework \

The Othello Game Framework \

\

HW 12\

\

\

\

39

Mon

Apr 13 \

Faster Searching Methods (Updated with code) \

OO Design Notes \

L 37\

\

\

Lab 13\

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

40

Wed

Apr 15 \

Fast Sorting Methods \

OO Design Notes \

L 40\

\

\

\

\

41

Fri

Apr 17 \

Graphical User Interfaces \

OO Design Notes, Ch. 3 \

L 40\

\

\

\

\

41+

Fri

Apr 24 \

Optional Othello Tournament \

\

Tournament Rules\

\

\

\

\

...

Here is a nice article about
the basic approach taken in this course.

More on CS:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
The New Turing Omnibus, A. K. Dewdney

QA76 .D448 1993

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Algorithmics: The Spirit of Computing, David Harel

QA76.9 .A43 H37 2004

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Computers Ltd.: What They Really Can't Do, David Harel

QA76.5 .H3575 2000

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Great Ideas in Computer Science, Alan W. Biermann

QA76 .B495 1997

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Computer Science: An Overview, J. Glenn Brookshear

QA76 .B743 1997

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
G�del, Escher, Bach: An Eternal Golden Braid, Douglas Hofstadter

QA9.8 .H63 1980

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Metamagical Themas, Douglas Hofstadter

Q335 .H63 1985

 

 

 

If you liked Scheme, you'll love these resources:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Google's MapReduce

(Online)

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
The Little Schemer, Friedman & Felleisen

QA76.73 .S34 F75 1996

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
The Seasoned Schemer, Friedman & Felleisen

QA76.73 .S34 F77 1996

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Developing Applications with Objective Caml, Emmanuel Chailloux, Pascal Manoury, and Bruno Pagano

 

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
The Haskell School of Expression: Learning Functional Programming Through Multimedia, Paul Hudak

QA76.62 H83 2000

 

 

 

More on Java:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Principles of Object-Oriented Programming: The Connexions Curriculum for the former Comp 212 course

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
The Java Programming Language: Book written by James Gosling the father of Java himself!

 

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Thinking In Java: A Java Book by Bruce Eckel, a well-known and seasoned professional programmer. Look for the link to free book downloads on this page

 

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Design Patterns: Elements of Reusable Object-Oriented Software: This is the "Bible" of OO software design. The authors (all four of them) of the book are affectionately referred to as the Gang of Four (GoF).

 

^

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Head First Design Patterns (by O'Reilly): A very accessible introduction to Design Patterns using Java.

 

 

 

 

More on Data Structures and Algorithms:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Introduction to Algorithms: Book written by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. The authoritative reference on algorithms.

 

...