[Rice Logo]

Comp 212: Intermediate Programming

News Course Description Lectures Labs Assignments Syllabus

News and Updates: as of Friday, 11-Jan-2002 13:18:42 CST

Course Description:

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).

Comp212 Staff List
To reach *all* of the Comp212 staff, try e-mailing comp212@rice.edu
Dung X Nguyen dxnguyen@rice.edu see homepage Duncan 3098
Stephen Wong swong@rice.edu see homepage Duncan 3102
Graduate Students
Bryan Hassin guido@rice.edu We 12:00-13:00 Ryon 102 Bryan's *Special* Lecture from Comp314
Dennis Lu dlu@rice.edu Tu,Th 13:00-14:30 Ryon 102
Cheryl McCosh chom@rice.edu Tu,Th 16:00-17:00 Duncan 3063
Johnny Ngan twngan@rice.edu We 12:00-13:00 Duncan 2070
Apan Qasem qasem@rice.edu We 15:00-16:00 Duncan 3057
Undergraduate Labbies
Jonathan Bannet jbannet@rice.edu Sa 14:00-16:00 Ryon 102
Josh Barron jbarron@rice.edu Th 16:30-18:30 Ryon 102
Kileen Cheng kileen@rice.edu Fr 20:30-22:30 Ryon 102
Sarah Dover sdover@rice.edu Tu 16:30-18:30 Ryon 102
James Hsia jhsia@rice.edu Th 14:30-16:30 Ryon 102
Kijana Knight jkdot@rice.edu Th 15:00-16:30 Ryon 102
Jonathan Mendez jmendez@rice.edu Tu 16:00-18:00 Ryon 102
Greg Stoll gstoll@rice.edu Mo 20:30-22:30 Ryon 102
Reuben Uy ruy@rice.edu We 13:00-15:00 Ryon 102
Theo Yaung othello@rice.edu Fr 21:00-23:00 Ryon 102

Lab Lectures:
  • Week 01 Lab (08/27-08/28): Unix, Emacs, and the JDK
  • Week 02 Lab (09/4): DrJava, Java Syntax and StructureBuilder
  • StructureBuilder (SB) is available on owlnet. If you have run the registration script, you should have it in your PATH. There is still one more step though.
      • From your home directory (type cd to return to your home, note, it is important that you are in your home directory, otherwise it won't work), type "propagate.sh" (no quotes, of course). This script is part of SB and sets you up with a license.
      • When you want to start SB, you need to be in your home directory (once again, if you're not, it won't work, and instead of giving you the fully licensed and working version, you get the evaluation copy running). Once you're in your home, just type "StructureBuilder" and it should start.
  • If you set up SB properly, you should be able to generate javadoc and UML diagrams for your code in one click of a button: go to the menu Tools/Generate Documentation; select private access type to generate javadoc for all fields and methods, select the class diagrams you want to javadoc, and click the Generate button! You can submit the generated UML diagrams and javadoc html files as the official javdoc documentation of your work. You will not need to export the diagrams to any files at all.
  • Week 03 Lab (09/10-09/11): JavaDoc, Package and Immutable Lists
  • Week 04 Lab (09/17-9/18): Visitor Pattern
  • Week 05 Lab (09/24-09/25): State Pattern
  • Week 06 Lab (10/01-10/02): Model-View-Controller
  • Week 07 Lab (10/08-10/09): Inner Classes
  • Week 08 No Lab: Fall break! 10/15-10/16
  • Week 09 Lab (10/22-10/23): Design patterns for Koch Curves.
  • Week 10 Lab (10/29-10/30): MVC for Koch GUI.
  • Week 11 Lab (11/05-11/06): MVC for Tournament Trees.
  • Week 12 Lab (11/12-11/13): Finishing Tournament Trees.
  • Week 13 Lab (11/19-11/20): Game Model
  • Week 14 Lab (11/26-11/27): Min-Max Principle
  • Week 15 Lab (12/03-12/04): IO Stream, Recursive Descent Parsing
  • Lab Sections

    Course Lectures:
  • Week 01
  • Lecture 01 (8/27): The Best Little Pizza House in Texas
  • Lecture 02 (8/29): Pizza
  • Lecture 03 (8/31): Java Implementation of Pizza
  • Week 02 (Labor day 09/03: no lecture, no Monday lab, Tuesday lab is optional)
  • Lecture 04 (9/5): The Fundamentals of Object Oriented Programming (OOP) -- Encapsuation, Inheritance, Polymorphism
  • Lecture 05 (9/7): Designing an Immutable List Structure
  • Week 03
  • Week 04
    • Week 05
    • Week 06
    • Week 07
    • Week 08 (Fall break: 10/15-10/16: no lectures and no labs)
      • Lecture 21 (10/17): Restricted Access Containers (continued); Discussion of Solutions to Exam 1.
      • Lecture 22 (10/19): Exam 1 discussion (continued); Fractals: Koch Curves.
    • Week 09
      • Lecture 23 (10/22): More on Koch Curves.
      • Lecture 24 (10/24): OO Design Methodology.
      • Lecture 25 (10/26): Mutability and Shareability Issues; Binary Trees (UML)
    • Week 10
      • Lecture 26 (10/29): MVC for Koch Curves; Reflection and Dynamic class loading.
      • Lecture 27 (10/31): Binary Trees Design and Implementation (source code)
      • Lecture 28 (11/02): Binary Trees Visitors; Tree printing algorithm.
    • Week 11
    • Week 12
    • Week 13 (No lecture on 11/23/01: Thanskgiving Break!)
    • Week 14
    • Week 15

    Assignments (Homeworks and Projects) as of Friday, 11-Jan-2002 13:18:42 CST

    Resource Links:

    Connecting to the Newsgroup:

    (Read the newsgroup regularly)