Mike Holcombe - Third Year Projects 1999-2000

Research Projects:

WMLH-1: PIY-II
WMLH-2: Perfect plants
WMLH-3: Communicating X-machines.
WMLH-4: Specifying intelligent agents.
WMLH-5: Specifying games using machines.
WMLH-6: NARTROF - reverse engineering fortran into X-machines.
WMLH-7: Evolving databases.

Industrial Projects:

WMLH-8: Engineering web pages.
WMLH-9: Speak-Up project.

Project description.

WMLH-1: PIY-II

Key words: HCI, Java, X-machines.

Description

This will take further the project that established the feasibility of the approach last year. Who needs programmers! Many straightforward business applications could be programmed by the user - who understands the business process much better. These days almost anyone can design a web page using a modern word processor and if they can also use a spreadsheet - understand the standard types of data used in say Excel 6 together with the way to write formulae then they should have all the skills needed to design a suitable program. The first project involved defining an environment which will take a simple graphics package to represent a series of screens comprising the user interface, combine them with suitable definitions of data and formulae to represent the processing carried out behind these screens, use a simple editor to specify the order in which the screens are called and the processing carried out and generate a complete working system, possibly in Java, to form a complete business application. The Stamp Dealer example (see the CD notes associated with COM221) demonstrated the screen based design method that lies behind this method (based on X-machines). The project last year generated an environment which could be used to create such a system. What we have to do now is to convert the designs produced by the tool into executables. This will involve looking at code generation and building a suitable parser like system which will then be fed into a suitable code generation program.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top
Project description.

WMLH-2:Perfect plants V

Key words: Graphics, Java, X-machines.

Description

This is a continuation of previous projects and will build on the software developed during them. Realistic images of plants can be generated using a method known as L-systems. These are like formal grammars and consist of sets of rules which form the basis of substitutions into strings which represent a growing plant. Software has been written which allows for the definition of these systems and their use in generating 3-dimensional images of plants and trees. See the book "Algorithmic beauty of plants". As you probably know each species of plant can be described (and defined) in relation to its structural form, the shape of its leaves, their arrangement on the stems, the structure and components of the flowers, seeds and roots or bulbs. Botanists have developed a vocabulary to describe these features. The proposed system will require a user-friendly interface to allow for a botanist, when faced with a plant identification problem, to be able to input information about the shape and type of leaves, stems etc. and the system will then generate images of what such a plant would look like - which can be compared with the field specimen. Since nothing is ever perfect and there is genetic and environmental variation it should be possible to produce several images illustrating the sort of variations that might be met. The project aims to introduce these elements by allowing for the growing string representation of the plant to be altered - deleting substrings to reflect the removal of parts of the plant which are eaten or destroyed in some way. We will then explore the many different strategies for carrying out string deletion in order to identify those that are biologically plausible and which generate interesting (and imperfect) images of plants. A particularly neat development is the use of a state machine to control a set of L-systems. In this way we can simulate complex growth using very simple L-grammars.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links


Back to top
Project description.

WMLH-3: Communicating X-machines editor and simulator.

Key words: Specifications, X-machines, Java.

Description

This project will build on the successful Visual Z tools developed previously and is intended to combine the best features of the Z tools to define simple types and functions together with a state diagram editor.The communicating X-machine system will be built onto this using a very neat way to describe the communication between a collection of such machines.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links


Back to top
Project description.

WMLH-4: Specifying intelligent agents

Key words: AI, Java, X-machines.

Description

Intelligent Agents are currently "hot news". An Intelligent Agent is a piece of software which acts autonomously on behalf of a user to achieve that user's goals. They behave in a proactive way interacting with their environment and possibly other Intelligent Agents to solve complex tasks. The first stage of the project is to try to specify different classes of Intelligent Agents in a fairly formal manner. The book "A.I - A Modern Approach" by Russell and Norvig (Prentice-Hall) is a key reference. We will use a combination of simple data description techniques and finite state machines to describe them. It may also be interesting to see how a community of Intelligent Agents might behave and to look at several strategies from co-operation to competition applied to such a situation. A possible application area is in intelligent debugging. Suppose we were to look at the issues associated with debugging something like a Java program. The compiler produces a lot of information, error messages and so on, there is a detailed description of the syntax of the language as well as some information about its semantics, coupled with a certain amount of information about the programmer's intention (a specification or design of sorts). It might prove sufficient to design an agent or agents to automatically fix some of the more common bugs. See the article : Nardi, Miller & Wright, "Collaborative programmable intelligent agents." Communications of the ACM, 41(3), 96-104, 1998. Another area might be strategy games. There is a 3rd year report which touches on this.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

Project description.

WMLH-5: Specifying games using machines (with Gremlin)

Key words: Graphics, Java, X-machines.

Description

