[Rice Logo]

Comp 212: Intermediate Programming

Spring 2006

Home News Course Description Lectures Labs Assignments Textbooks Resources Syllabus Staff WebCT

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.   The first assignment is given on the second 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

Week 1      
Wed 01/11/06 Lec 01 The Best Little Pizza House in Texas    
Fri. 01/13/06 Lec 02: Administrivia; OO Pizza Design Lab 01: StructureBuilder, UML, DrJava, Java Syntax  
Week 2      
Mon. 01/16/06 MLK Holiday.  No Classes!    
Tue 01/17/06   Lab 01: StructureBuilder, UML, DrJava, Java Syntax  
Wed 01/18/06 Lec 03: More Java Syntax; Pizza Code    
Fri. 01/20/06 Lec 04: OOP Fundamentals; From FP to OOP   HW 01: Pizza Code and UML Class Diagrams
Week 3      
Mon. 01/23/06 Lec 05: Composite Design Pattern and the Immutable List Structure Lab 02: JUnit Testing, Javadoc, Package, List algorithms  
Tue. 01/24/06    
Wed. 01/25/06 Lec 06: Interpreter Design Pattern and List Algorithms    
Fri. 1/27/06 Lec 07: Using Helpers; delegation    
Week 4      
Mon. 1/30/06 Lec 08: Decoupling Data Structures from Algorithms; The Visitor Pattern Lab 03: Visitor Design Pattern HW 02: Ultimate Pizza Experience
Tue. 1/31/06    
Wed. 2/01/06 Lec 09: Information Hiding and Abstract Factory Design Pattern    
Fri. 2/03/06 Lec 10: Inner Classes and Closure    
Week 5      
Mon. 2/06/06 Lec 11: More Inner Classes Lab 04: Visitors and Inner Classes HW 03: Composite Immutable Structures and Visitors
Tue. 2/07/06    
Wed. 2/08/06 Lec 12:State Pattern and Mutable Linear Recursive Structure (LRStruct)    
Fri. 2/10/06 Lec 13: Implementation of LRStruct     
Week 6      
Mon. 2/13/06 Lec 14: LRStruct Visitors - Of OOT and NOOT Lab 05: Review for Exam 1  
Tue. 2/14/06    
Wed. 2/15/06 Lec 15: Introduction to Java GUI (part 1) Exam #1 tonight in DH 1070  
Fri. 2/17/06 Lec 16: Introduction to Java GUI (part 2): MVC   HW 04: Abstract Syntax Tree
Week 7      
Mon. 2/20/06 Lec 17: Simple Java Drawing Lab 06: MVC and Hangman Model  
Tue. 2/21/06    
Wed. 2/22/06 Lec 18: Java Generics    
Fri. 2/24/06 Lec 19: Generic list framework    
Week 8      
Mon. 2/27/06 Lec 20: Discussion of Solutions to Exam1 Lab 07: UML Sequence Diagram and Hangman View Project #1: Hangman (milestone 1)
Tue. 2/28/06    
Wed. 3/01/06 Lec 21: Programming for Change    
Fri. 3/02/06 Lec 22: Restricted Access Container (RAC)    
Week 9      
Mon. 3/06/06 Lec 23: Discussion of the Koch Curve Project; Ordering and Priority Queue Lab 08: Design Patterns for Koch Curves Hangman (milestone 2)
Tue. 3/07/06    
Wed. 3/08/06 Lec 24: Binary Tree Structure and Binary Search Tree    
Fri. 3/10/06 Lec 25: Dictionary    
Week 10      
3/13/06-3/17/06 Spring Break, No Classes!    
Week 11      
Mon. 3/20/06 Lec 26: Java Dynamic Class Loading; "Big Oh" Lab 09: LRStruct Exercises  
Tue. 3/21/06   Project #2: Koch Curves (milestone 1)
Wed. 3/22/06 Lec 27: Array-based Dictionary    
Fri. 3/24/06 Lec 28: Hash Table and Hash Functions    
Week 12      
Mon. 3/27/06 Lec 29: "Finding Nemo": The Marine Biology Simulation Lab 10: Design Patterns for Marine Biology Simulation  
Tue. 3/28/06    
Wed. 3/29/06 Lec 30: Java I/O Stream Exam #2 from 7:30 PM to 10 PM  
Fri. 3/31/06 Lec 31: More Hash Functions     Koch Curves (milestone 2)
Week 13      
Mon. 4/03/06 Lec 32: Design Patterns for Self-Balancing Trees (part 1) Lab 11: Stream I/O  
Tue. 4/04/06    
Wed. 4/05/06 Lec 33: Design Patterns for Self-Balancing Trees (part 2)   Project #3: Marine Biology Simulation (milestone 1)
Fri. 4/07/06 Spring Recess.  No Classes!
Week 14      
Mon. 4/10/06 Lec 34: Design Patterns for Games Lab 12: Facade of the Game  
Tue. 4/11/06    
Wed. 4/12/06 Lec 35: Min-Max Principle; Alpha-Beta Pruning    
Fri. 4/14/06 Lec 36: Balancing Binary Trees   Marine Biology Simulation (milestone 2)
Week 15      
Mon. 4/17/06 Lec 37: Design Patterns for Sorting Lab 13: Finite State Machine: A Cheap Calculator  
Tue. 4/18/06    
Wed. 4/19/06 Lec 38: Heap Sort and the Heap Structure; Merge Sort; Quick Sort    
Fri. 4/21/06 Lec 39:  Design Patterns for Parsing (part 1)   Project #4: Games 4 Two (milestone 1)
Week 16      
Mon. 4/24/06 Lec 40: Design Patterns for Parsing (part 2) Lab 14: Recursive Descent Parsing  
Tue. 4/25/06    
Wed. 4/26/06 Lec 41: Last day of classes: Wrap up   Games 4 Two (milestone 2)
Sat 4/29/06   Take-home Final Exam Posted  
Wed 05/03/06     Othello Tournament in Symonds 2 from 11 AM to 3 PM.
Th 05/04/06     Take-home final due at noon for all degree candidates.
Wed 05/10/06     Take-home final due at 5 PM for all non-degree candidates.