Design patterns for lazy evaluation
We propose an object-oriented (OO) formulation and implementation of lazy/delayed evaluation by reusing and extending an existing linear recursive structure (LRS) framework with the help of the strategy, decorator and factory design patters. The result is a robust, flexible framework that can handle both infinite and finite lists and to which existing algorithms for finite lists can be applied without modification. The OO techniques used to develop this model are effective tools for teaching abstraction and design of data structures.

title: Design patterns for marine biology simulation
abstract: We specify and implement a GUI application that simulates marine biological systems by making extensive use of object-oriented design patterns.The key design patterns are model-view-control, observer/observable, visitor, command, factory method and decorator. These design patterns help delineate the roles and responsibilities of the objects in the system, establish loose coupling between objects and arrange for the objects to communicate and cooperate with one another at the highest level of abstraction. The result is an application that exhibits minimal control flow, yet is powerful, robust, flexible and easy to maintain.Our work entails a non-trivial redesign of the current AP Computer Science Marine Biology Simulation case study and may serve as a case study for an introductory "object-first" curriculum.

title: Design patterns for games
abstract: Designing a two-person game involves identifying the game model to compute the best moves, the user interface (the "view") to play the game, and the controller to coordinate the model and the view. A crucial task is to represent the algorithms used in their highest abstract forms. This can prove to be a difficult and subtle endeavor. It is made easier however by the use of good object-oriented (OO) design principles to help maintain a high level abstract viewpoint during the design process. The state pattern is used to represent the game board and is coupled with the visitor pattern to provide state-dependent, variant behaviors. The min-max algorithm and its variants are implemented as the strategy pattern, which allows flexible and extensible computational capability. Careful analysis is performed to properly abstract the interactions between the model and the view. The command design pattern is used to provide callback services between the model and the view. Leading students through this design process enables them to learn algorithms and architectures that easily scale to full-sized applications.

title: Marine biology simulation
abstract: The Marine Biology Simulation is designed as a final project in an objects-first CS2 course. It provides an entertaining setting that serves as compelling example of the powers of object-oriented design and programming.

title: Development of Hybrid Optimisation Techniques Based on Genetic Algorithms and Simulated Annealing

title: Movement-based interactive dance performance
abstract: Movement-based interactive dance has recently attracted great interest in the performing arts. While utilizing motion capture technology, the goal of this project was to design the necessary real-time motion analysis engine, staging, and communication systems for the completion of a movement-based interactive multimedia dance performance. The movement analysis engine measured the correlation of dance movement between three people wearing similar sets of retro-reflective markers in a motion capture volume. This analysis provided the framework for the creation of an interactive dance piece, Lucidity, which will be described in detail. Staging such a work also presented additional challenges. These challenges and our proposed solutions will be discussed. We conclude with a description of the final work and a summary of our future research objectives.

title: Lightweight Agent Framework for Camera Array Applications
abstract: This paper describes a lightweight middleware agent framework (LAF) for coordinating a large array of computers with attached cameras to construct high resolution video-rate image sequences. Compared to existing camera middleware, LAF provides more than a remote sensor access API. The use of an agent framework allows reconfigurable and transparent access to cameras, as well as software agents capable of intelligent processing. It also eases maintenance by encouraging code reuse. Other features include an automatic discovery mechanism at startup, and multiple language bindings. Performance tests showed the lightweight nature of the framework while validating its correctness and scalability. Two different camera agents were implemented to provide access to a large array of distributed cameras. Correct operation of these camera agents was confirmed via several image processing agents.

title: Cluster Computing and Grid 2005 Works in Progress
abstract: This is the second in a two-part series () of works-in-progress articles taken from a special session, which was part of the Cluster Computing and Grid 2005 conference (http://www.cs.cf.ac.uk/ccgrid2005), held in Cardiff, UK. The session was organized by Mark Baker (University of Portsmouth, UK) and Daniel S. Katz (. For more information, you can contact the session organizers or the authors of the articles.

title: A Distributed Approach to Musical Composition
abstract: Current techniques for automated composition use a single algorithm, focusing on one aspect of musical generation. In our system we make use of several algorithms, distributed using an agent oriented middleware, with each specialising on a separate aspect of composition. This paper describes the architecture and algorithms behind this system, with a focus on the agent framework used for implementation. We show early results which encourage a future application of this framework in automated music composition and analysis.