In recent years, computer games have become more and more complex with larger teams of people working for longer periods. The days of Pong, Pacman and Pole Position are long gone. Nowadays games such as Actua Soccer, Quake and Tekken thrill with their eye-candy and multi-player game-play. Such games are the work of teams of programmers and artists, working over periods of 12 months or more. Dealing with complexity is of paramount importance. On the development side, source code control systems and version control systems are used together with tools such as profilers and bounds checkers. Object-oriented ideas are also making inroads with many C programmers moving to C++. However the requirements specification and design stages of game development are less well addressed. The aim of this project is to look at the applicability of state machines in representing and designing logic and interaction for computer games. The project will start by taking an existing simple game such as Pacman (a Java version of Pacman, together with full source code, can be found at ¬http://www.csd.uu.se/~alexb/.) and completing a full analysis and representation of it using an approach based on state machines. This will then hopefully lead to some more general comments on the applicability of state machines and their simple generalisations to computer games in general. As an example from Pacman, the ghosts can be in a number of states. For instance they can be in an idle state waiting to enter the maze. When they pass their allotted idle time they can enter the maze. When they are in the maze they are in a 'normal' state running around and making decisions on a change of direction at maze junction points. At a junction point they can decide to head north, south, east or west depending on a range of factors such as whether or not a direction is blocked and their iq and relative position to the 'chomp' character. If a random value is less than their iq, then the direction chosen is the one which heads in the direction of the position of the chomp. If the chomp eats a 'big pill' in the maze and then comes into contact with a ghost, the ghost is eaten and its state changes to indicate that it must return to the maze entry area and enter an idle state again. If the ghost comes into contact with the chomp when it hasn't eaten a big pill, then the chomp dies and a life is lost.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links


Back to top
Project description.

WMLH-6: NARTROF (reverse engineering Fortran code)

Key words: Reverse engineering, Java, X-machines.

Description

There is a great deal of money invested in Fortran code in many application areas, some of which are safety and mission critical. One project in the Verification and Testing Research Group is looking at radiation planning software used in the treatment of cancer. The source code is written in Fortran77 and has been extensively revised over the years. There is no documentation. The research project has identified a mechanism for extracting a formal specification of the software from this source code in the form of a generalised state machine. This project would involve creating an environment that would allow for the process of building such a specification semiautomatically. The key aspects include identifying the overall architecture of the system, what procedures call what, and the flow of control and data through the system. This information is then used to construct a collection of machines that describe the processing within a procedure and the relationships between them. Once this has been done various other analysis can be carried out. Much of the analysis of the fortran structures and how to derive an X-machine has been done and some code for doing this is also available. The system needs to be refined and developed further to produce a workable environment for reverse engineering from arbitrary fortran code. Details of the X-machine method (which is what will be used) can be found on: http://www.dcs.shef.ac.uk/~wmlh

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

WMLH-7: Evolving databases.

Key words: Databases, Java, X-machines.

Description

The establishment view of information system design is to create a database and to base the system upon this. This entails analysts examining the types of data relating to the business process, examining the relationships that pertain amoongst this data and building a data model which might be a relational or Object-oriented model. the database is then implemented using (usually) a DBMS etc. The relational model developed to deal with issues such as data integrity and the performance problems associated with very slow mainframes with tiny RAM and slow tape based storage. Are these still a problem now? The main weakness of the current approach is that the business world is very dynamic and within a few months the business processes may change fundamentally (the company starts exporting our products to Russia, the company buys another company with incompatible systems, we join EMU etc.). We have to hire expensive analysts to completely reengineer the data model and build a new system at vast expense. Who needs it? What we want to investigate is much simpler data model structures with smart query and search algorithms that will take advantage of the modern technology of very fast PCs, cheap storage and fast disk access etc. and which can be easily extended or revised without the need for a complete rebuild when the context has changed. The initial focus will be on large linear structures - simple records with large numbers of fields and to investigate ways of designing quick query algorithms and to see how these perform against a traditional relational or OO structure. We will then try to redesign the system to see if it is possible to adapt the linear structure to a new set of data requirements without a lot of effort. The main reference is any good book on databases such as Date or Elmasri & Navathe.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

Project description.

WMLH-8: Engineering Faculty web pages and CORBA.

Key words: HTML, Java, CORBA.

Description

This is a continuation of two previous projects. What we are trying to do is build a java based environment that will allow for the remote access to a piece of software over the web without downloading the executables. So that a browser could look at the Faculty of Engineering's web pages, for example, and see that some research group has developed some interesting software, perhaps simulating some engineering process or issue and to try it out. There are many applications that could be found for this, for example, users could evaluate software over the web without having to download the executable or demo version and install it on their own server. There are many marketing opportunities for this sort of facility. The main source material are the 3rd year dissertations by Traore (1997), Lawrence (1998) and Catchpole (1999). The main target is to take the environment produced this year and apply it to animating software produced by some of the research groups in the Faculty, or interesting teaching software come to that, and to liaise with the originators of the software and interface the Java environment to it.

This project requires programming ability and mathematical confidence.

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top

Project description.

WMLH-9: Speakup Life Planning Package

Key words: HCI, Java, HTML

Description

Speakup is a self advocacy organisation in Rotherham set up by and for people with learning disabilities. For the past 6 years, the group has been making information friendly for people with learning disabilities. We have made over 30 videos covering diverse subjects from "Coping with Death" to "Fun things to do". These dynamic and pioneering videos are extensively used throughout the UK. The aim of this project is to develop a computer and video package which is user friendly and interactive. It should give users a wide variety of choices to make decisions about their lives, enabling them to plan their lives in a person centred way. The format will be CD-ROM and would incorporate a consistent and simple interface involving speech, animation and video to communicate clearly to the user with learning disabilities. The package will guide the user through a process of planning what they want to do with their life, and help them decide what is important. Subjects covered in the packages will include "Employment and Education", "Housing and Money" , "Socialising and Health (including wheelchair access)", "Relationships / Marriage / Children", "Travel / Life Experiences", "What do you believe in (religion /spirituality/ etc.) ?", "Getting old...have you done the things you wanted to do ?". Throughout the programme, there will be frequent links to existing video material produced by Speakup to assist the decision making process. A successful life planning will enable people with learning disabilities to take real control over their own lives now and in the future. Contact : Geoff Doncaster Address : Speakup Self Advocacy 43 Holm Flatt Street Parkgate Rotherham S62 6HJ Telephone : 01709 710199 Email : Geoff.Doncaster@Speakup.freeserve.co.uk

This project requires an interest in helping handicapped people as well as some technical knowledge..

Resources

No specific requirements other than access to PCs and probably Java.

Reading

Module Links

Back to top