...
- Principles of Object-Oriented Programming by Zung Nguyen and Stephen Wong. An online self-contained introduction to OOP in Java roughly corresponding to the former Comp 212 course. It is reasonably complete, but still under construction.
- Index to online Java Tutorials by Sun Microsystems The Sun tutorials refer to the full Java language not the Elementary and Intermediate language levels supported by DrJava. Nevertheless, they cover many important language details in depth, such as the complete collection of primitive operators on primitive data types.
- Java Basics by Fred Swartz is a clearly written traditional introduction to Java that focuses on Java mechanics rather than OO Design. It can be helpful in learning the {\em mechanics} of writing full Java code. Please ignore what he says about program design.
- Java Notes by Fred Swartz is a reasonably comprehensive Java reference that is a good supplement to the official Sun documents.
DrJava: Please download and use the DrJavapedagogic DrJava pedagogic programming environment available from drjava.org. You must install either the Java 5 or Java 6 JDK on your machine for DrJavato DrJava to work. If you machine is running some flavor of Windows or Linux, go to the \[Sun Download Site for the Java SE 6.0 (http://java.sun.com/javase/downloads/index.jsp\]). Make sure that you download the JDK not the JRE. If you have a Mac, a Java JDK is available from Apple. In fact, it is part of the standard Mac OS X software package. DrJavawill DrJava will run on either a Java 5.0 or Java 6.0 JDK.
...
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.
L 25L 27
| 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 | F Jan 22 |
|
| |||
3 | Fri | Jan 15 | Inductive data, conditionals, and the design recipe |
|
|
|
| ||
- | Mon | Jan 18 | School Holiday |
|
|
|
|
|
|
4 | Wed | Jan 20 | Data-directed design I |
|
|
| |||
5 | Fri | Jan 22 | Data-directed design II | Fri Jan 29 |
|
| |||
6 | Mon | Jan 25 | Mutually Referential Data Definitions |
|
|
| |||
7 | Wed | Jan 27 | Local definitions and Lexical Scope |
|
|
|
| ||
8 | Fri | Jan 29 | Functions as Values | Fri Feb 5 |
|
| |||
9 | Mon | Feb 01 | Functional Abstraction and Polymorphism |
|
|
| |||
10 | Wed | Feb 03 | Lambda the Ultimate |
|
|
|
| ||
11 | Fri | Feb 05 | Generative Recursion | Fri Feb 15 |
|
| |||
12 | Mon | Feb 08 | Generative Recursion Illustrated |
|
|
| |||
13 | Wed | Feb 10 | Complexity and Accumulators |
|
|
|
| ||
14 | Fri | Feb 12 | Accumulators and Tail Calls | Fri Feb 19 |
|
| |||
15 | Mon | Feb 15 | Clever Programming With Functions | Review prior readings |
|
| 210 Exam 1 | ||
16 | Wed | Feb 17 | Vectors and Iteration | Review prior readings |
|
|
|
| |
17 | Fri | Feb 19 | Exam Review | Review prior readings | HW 6 (optional) | Fri Feb 26 |
|
| |
18 | Mon | Feb 22 | On to Java | OO Design Notes Ch 1.1-1.4 |
|
| |||
19 | Wed | Feb 24 | Java Design Recipe | OO Design Notes Ch 1.1-1.4 |
|
|
|
| |
20 | Fri | Feb 26 | Defining Inductive Data in Java | OO Design Notes Ch 1.5 | L 20, |
|
| ||
- | M-F | Mar 01-05 | Spring Break |
|
|
|
|
|
|
21 | Mon | Mar 08 | Static Class Members and the Singleton Pattern | OO Design Notes Ch 1.6 |
|
| |||
22 | Wed | Mar 10 | Polymorphism and Interfaces | OO Design Notes Ch 1.8 |
|
|
| ||
23 | Fri | Mar 12 | Handling Exceptions and Errors | OO Design Notes Ch 1.9-1.10, 1.12 | Fri Mar 13 |
|
| ||
24 | Mon | Mar 15 | The Strategy and Visitor Patterns | OO Design Notes Ch 1.9, 1.11 |
|
| |||
25 | Wed | Mar 17 | Visitors, Visitors, Vistors ... | OO Design Notes Ch 1.11 |
|
|
| ||
26 | Fri | Mar 19 | Full Java, Arrays, Mutation | OO Design Notes Ch 1.13 | Wed Mar 31 |
| |||
27 | Mon | Mar 22 | Visibility, Type-Checking, and Generics | OO Design Notes Ch. 1.10, 1.13 |
|
| |||
28 | Wed | Mar 24 | Generics with Discretion |
|
|
|
|
| |
29 | Fri | Mar 26 | Mutation and Bi-Directional Linked Lists | OO Design Notes Ch 1.13 |
|
|
|
| |
30 | Mon | Mar 29 | Graphical User Interfaces | OO Design Notes Ch 3 |
|
|
| ||
31 | Wed | Mar 31 | Anonymous Inner Classes and Task Decomposition | OO Design Notes Ch 2.1 |
|
| |||
- | Fri | Apr 2 | School Holiday |
|
|
|
|
|
|
32 | Mon | Apr 5 | Mutable Trees | OO Design Notes Ch 2.1 |
|
| TreeMap.java | ||
33 | Wed | Apr 7 | Review: Confronting the Reality of Full Java |
|
|
|
|
| |
34 | Fri | Apr 9 | QuickSort Revisited |
|
|
| FunctionalQuicksort.java | ||
35 | Mon | Apr 12 | Graphical User Interfaces II | OO Design Notes |
|
|
| ||
36 | Wed | Apr 14 | OO Sorting Algorithms |
|
|
|
| Design Patterns for Sorting | |
37 | Fri | Apr 16 | Fast Searching with Balanced Trees |
|
|
| Red-Black Trees | ||
38 | Mon | Apr 19 | Fast Searching and Memoization |
|
|
| |||
39 | Wed | Apr 21 | Parallel Programming Tradeoffs |
|
|
|
|
| |
40 | Fri | Apr 23 | Exam II Review |
|
|
|
|
...