[Rice University]

COMP 212: Intermediate Programming
Fall 2001


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)
  38. 23 Apr: Hash Functions and Hash Tables (PS, PDF)
  39. 25 Apr: Discuss Exam #2
  40. 27 Apr: Hash Functions and Hash Tables (cont.) (PS, PDF) and Code

Some previous semesters' notes:

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

Free viewers for PS, PDF.

Assignments & Exams