Comp201: Principles of Object-Oriented Programming I
Spring 2006 -- 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

Wed. 1/11/06  Lec01: Administrivia, getting Java and DrJava Lab01: Java Syntax Primer, Using DrJava  
Thurs. 1/12/06    
Fri. 1/13/06 Lec02: Data Abstraction using Primitives    
       
Mon. 1/16/06 MLK Holiday.  No Classes!    
Wed. 1/18/06 Lec03: Functional Abstraction using Methods Lab02: Unit Tests, Writing Classes and Making Interacting Objects  
Thurs.1/18/06    
Fri. 1/20/06 Lec04: Abstraction Using Objects and Classes   HW01: Writing simple classes
       
Mon. 1/23/06 Lec05: Object Relationships and UML diagrams    
Wed. 1/25/06 Lec06: Union Design Pattern and Polymorphism Lab03: Java Syntax; Using the Calendar Class; StructureBuilder  
Thurs. 1/26/06    
Fri. 1/27/06 Lec07: Union Design Pattern and Polymorphism. cont.   HW02: Unit Tests and Polymorphism
       
Mon. 1/30/06 Lec08: Polymorphism in Action: Ballworld    
Wed. 2/1/06 Lec09: Ballworld continued. Lab04: Static vs. non-static; Singleton Pattern; Strategy Pattern  
Thurs. 2/2/06    
Fri. 2/4/06 Lec10: Inheritance vs. composition in Ballworld.   HW03: More on writing and testing classes and polymorphism
       
Mon. 2/6/06 Lec11: Dynamically changing and dynamically composed behaviors in Ballworld.    
Wed. 2/8/06 Lec12: Lists and List Processing: The Composite Design Pattern Lab05: Lists and Their Algorithms  
Thurs. 2/9/06    
Fri. 2/10/06 Lec13: Lists and List Processing: The Interpreter Pattern   HW04: Singletons, even more polymorphism and strategies 

Blanket extension: 10 AM Monday 2/13/06

       
Mon. 2/13/06 Lec14: Recursion    
Wed. 2/15/06 Lec15: Review Lab06: Lists and Their Algorithms cont.  
Thurs. 2/16/06    
Fri. 2/17/06 Lec16: Review    
       
Mon. 2/20/06  Lec17: Tail Recursion; To Cook or Not to Cook    

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

Wed. 2/22/06 Lec18: The Visitor Design Pattern Lab07: Visitors HW05: Forward Accumulation and Higher-Order Functions
Thurs. 2/23/06    
Fri. 2/24/06 Lec19:  More Visitors    
       
Mon. 2/27/06 Lec20: The Abstract Factory Design Pattern    
Wed. 3/1/06 Lec21: Exam 1 recap. & The List Component Framework; Examples of List Visitors Using Factory Lab08:Factories and Inner Classes HW06: Visitor Algorithms on an Immutable List
Thurs. 3/2/06    
Fri. 3/3/06 Lec22: Inner Classes    
       
Mon. 3/6/06 Lec23: More Inner Classes    
Wed. 3/8/06 Lec24: Examples of Visitors with Inner Classes; Java GUI Programming Lab09: Factories and Inner Classes (cont.)  
Thurs. 3/9/06    
Fri. 3/10/06 Lec25: Java GUI Programming, cont., Event handlers in Java GUIs   HW07: Visitors using Factories with Nested or Anonymous Inner Classes
       
3/13/06-3/17/06 Spring Break, No Classes!
       
Mon. 3/20/06  Lec26: Event handlers in Java GUIs, cont.    
Wed. 3/22/06  Lec27: State design pattern; Mutable Lists  Lab10:  GUI programming  
Thurs. 3/23/06    
Fri. 3/24/06 Lec28: LRStruct implementation    
       
Mon. 3/27/06  Lec29: LRStruct visitors   HW08: Java GUI programming with Factories and Anonymous Inner Classes
Tues. 3/29/06   Lab11: Mutable List Processing: Exercises on LRStruct  
Wed. 3/29/06  Lec30: LRStruct visitors, continued.  
Fri. 3/31/06 Lec31: Restricted Access Containers    
       
Mon. 4/3/06 Lec32: Review    
Tues. 4/4/06 EXAM #2  ON-LINE 7:00 PM-11:00 PM

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

HW09: Mutable List Processing - Exercises on LRStruct
Wed. 4/5/06 Lec33: Finite State Machine and the State Pattern: The Cheap Calculator  
Thurs. 4/6/06 Spring Recess.  No Classes!
Fri. 4/7/06
       
Mon. 4/10/06 Lec 34: Ordering Object and Priority Queue    
Tues. 4/11/06   Lab13: Binary Trees Algorithms  
Wed. 4/12/06 Lec35: Binary Tree Structure and BiTree Visitors  

HW10: Finite State Machine and The State Design Pattern

Thurs. 4/13/06      
Fri. 4/14/06 Lec36: Binary Search Tree, Final project kick-off    
       
Mon. 4/17/06 Lec37: Exam recap; Javadocs    
Tues. 4/18/06   Lab14: Start of BallWar, the Final Project  
Wed. 4/19/06 Lec38: Arrays and Array Processing  HW11: Binary Tree Processing Exercises
Fri. 4/21/06 Lec39:  Arrays continued, Design Patterns for Sorting    
       
Mon. 4/24/06 Lec40: Java Thread and Animation Basics - Command Pattern and Decorator Pattern   BallWar project description

 

Tues. 4/25/06   Lab15: Writing Loops and Processing Arrays  
Wed. 4/26/06 Lec41: Last day of class! Exam 3 prep, Wrap-up and course evaluations. Please be there! HW12: Stacks and The Cheap Postfix Calculator

 

Thurs. 4/27/06     Extra Credit Assignment Due
       
Tues. 5/2/06     Exam 3 available (evening)
       
Wed. 5/10/06     Final Project: BallWar and Exam 3 (due 12:00PM)
       

 

 


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

©2006 Stephen Wong and Dung Nguyen