...
- 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 DrJava pedagogic programming environment available from drjava.org. You must install either the Java 5 or Java 6 JDK on your machine for 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. DrJava will run on either a Java 5.0 or Java 6.0 JDK.
...
| 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 | L 16\ |
|
|
|
|
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 | L 19\ |
|
|
|
|
20 | Fri | Feb 26 | Defining Inductive Data in Java | OO Design Notes Ch 1.5 | L 20\ |
| IntList.dj0\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\ |
|
| ||
22 | Wed | Mar 10 | Polymorphism and Interfaces | OO Design Notes Ch 1.8 | L 22\ |
|
|
| |
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 | L 24\ |
|
| ||
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\ | Wed Mar 31 |
| ||
27 | Mon | Mar 22 | Visibility, Type-Checking, and Generics | OO Design Notes Ch. 1.10, 1.13 | L 27\ |
|
| ||
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\ |
|
|
| |
31 | Wed | Mar 31 | Anonymous Inner Classes and Task Decomposition | OO Design Notes Ch 2.1 | L 31\ |
|
| ||
- | Fri | Apr 2 | School Holiday |
|
|
|
|
|
|
32 | Mon | Apr 5 | Mutable Trees | OO Design Notes Ch 2.1 | L 32\ |
|
| 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.pptx | |
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 |
|
|
|
|
Grading, Honor Code Policy, Processes and Procedures
...
- comp211-discussion-l@mailman.rice.edu
(subscribe here (https:mailmanriceedumailmanlistinfocomp211discussionl)):- This is where important announcements related to the class will be posted.
- Students are required to sign up to this list.
- You may use this list for open discussions relating to the course. \
Postings are expected to abide by standard \
Netiquette.
- Any questions relating to the course can be sent to this list.
- Specific questions about homework problems and grading can be directed here.
- cs-events-l@mailman.rice.edu:
- Announcements relating to talks and other interesting events hosted by the CS departments.
- Subscription to this list is optional but highly recommended
...
If you have a question about homework-you're not sure what is expected for a given problem, you haven't received feedback from a previous assignment, or you don't understand or agree with the assessment of your work, for example-you , you can raise the question with a TA in lab or on the discussion mailing list. If, after doing so, you don't feel that your concerns have been addressed, you may wish to contact Prof. Cartwright or Prof. Sarkar directly.
...
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�delGödel, Escher, Bach: An Eternal Golden Braid, Douglas Hofstadter | QA9.8 .H63 1980 |
Metamagical Themas, Douglas Hofstadter | Q335 .H63 1985 |
...