...
| Day | Date(2009) | Topic | Reading | Lectures | Problems | Due(2009) | Lab | Supplements | |
1 | Mon | Jan 11 | Introduction |
| W Jan 13 | |||||
2 | Wed | Jan 13 | Scheme primitives; function and data definitions | W Jan 20 |
|
| ||||
3 | Fri | Jan 09 15 | Inductive data, conditionals, and the design recipe |
|
|
|
|
| ||
4 | Mon | Jan 12 18 | Data-directed design I |
|
|
|
| |||
5 | Wed | Jan 14 20 | Data-directed design II | HW 2 (Solution to 12.4.2 (https:wikiriceedudisplayCSWIKI2111242solss)) | Th Jan 22 |
|
| |||
6 | Fri | Jan 16 22 | Mutually Referential Data Definitions |
|
|
|
| |||
Mon | Jan 19 25 | School Holiday |
|
|
|
| ||||
7 | Wed | Jan 21 27 | Local definitions and Lexical Scope | Mon Feb 2 |
|
| ||||
8 | Fri | Jan 23 29 | Functional Abstraction and Polymorphism |
|
|
|
| |||
9 | Mon Jan | 26 Feb 01 | Functions as Values |
|
|
| ||||
10 | Wed Jan | 28 Feb 03 | Lambda the Ultimate |
|
|
|
| |||
11 | Fri Jan | 30 Feb 05 | Generative Recursion | Mon Feb 9 |
|
| ||||
12 | Mon | Feb 02 08 | Generative Recursion Illustrated |
|
|
| ||||
13 | Wed | Feb 04 10 | Complexity and Accumulators |
|
|
|
| |||
14 | Fri | Feb 06 12 | Accumulators and Tail Calls | L 14 \ \ |
| \ \ |
| \ | ||
15 | Mon | Feb 09 \ 15 | Review and First-Class Functions \ | Review prior readings \ | L 15 \ | HW 5 \ | Mon Feb 16 \ | Lab 5 \ | ||
16 | Wed | Feb 11 \ 17 | Powerful Functionals \ | Review prior readings \ | L 16 \ \ |
| \ \ |
| \ | |
17 | Fri | Feb 13 \ 19 | Exam Review \ | Review prior readings \ | L 17 \ | Take-home exam \ \ |
| \ | ||
18 | Mon | Feb 16 \ 22 | On to Java \ | OO Design Notes , Ch 1.1-1.4.1 \ | L 18 \ | Mon Feb 23 \ | Lab 6 \ | parse/unparse (https:wikiriceedudisplayCSWIKI211parsess) \ | ||
19 | Wed | Feb 18 \ 24 | Java Design Recipe \ | OO Design Notes , Ch 1.1-1.4 \ | L 19 \ \ |
| \ \ |
| \ | |
20 | Fri | Feb 20 \ 26 | 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 \ Mar 01 | 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 \ Mar 03 | Polymorphism and Interfaces \ | OO Design Notes , Ch 1.8 \ | L 22 \ \ |
| \ \ |
| ComparableList (https:wikiriceedudisplayCSWIKI211ComparableListdj1)ComparableListTest (https:wikiriceedudisplayCSWIKI211ComparableListTestdj1) \ | |
23 | Fri Feb | 27 \ Mar 05 | 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 \ \ |
| \ | |||
[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\ \ |
| \ | 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\ \ |
| \ | OOTreeMap.java (https:wikiriceedudisplayCSWIKI211OOTreeMapjava)OOTreeMapTest.java (https:wikiriceedudisplayCSWIKI211OOTreeMapTestjava) \ | ||
34 | Wed | Apr 1 \ | ||||||||
Efficient Representations of Maps and Sets \ | ||||||||||
\ | ||||||||||
L 34\ | ||||||||||
HW 11 \ | ||||||||||
\ | ||||||||||
\ | ||||||||||
35 | Fri | Apr 3 \ | ||||||||
Rice Board Game Framework \ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
36 | Mon | Apr 5 \ | ||||||||
OO Design Retrospective \ | ||||||||||
OO Design Notes \ | ||||||||||
L 36\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
37 | Wed | Apr 7 \ | ||||||||
Faster Searching Methods \ | ||||||||||
OO Design Notes \ | ||||||||||
L 37\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
38 | Fri | Apr 9 \ | ||||||||
The Othello Game Framework \ | ||||||||||
The Othello Game Framework \ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
39 | Mon | Apr 13 \ | ||||||||
Faster Searching Methods (Updated with code) \ | ||||||||||
OO Design Notes \ | ||||||||||
L 37\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
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 \ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ | ||||||||||
\ |
...
Here is a nice article about
the basic approach taken in this course.
More on CS: | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76 .D448 1993 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76.9 .A43 H37 2004 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76.5 .H3575 2000 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76 .B495 1997 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76 .B743 1997 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA9.8 .H63 1980 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | Q335 .H63 1985 |
|
|
|
If you liked Scheme, you'll love these resources: | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | (Online) |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76.73 .S34 F75 1996 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76.73 .S34 F77 1996 |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
|
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | QA76.62 H83 2000 |
|
|
|
More on Java: | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | |
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
|
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
|
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
|
^ | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
|
|
|
|
More on Data Structures and Algorithms: | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ |
|
...