...
- Dr. Cartwright: MWF 9:00 AM - 10:00 AM
- Dr. Wong: See home page
- Alina: MWF 11:00 AM -12:00 PM
- Kamal: MF 3:00 PM - 5:00 PM
- Nicholas: TR 7:00 PM - 8:30 PM
e-mail the entire class: comp211s11 at owlspace-ccm.rice.edu
...
- 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.
- Design Patterns Lens - A collection of short descriptions of the design patterns covered in the course.
- 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 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 work. DrJava to work. (Addendum: DrJava releases starting in 2011 can also run using a Java 7 JDK.) 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 the Apple Java 5.0 or Java 6.0 JDK.
...
| Day | Date(2011) | Topic | Reading | Lectures | Problems | Due(2011) | Lab | Supplements | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Mon | Jan 10 | Introduction & Scheme Primitives |
| W Jan 12 | ||||||||
2 | Wed | Jan 12 | Function definitions and conditionals | F Jan 21 |
|
| |||||||
3 | Fri | Jan 14 | Data Definitions & The Design Recipe |
|
|
|
| ||||||
- | Mon | Jan 17 | School Holiday |
|
|
|
|
| |||||
4 | Wed | Jan 19 | Data-directed design |
|
|
|
| ||||||
5 | Fri | Jan 21 | Data-directed design: trees |
| Fri Mon Jan 28 31 |
|
| ||||||
6 | Mon | Jan 24 | Mutually Referential Data Definitions |
|
| ||||||||
7 | Wed | Jan 26 | Local Definitions and Lexical Scope |
|
|
|
| ||||||
8 | Fri | Jan 28 | Functional Abstraction and Polymorphism Local Definitions and Lexical Scope |
| Fri Feb 4 |
|
| ||||||
9 | Mon | Jan 31 Functions as Values | Functional Abstraction and Polymorphism |
| Mon Feb 7 |
| |||||||
10 | Wed | Feb 02 Lambda | the Ultimate Functions as Values |
|
|
|
| ||||||
11 | Fri | Feb 04 Generative | Recursion Lambda the Ultimate |
| Fri Feb 11 |
|
| ||||||
12 | Mon | Feb 07 | Generative Recursion Illustrated |
| Mon Feb 14 |
| |||||||
13 | Wed | Feb 09 | Complexity and Accumulators |
|
|
|
| ||||||
14 | Fri | Feb 11 | Accumulators and Tail Calls |
| Fri Feb 18 |
|
| ||||||
15 | Mon | Feb 14 | Clever Programming With Functions | Review prior readings |
| Mon Feb 21 | |||||||
16 16 | Wed | Feb 16 | Vectors and Iteration Exam Review | Review prior readings |
|
|
|
| |||||
17 | Fri | Feb 18 | Exam Review | Review prior readings | HW 6 (optional) | On to Java | OO Design Notes Ch 1.1-1.4 |
| Fri Feb 25 |
|
| ||
18 | Mon | Feb 21 | On to Java | OO Design Notes Ch 1.1-1.4 |
| HW 6 (Optional) | Mon Mar 07 | ||||||
19 | Wed | Feb 23 | Java Design Recipe | OO Design Notes Ch 1.1-1.4 |
|
|
| ||||||
20 | Fri | Feb 25 | Defining Inductive Data in Java | OO Design Notes Ch 1.5 |
|
| |||||||
- | M-F | Feb 28-Mar 4 | Spring Break |
|
|
|
|
|
| ||||
21 | Mon | Mar 07 | Static Class Members and the Singleton Pattern | OO Design Notes Ch 1.6 |
| Mon Mar 14 | |||||||
22 | Wed | Mar 09 | Polymorphism and Interfaces | OO Design Notes Ch 1.8 |
|
|
| ||||||
23 | Fri | Mar 11 | Handling Exceptions and Errors | OO Design Notes Ch 1.9-1.10, 1.12 |
| Fri Mar 11 |
|
| |||||
24 | Mon | Mar 14 | The Strategy and Visitor Patterns | OO Design Notes Ch 1.9, 1.11 |
| Mon Mar 21 | |||||||
25 | Wed | Mar 16 | Visitors, Visitors, Vistors ... | OO Design Notes Ch 1.11 |
|
|
|
| |||||
26 | Fri | Mar 18 | Accepting Reality: Full Java, Arrays, Mutation | OO Design Notes Ch 1.13 |
| Wed Mar 30 |
| ||||||
27 | Mon | Mar 21 | Visibility, Type-Checking, and Generics | OO Design Notes Ch. 1.10, 1.13 | Fri Apr 4 | ||||||||
28 | Wed | Mar 23 | Generics with Discretion |
|
|
|
|
| |||||
29 - | Thurs-Fri | Mar 24-25 | Mutation and Bi-Directional Linked Lists | OO Design Notes Ch 1.13 | School Holiday |
|
|
|
|
| |||
30 29 | Mon | Mar 28 | Mar 28 | Simple Generics in Java Graphical User Interfaces | OO Design Notes Ch 3 1.13.4 (contains advanced material as well) |
|
| lec29_code.zip (incl. genList) | |||||
31 30 | Wed | Mar 30 | Anonymous Inner Classes and Task Decomposition Mutation and Bi-Directional Linked Lists | OO Design Notes Ch 21.1 13 |
|
| |||||||
- 31 | Fri | Apr 1 | School Holiday | BiLists Continued | OO Design Notes Ch 2.1 |
|
|
| |||||
32 | Mon | Apr 4 | Mutable Trees | OO Design Notes Ch 2.1 |
| Wed. Apr 13 | |||||||
33 | Wed | Apr 6 | Review: Confronting the Reality of Full Java Mutable Trees |
|
|
|
|
| |||||
34 | Fri | Apr 8 | QuickSort Revisited Mutable Trees |
|
|
| FunctionalQuicksort | ||||||
35 | Mon | Apr 11 Graphical User Interfaces II | Mutable Trees and OO Data Structure Review | OO Design Notes |
|
|
| ||||||
36 | Wed | Apr 13 | OO Sorting Algorithms |
| (incl. insertion and selection sort animations) | Milestone 1: Mon. Apr 18 |
| ||||||
37 | Fri | Apr 15 Fast | Searching with Balanced Trees Graphical User Interfaces |
|
|
| Red-Black Trees | ||||||
38 | Mon | Apr 18 | Fast Searching and Memoization |
|
|
| |||||||
39 | Wed | Apr 20 Parallel | Programming Tradeoffs Fast Sorting Methods |
|
|
|
|
| |||||
40 | Fri | Apr 22 | Exam II Review |
|
|
|
|
Grading, Honor Code Policy, Processes and Procedures
...
Reading: For each lecture, there is associated reading. Students are required to complete the reading before the class associated with this reading.h2
Other Resources
- Practical matters:
- Special interest groups:
- CSters
- Computer Science Club
- ... (please send in suggestions!)
...
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�delGodel, Escher, Bach: An Eternal Golden Braid, Douglas Hofstadter | QA9.8 .H63 1980 |
Metamagical Themas, Douglas Hofstadter | Q335 .H63 1985 |
...