Comp201: Principles of Object-Oriented Programming I
Spring 2007 -- Home   


News:

Contact us at:

Please send all questions and comments to: comp201 at rice.edu (replace the " at " with "@" -- this was done to reduce spam)

Preface ALL subject lines with "COMP201: " ! (for example, Subject: "COMP201: How do I write powerful programs with very little code?")

Schedule:

This is a tentative schedule for the topics to be covered in lecture, labs and assignments.   This schedule will constantly be changing and is given only as a reference for past topics and as a guideline for future topics.

New assignments are given on the day after the previous assignment is due.   HW01 is given on the first day of class.  Always check what assignment is due next!

Assignments are due by the BEGINNING of class on the due date.

Date

Lecture

Lab

Assignment Due

Mon. 1/08/07  Lec01: Administrivia, getting Java and DrJava    
Tues.. 1/09/07   Lab01: Java Syntax Primer, Using DrJava  
Wed. 1/10/07 Lec02: Data Abstraction using Primitives  
Fri. 1/12/07 Lec03: Functional Abstraction using Methods    
       
Mon. 1/15/07 MLK Holiday.  No Classes!    
Tues.. 1/16/07   Lab02: Unit Tests, Writing Classes and Making Interacting Objects  
Wed.1/17/07 Lec04: Abstraction Using Objects and Classes  
Fri. 1/19/07     Blanket Extension until Monday, 1/22/07 due to University closure
       
Mon. 1/22/07 Lec05: Object Relationships and UML diagrams   HW01: Writing simple classes
Tues.. 1/23/07   Lab03: Java Syntax; Using the Calendar Class; StructureBuilder  
Wed. 1/24/07 Lec06: Union Design Pattern and Polymorphism  
Fri. 1/26/07 Lec07: Union Design Pattern and Polymorphism. cont.   HW02: Unit Tests and Polymorphism
       
Mon. 1/29/07 Lec08: Polymorphism in Action: Ballworld    
Tues.. 1/30/07   Lab04: Static vs. non-static; Singleton Pattern; Strategy Pattern  
Wed. 1/31/07 Lec09: Ballworld continued.  
Fri. 2/02/07 Lec10: Inheritance vs. composition in Ballworld.   HW03: More on writing and testing classes and polymorphism
       
Mon. 2/05/07 Lec11: Dynamically changing and dynamically composed behaviors in Ballworld.    
Tues.. 2/06/07   Lab05: Lists and Their Algorithms  
Wed. 2/07/07 Lec12: Lists and List Processing: The Composite Design Pattern  
Fri. 2/09/07 Lec13: Lists and List Processing: The Interpreter Pattern   Blanket extension on HW04!
       
Mon. 2/12/07 Lec14: Recursion    
Tues.. 2/13/07   Lab06: Lists and Their Algorithms cont.  
Wed. 2/14/07 Lec15: Review HW04: Singletons, even more polymorphism and strategies 
Fri. 2/16/07 Lec16: Review    
       
Mon. 2/19/07  Lec17: Tail Recursion; To Cook or Not to Cook    

7:00 PM - 9:30 PM EXAM 1 in DH1046

Tues.. 2/20/07   Lab07: Visitors  
Wed. 2/21/07 Lec18: The Visitor Design Pattern HW05 now due on Friday!
Fri. 2/23/07 Lec19:  More Visitors   HW05: Forward Accumulation and Higher-Order Functions
       
Mon. 2/26/07 Lec20: The Abstract Factory Design Pattern    
Tues.. 2/27/07   Lab08:Factories and Inner Classes  
Wed. 3/28/07 Lec21: Exam 1 recap. & The List Component Framework; Examples of List Visitors Using Factory  
Fri. 3/02/07 Lec22: Inner Classes   HW06: Visitor Algorithms on an Immutable List
       
3/05/07-3/09/07 Spring Break, No Classes!
       
Mon. 3/12/07 Lec23: More Inner Classes    
Tues.. 3/13/07   Lab09: Factories and Inner Classes (cont.)  
Wed. 3/14/07 Lec24: Examples of Visitors with Inner Classes; Java GUI Programming  
Fri. 3/16/07 Lec25: Java GUI Programming, cont., Event handlers in Java GUIs   HW07: Visitors using Factories with Nested or Anonymous Inner Classes
       
Mon. 3/19/07 Lec26: Event handlers in Java GUIs, cont.    
Tues.. 3/20/07    Lab10:  GUI programming  
Wed. 3/21/07 Lec27: State design pattern; Mutable Lists  
Fri. 3/23/07 Lec28: LRStruct implementation   HW08: Java GUI programming with Factories and Anonymous Inner Classes
       
Mon. 3/26/07  Lec29: LRStruct visitors    
Tues.. 3/27/07   Lab11: Mutable List Processing: Exercises on LRStruct  
Wed. 3/28/07  Lec30: LRStruct visitors, continued.   
Fri. 3/30/07     HW09: Mutable List Processing - Exercises on LRStruct
       
Mon. 4/2/07 Lec32: Review

Lec33: Finite State Machine and the State Pattern: The Cheap Calculator

   
Tues. 4/3/07  

Lab12: Finite State Machine and the State Pattern: The Cheap Calculator

EXAM #2  ON-LINE 7:00 PM-11:00 PM
Wed. 4/4/07 Lec31: Restricted Access Containers  
Fri. 4/6/07 Spring Recess.  No Classes!
       
Mon. 4/09/07 Lec 34: Ordering Object and Priority Queue    
Tues.. 4/10/07   Lab13: Binary Trees Algorithms

 

Wed. 4/11/07 Lec35: Binary Tree Structure and BiTree Visitors HW10: Finite State Machine and The State Design Pattern New Due Date!
Fri. 4/13/07 Lec36: Binary Search Tree, Final project kick-off    
       
Mon. 4/16/07 Lec37: Exam recap; Javadocs   HW11: Binary Tree Processing Exercises
Tues.. 4/17/07   Lab14: Start of BallWar, the Final Project  
Wed. 4/18/07 Lec38: Arrays and Array Processing  
Fri. 4/20/07 Lec39:  Arrays continued, Design Patterns for Sorting    
       
Mon. 4/23/07 Lec40: Java Thread and Animation Basics - Command Pattern and Decorator Pattern   BallWar project description

HW12: Stacks and The Cheap Postfix Calculator

Tues.. 4/24/07   Lab15: Writing Loops and Processing Arrays  
Wed. 4/25/07 Lec41: Last day of class! Exam 3 prep, Wrap-up and course evaluations. Please be there! Extra Credit Assignment Due
       
Mon. 4/30/07     Exam 3 available (evening)
       
Mon. 5/07/07     Final Project: BallWar and Exam 3 (due 12:00PM)
       

 

 


Last Revised Thursday, 03-Jun-2010 09:50:20 CDT

©2007 Stephen Wong and Dung Nguyen