[Rice University]

COMP 212: Intermediate Programming
Spring 2001


Othello Announcements:

Additional Information: Points were raised that one of the comp212 labs gave instructions to make your comp212 directory readable by user-only. Please note, that YOU MUST add group read and execute permission to your directory in order for us to be able to execute our Othello script.


Othello Information Released: All of this semester's rules are available here. Please read the rules and information over carefully before directing any questions to us. Check back often for possible rule clarifications.


Yes, the semi-annual Othello tournament is going to be held again this semester. Complete details will be released at 12:01 AM Saturday, April 28th (to commemorate Ryan King's birthday, who has won the tournament for three semesters in a row... bwahahaha).

For more information, contact the coordinating labbies.


COMP 212 introduces students to object-oriented program design and the fundamental algorithms and data structures of imperative programming. All programming assignments are done in the Java programming language. Several programming projects of moderate size will help students to learn

The exercises will involve common data structures such as lists, stacks, queues, search trees, syntax trees, and hash tables, and will use algorithms for sorting, searching, and graph traversal. Some exercises will involve writing programs driven by a graphics user interface (GUI).


Course administrative information, including
When, where, who?
Textbooks and References
Course policies
Course content
Course Newsgroup -- Read it often.
Class Notes and Handouts
Lab Tutorials

Class Notes and Handouts

This semester's notes are listed as they become available:

  1. 17 Jan: Course overview (PS, PDF)
  2. 19 Jan: Object-oriented programming introduction, Pizza example (PS, PDF)
  3. 22 Jan: Java introduction, Pizza example (PS, PDF) and Handout (PS, PDF)
  4. 24 Jan: Java Classes (PS, PDF)
  5. 26 Jan: Java exceptions (PS, PDF)
  6. 29 Jan: Polymorphism, The Union Pattern, Scheme-like Lists (PS, PDF)
  7. 31 Jan: Scheme-like Lists (cont.), The Singleton Pattern (PS, PDF)
  8. 1 Feb: The Composite Pattern, Polynomials (PS, PDF)
  9. 5 Feb: The Visitor Pattern (PS, PDF)
  10. 7 Feb: Interfaces (PS, PDF)
  11. 9 Feb: The State Pattern (PS, PDF) and Handout (PS, PDF)
  12. 12 Feb: The State Pattern (cont.), Hangman Program (PS, PDF) and Handouts (PS, PDF) (PS, PDF)
  13. 14 Feb: The LRStruct Implementation (PS), Handout (PS), and Code
  14. 16 Feb: The Container Interface, the LRSContainer Implementation (PS, PDF) and Handout (PS, PDF)
  15. 19 Feb: Nested and Inner Classes (PS, PDF)
  16. 21 Feb: Java's GUI Library: Swing and Handout
  17. 23 Feb: Anonymous Inner Classes, an Updated LRSContainer Implementation (PS, PDF) and Code
  18. 26 Feb: Arrays (PS, PDF)
  19. 28 Feb: Arrays (cont.) (PS, PDF)
  20. 2 Mar: An Array-based Container (PS, PDF)
  21. 12 Mar: Double-dispatch (PS, PDF) and Handout (PS, PDF)
  22. 14 Mar: Big-Oh (PS, PDF)
  23. 16 Mar: Stacks and Queues, Array-based Queues (PS, PDF), Handout (PS, PDF) and Code
  24. 19 Mar: Array-based Queues (cont.) and Circular Lists (PS, PDF) and Code
  25. 21 Mar: Circular Lists (cont.) (PS, PDF)
  26. 23 Mar: An Array-based Ordered Container, Binary Search (PS, PDF) and Code
  27. 26 Mar: Binary Search (cont.), Interpolation Search and the Template Pattern (PS, PDF)
  28. 28 Mar: Selection Sort and Insertion Sort (PS, PDF) and Code
  29. 30 Mar: Merge Sort and Quick Sort (PS, PDF)
  30. 2 Apr: Heap Sort and Heaps (PS, PDF)
  31. 4 Apr: Analysis of Heap Creation's Running Time and Priority Queues (PS, PDF)
  32. 6 Apr: Binary Trees (PS, PDF) and Code
  33. 9 Apr: Binary Search Trees (PS, PDF) and Code
  34. 11 Apr: Game Trees and the Min-Max Algorithm (PS, PDF)
  35. 16 Apr: Rotations and Treaps (PS, PDF)
  36. 18 Apr: 2-3-4 Trees (PS, PDF) and Code
  37. 20 Apr: Implementing 2-3-4 Trees: Red-Black Trees (PS, PDF)

Some previous semesters' notes:

Dr. Cartwright's TeachJava notes (PS, HTML)

Free viewers for PS, PDF.


Assignments & Exams