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

Click here information on the second semester of Principles of Object-Oriented Programming (COMP 202).


Contact us at:

Please send all questions and comments to: comp201 at (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?")


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.




Assignment Due

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

7:00 PM - 9:30 PM EXAM 1, exam location TBA

Tues.. 2/19/08   Lab07: Visitors  
Wed. 2/20/08 Lec18: The Visitor Design Pattern  
Fri. 2/22/08 Lec19:  More Visitors   HW05: Forward Accumulation and Higher-Order Functions
Mon. 2/25/08 Lec20: The Abstract Factory Design Pattern    
Tues.. 2/26/08   Lab08:Factories and Inner Classes  
Wed. 3/27/08 Lec21: Exam 1 recap. & The List Component Framework; Examples of List Visitors Using Factory  
Fri. 2/29/08 Lec22: Inner Classes   HW06: Visitor Algorithms on an Immutable List
3/03/08-3/07/08 Spring Break, No Classes!
Mon. 3/10/08 Lec23: More Inner Classes    
Tues.. 3/11/08   Lab09: Factories and Inner Classes (cont.)  
Wed. 3/13/08 Lec24: Examples of Visitors with Inner Classes; Java GUI Programming  
Fri. 3/15/08 Lec25: Java GUI Programming, cont., Event handlers in Java GUIs   HW07: Visitors using Factories with Nested or Anonymous Inner Classes
Mon. 3/17/08 Lec26: Event handlers in Java GUIs, cont.    
Tues.. 3/18/08    Lab10:  GUI programming  
Wed. 3/19/08 Lec27: State design pattern; Mutable Lists  
Fri. 3/21/08 Lec28: LRStruct implementation   HW08: Java GUI programming with Factories and Anonymous Inner Classes
Mon. 3/24/08  Lec29: LRStruct visitors    
Tues.. 3/25/08   Lab11: Mutable List Processing: Exercises on LRStruct  
Wed. 3/26/08  Lec30: LRStruct visitors, continued.   
Fri. 3/28/08  Lec32: Review   Blanket extension until Monday for HW09!
Mon. 3/31/08

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

  NEW DATE! HW09: Mutable List Processing - Exercises on LRStruct
Tues. 4/1/08  

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

EXAM #2  ON-LINE 7:00 PM-11:00 PM
Wed. 4/2/08 Lec31: Restricted Access Containers  
Fri. 4/4/08 Spring Recess.  No Classes!
Mon. 4/07/08 Lec 34: Ordering Object and Priority Queue   Exam 2 due in class!
HW10 extension until Wed.
Tues.. 4/08/08   Lab13: Binary Trees Algorithms


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


Tues.. 4/22/08   Lab15: Writing Loops and Processing Arrays  
Wed. 4/23/08 Lec41: Last day of class! Exam 3 prep, Wrap-up and course evaluations. Please be there! Challenge Problem Due
Fri. 4/25/08     HW12: Stacks and The Cheap Postfix Calculator Due  (10 AM)

Extra Credit Assignment Due (10 AM)

Mon. 4/26/08     Exam 3 available (evening)
Wed. 4/30/08     Final Project and Exam 3 due for degree candidates.
Mon. 5/05/08     Final Project: BallWar and Exam 3 (due 12:00PM) for non-degree candidate students



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

©2008 Stephen Wong and Dung Nguyen