COMP 405/505
Spring 2016

Advanced Topics in Object-Oriented Design

Home  Info  Owlspace  Java Resources  Eclipse Resources  SharePoint  Piazza

Welcome to the Spring 2016 Comp405/505 home page!

COMP 405 (undergraduates)  and Comp505 (graduates)  is the gis a topics-driven exploration of cutting-edge object oriented design issues and concepts including mutable recursive data frameworks, design patterns for lazy evaluation, sorting, parsing and games, service-oriented architectures and cloud computing.

The goal of COMP 405 is two-fold: one is to introduce new object-oriented design concepts and the other is raise the level at which those topics are discussed.   Students will learn to discuss the OOP/D concepts in terms design patterns, applicability, pros/cons and other programming paradigms.   Learning to articulate one's conceptions verbally and in writing are key goals of the course as well as the ability to critically evaluate the opinions expressed by others.

 

Prerequisites:  Comp310 (undergraduates) or Comp404 (graduate students) -- Detailed knowledge and practice in abstract structure and behavioral representations, delegation model programming, design patterns and Java are required.

Primary target audience:  Third year or greater CS students who are interested in object-oriented programming and design, large flexible systems, enterprise-class networked applications, dynamically configurable systems and software engineering.    Students who plan on taking Comp410 in the future must take Comp310 or Comp404 beforehand and are encouraged to take Comp405 as well in preparation for Comp410. 

For more and the latest infomation, please see the Info page or contact Dr. Wong  (swong at rice.edu)

CLASS TIMES:  MWF 10:00 AM - 10:050 PM  (DH 1042)   

For a tentative topics list, please see the Info page.

Tentative Schedule

This schedule should only be considered as a guide.  Expect that the schedule will change often!   

Instructions on how to use Subclipse/Subversion to turn-in your assignments.

General Assignment Instructions (supplemented by the specific instructions linked below)

Date

Lecture

Notes

Assignment Due Date 
(at beginning of class!)

Mon. 01/11/16 Immutable and Mutable Recursive Structures
Wed. 01/13/16    
Fri. 01/15/16    
Mon. 01/18/16 MLK Holiday -- No Class!    
Wed. 01/20/16 Lazy Evaluation Finite State Machine 
Fri. 01/22/16 Additonal lazy evaluation information No more if's!  See lazy evaluation demo code.
       
Mon. 01/25/16   Self-Modifying Finite State Machine Demo
Wed. 01/27/16 Design Patterns for Sorting    
Fri. 01/29/16      
       
Mon. 02/01/16 Extended Visitors and Recursive Descent Parsing  
Wed. 02/03/16      Extended Finite State Machine  
Fri. 02/05/16    
Mon. 02/08/16  
Wed. 02/10/16

 

Fri. 02/13/16

Operational parser-generator infrastructure

       
Mon. 02/15/16 HW03 draft write-ups signed off by a staff person
Wed. 02/17/16  
Fri. 02/19/16    
       
Mon. 02/22/16   Dynamic communications test day
Wed. 02/24/16      
Fri. 02/26/16   Dynamic communications demo day Dynamic Communications Language
       
02/29/15 - 03/04/16 Spring Break -- No Classes!    
       
Mon. 03/07/16      
Wed. 03/09/16 Object-Oriented Game Theory System Block Diagrams  
Fri. 03/11/16    
Mon. 03/14/16 Component-Framework Systems HW04 draft write-ups signed-off by staff person
Wed. 03/16/16     HW03 peer reviews due
Fri. 03/18/16 Software Development    
Mon. 03/21/16   Games demo day Game Theory
Wed. 03/23/16 Google App Engine  
Fri. 03/25/16     Operational GAE project using multiple JSPs and a simple form (everyone)
 
Mon. 03/28/16
Wed. 03/30/16     Final Project Proposals Due
Fri. 04/01/16 Midterm Recess -- No Class!    
       
Mon. 04/04/16      
Wed. 04/06/16      
Fri. 04/08/16      
       
Mon. 04/11/16
Wed. 04/13/16
Fri. 04/15/16      
       
Mon. 04/18/16
Wed. 04/20/16      
Fri. 04/22/16      
       
Fri. 04/29/16
1:00 PM - 3:00 PM
Final Project Demo Day
Location: PLT Lab Final Project: Cloud Games
       
       
       
       

© 2015 by Stephen Wong