| Date | Lecture | Lab | 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 | 
	
		|  |  |  |  |