Projects 2008-2009

Group ID Supervisor Project title
gp08-nhn Dr. Henrik Nilsson Keyboard Hero
gp08-nza Dr. Natasha Alechina Interleaving of Regular Expressions
gp08-txa Dr. Thorsten Altenkirch Diplomacy - Online
gp08-jqb1 Dr. Jaume Bacardit Carcassonne, the Board Game
gp08-rcb Prof. Roland Backhouse Online Examination of Algorithmic Problem Solving
gp08-srb Dr. Steve Bagley The Teaching RIPper
gp08-axc Dr. Andrew Crabtree Applications and Services for the Networked Home
gp08-jmg Dr. Jonathan Garibaldi Robot Football Team Strategy Development
gp08-cmg Prof. Chris Greenhalgh A Media-Sharing Application for Mobile Phones
gp08-cah Dr. Colin Higgins A Software System for Sports Arbitrage
gp08-gmh Dr. Graham Hutton Scratch Light
gp08-gxk Prof. Graham Kendall Sports Scheduling
gp08-nxk Dr. Natalio Krasnogor Webservices for Protein Structure Features Calculation, Prediction and Visualisation
gp08-bai Dr. Bai Li Change Detection in Image Sequences
gp08-bsl Dr. Brian Logan Collaborative Project Management and Tracking Tool
gp08-ajp Dr. Andrew Parkes Deal Or No Deal
gp08-tpp Dr. Tony Pridmore Symbol Spotting System
gp08-qiu1 Dr. Gouping Qiu Image Indexing and Retrieval: A Content-based Approach
gp08-qiu2 Dr. Gouping Qiu Digital Photo Album
gp08-rxq Dr. Rong Qu Online Interactive Module Registration Assistant
gp08-mvr1 Dr. Milena Radenkovic Multiplayer Networked Mobile Phone Game
gp08-mvr2 Dr. Milena Radenkovic Airline Website


Keyboard Hero

Group ID: gp08-nhn

Supervisor: Henrik Nilsson (nhn)

Group mailing list: gp08-nhn@cs.nott.ac.uk

Group members:

Description:
Guitar Hero is a combined musical and computer game that has become very popular recently. This project is inspired by that game, but aimed at keyboard players instead, and with a more educational scope. It is envisioned that the game will be played by attaching a MIDI keyboard to the computer.

One can imagine many kinds of games. The simplest is perhaps showing the score for a musical phrase to the player, picked by the computer at random from a library (or maybe even randomly generated), and asking him or her to play it as accurately as possible guided by a metronome click. Points are scored depending on how accurately the phrase is played, and the difficulty of the phrase (e.g. tempo, how involved it is, key, ...). One can imagine variations with one note at a time or chords, and one or two hands simultaneously. Other variations include asking the player to play with a certain rhythmic feel, like swing, as opposed to as accurately as possible.

To make the game more fun, and more like Guitar Hero, the metronome click could be replaced by a backing track (either MIDI or audio) for well-known tunes.

For ultimate fun, consider on-line play. It's likely not feasible to broadcast the performance of a player in real-time unless they are on the same local net, but one could easily capture a performance as a MIDI sequence, and then sending that to the other players so they can hear how well or badly their opponents played a particular phrase. One could consider allowing the players to set each other musical challenges by picking phrases from well-known songs as an alternative to the computer picking phrases at random.

In short, plenty of scope to develop this project in different directions! As a base-line, the project should implement at least a simple variation of the game, and playing over the Internet in some form.


Interleaving of Regular Expressions

Group ID: gp08-nza

Supervisor: Natasha Alechina (nza)

Group mailing list: gp08-nza@cs.nott.ac.uk

Group members:

Description:
The project involves writing a tool which computes an interleaving of two regular expressions. The interface should allow the user to input two regular expressions. In the backend, they will be converted to two automata, their product automaton will be computed, and translated back into a regular expression which will be displayed in the interface.


Diplomacy - Online

Group ID: gp08-txa

Supervisor: Thorsten Altenkirch (txa)

Group mailing list: gp08-txa@cs.nott.ac.uk

Group members:

Description:
The goal of the project is to develop an interactive, multi-user, networked implementation of the popular board game "Diplomacy". The development should be based on a client-server architecture where the server stores the state of the game, communicates with the client and acts as a referee. The clients are graphical and provide a convenient interface to execute moves but also supports communication between players. The implementation should also provide a "lobby" where players can find partners and which keeps track of players ranks.

I suggest to use JAVA (exploiting remote method invocation) but I am open to alternative proposals.


Carcassonne, the Board Game

Group ID: gp08-jqb1

Supervisor: Jaume Bacardit (jqb)

Group mailing list: gp08-jqb1@cs.nott.ac.uk

Group members:

Description:
Carcassonne is a very simple but flexible tile-style board game. It is inspired by the city of the same name in the south of France, famous for its extraordinary walled citadel and castle. The objective of the game is to build a world based on a set of predefined tiles. This world contains castles, paths and fields. In turns, each player gets a blindly picked tile, and has to place it on the table, connected to the already present tiles in a way that it matches the rest of the "world". For instance, a path tile has to be connected to another tile containing a path. Players also have some tokens to take control of different parts of this world. There are a few rules that control de game, but not many, and given that each time the players can construct a new world, this game has an extraordinary level of flexibility. For more information, please see Wikipedia

This group project has to implement an online version of this game. A central computer will host the game, will control all rules and will give turns to each player. The players will connect remotely to the central computer, through e.g. a web interface or any other system that gives enough flexibility that allows a smooth interactive experience to the users of the game. The interface should also include a chat system that lets the players talk between them . The interface should have different levels of difficulty. In the easiest levels, it should help the player in placing a new tile by, for instance, highlighting the suitable positions. In more difficult levels the interface should only check if the position that the player chose is correct or not. Other kinds of help could be giving strategic hints to the players.


Online Examination of Algorithmic Problem Solving

Group ID: gp08-rcb

Supervisor: Roland Backhouse (rcb)

Group mailing list: gp08-rcb@cs.nott.ac.uk

Group members:

Description:
Combinatorial games are used extensively in G51APS. This project has goal to develop software for online testing of the students' understanding of the material.

The software should have at least the following components:

  1. A setup component. This component should allow the lecturer to specify the rules of play on simple matchstick games. Typically the rules will take the form of a boolean test on the number of matches that can be removed and/or the number of matches that are left after a move. Questions posed will be based on combining such simple games and will involve determining winning/losing positions, mex numbers and winning moves. How marks are awarded to different questions and how they are compiled must also be flexible.
  2. A secure identification component. Students taking a test must identify themselves in a secure fashion.
  3. A mark-recording component. Marks per student should be securely recorded and integrated with the student record system. Statistics on the results of the tests should be compiled.


The Teaching RIPper

Group ID: gp08-srb

Supervisor: Steve Bagley (srb)

Group mailing list: gp08-srb@cs.nott.ac.uk

Group members:

Description:
The advent of high-end digital presses has created opportunities for new methods of creating printed documents. Print runs need no longer fall into category of many copies of the same document, instead it is possible for each document to be customized to its recipient. These documents, termed variable data documents, can vary from being as simple as adding the customers name, to selecting completely different content based on the recipient's interests or habits.

This brings about a new breed of hardware and software challenges. Traditionally, the time take to generate the raster image data used to drive the printing (Raster Image Processing, or RIP for short) has been immaterial, since it was a task performed once at the start of the print job. However, when each page instance is different, every page must be RIPped independently. This poses a problem since the data for each page must be generated in less than a second so that the printing press can keep running at speed.

Therefore, new approaches are required to describe and print Variable Data Documents. The most common of these is to describe each page as a series of separate document components that are positioned on each page at various points. These components can then be cached at the raster bitmap level, and then composited directly onto the final raster removing the need to repeatedly RIP the components. New technologies, principally the Personalized Print Markup Language (PPML), have been developed that can describe these documents.

Your task is to develop a tool that will display a PPML document on screen and show which parts of each page document are cached at the raster level, which parts are being RIPped specifically for this page etc.

The following papers might provide more information:


Applications and Services for the Networked Home

Group ID: gp08-axc

Supervisor: Andrew Crabtree (axc)

Group mailing list: gp08-axc@cs.nott.ac.uk

Group members:

Description:
The home is increasingly the focus of technology development following the widespread uptake of broadband and home network solutions. In 2008, over 65% of UK homes had Internet access, with over 55% of all UK households connecting via broadband, and the trend is increasing. It is accompanied by a shift in service access, consumption patterns, and media usage, and by the proliferation of computational devices and digital media in the home. It results in new patterns of interaction and communication in the home and between household members and wider social networks. While much of the emphasis in IT research has focused on the development of the smart home, it has also been recognized that the bulk of the target audience consists of homes which already exist. A key design challenge thus consists of developing services and applications that may be incorporated into existing home environments and patterns of everyday life.

The goal of this project is to develop services or applications that support interaction and communication between household members. Solutions therefore focus on cooperative activities within the home or that take place between members outside of the home. Coordinational activities such as:

Solutions may exploit mobile and/or broadband-based devices and services. They should be based on observations of real world activities and involve potential users in their development through formative evaluation.


Robot Football Team Strategy Development

Group ID: gp08-jmg

Supervisor: Jonathan Garibaldi (jmg)

Group mailing list: gp06-jmg@cs.nott.ac.uk

Group members:

Description:
The Federation of Robot-Soccer Association (FIRA) has a robot football simulator and runs associated competitions. Five-a-side teams of robots compete against each other within this simulation environment, according to a specified set of rules. National and international level competitions are run each year in the FIRA world cup competition. In this project, the group will develop a robot-team strategy capable of playing a competitive game. A team strategy will be implemented in a simplified version of C++ (which is quite close to Java). Individual robots may be programmed with different behaviours (or roles) using a variety of techniques, ranging from very simple algorithms to complex "intelligent" behaviours. It is envisaged that the group will begin by developing one or more simple strategies and then gradually increase the complexity and sophistication of the team, as time allows. At the end of the project, the strategy may be tested on the real robots and may, if of sufficient standard, be entered into the UK championships.


A Media-Sharing Application for Mobile Phones

Group ID: gp08-cmg

Supervisor: Chris Greenhalgh (cmg)

Group mailing list: gp08-cmg@cs.nott.ac.uk

Group members:

Description:
The aim of this project is to design, implement and evaluate an application for use on mobile phones which allows media (e.g. photos) to be shared between mobile phones. The application SHOULD: be written in Java (J2ME, CLDC); use Bluetooth for local wireless communication; support at least one media type (e.g. image); allow shared media to be viewed; allow the sharing of media to be controlled by the user; allow local media management (e.g. to avoid running out of storage space). As optional extensions, the application MAY: integrate media capture (e.g. use of a built-in camera); support multiple media types (e.g. audio, video, text); include some form of digital rights management and/or accounting; allow unattended use, e.g. to automatically publish local information or for advertising from a fixed phone; include some element of trading or "game play" in the sharing of media; link to a fixed server such as a web site. You may decide additional features or capabilities that the application should have. It is suggested that the Sun Java Wireless Toolkit be used to support development.


A Software System for Sports Arbitrage

Group ID: gp08-cah

Supervisor: Colin Higgins (cah)

Group mailing list: gp08-cah@cs.nott.ac.uk

Group members:

Description:
Sports Arbitrage Trading is the act of placing bets on all possible outcomes of a sporting event so that you lock in a definite profit at the end of that event. It is a particular case of arbitrage, arising on betting markets due to the markets (bookmakers) different opinions on event outcomes. By placing one bet per each outcome with different betting companies, the bettor can make a profit. As long as different Bookmakers are used for arbitrage betting the Bookmakers do not have a problem with this. Each Bookmaker will still make profit due to their calculations. A typical arbitrage is around 2%, often less, however 4%-5% are also normal and during some special events they might reach 20%!

There are disadvantages to arbitraging, the main one being how to find them! There are services that can be subscribed to, however, they are expensive and because many people use them, lead to speed competition between the subscribers as they all try to take advantage of the same circumstances.

A (partial) solution to this is to write bespoke software. This project involves writing the software to provide such a system and will need a database, concurrent/distributed software to poll for market values (the odds from each bookmaker), and software for controlling and monitoring the system, for accessing the data and for presenting options and tracking activities. It will involve some of: SQL, Java, C#, JSP, PHP, RSS, XML, HTML, SHTML etc.


Scratch Light

Group ID: gp08-gmh

Supervisor: Graham Hutton (gmh)

Group mailing list: gp08-gmh@cs.nott.ac.uk

Group members:

Description:
The Scratch system developed by MIT's Media Lab is a graphical language that allows children to develop simple games. The aim of this project is to design and implement a "light" version of the system that includes a range of basic features, but need not be as comprehensive as the full system itself. This project will involve learning about a number of interesting topics, including language design, interpreters, and user interfaces.


Sports Scheduling

Group ID: gp08-gxk

Supervisor: Graham Kendall (gxk)

Group mailing list: gp08-gxk@cs.nott.ac.uk

Group members:

Description:
This project involves creating a set of fixtures for an English football season. At first sight, it might appear that we can simply schedule each division in isolation. However, something called the pairing system means that we cannot do this. The pairing system dictates that certain teams cannot play at their home venue at the same time, and this might affect teams which are in different divisions. Your main tasks include carrying out a literature review to find out what has been done before in this area, and implementing and evaluating an flexible and easy-to-use system for constructing the fixtures. Further details here.


Webservices for Protein Structure Features Calculation, Prediction and Visualisation

Group ID: gp08-nxk

Supervisor: Natalio Krasnogor (nxk)

Group mailing list: gp08-nxk@cs.nott.ac.uk

Group members:

Description:
This project will involve the development of a state-of-the-art webserver to support the calculation, prediction and visualisation of protein structure features. Proteins are the essential "workforce" of living organisms and as such have been rigorously studied for over almost a century. In this project the group will integrate bioinformatics software developed in Krasnogor's group into a user friendly web server that could be used by biologists and bioinformaticians all over the world. Two kind of services will be provided, namely, (1) protein structure feature prediction and (2) protein structure feature calculation. The software for 1 & 2 has been implemented in Haskell and will be provided to the group. A prototype server for 1 is running at http://lobelia.cs.nott.ac.uk/psp/prediction/ and the group will need to expand the current services by adding (2) and by creating from scratch graphical visualisations for 1 & 2. This is a challenging software engineering project in which a variety of technologies will need to be learnt and glued together. The skills gained throghout the project will be transferable to other modules and, of course, industry. Moreover, the students will have the opportunity to directly interact with a very active and successful research team and experience science as it is done on a day-by-day basis.


Change Detection in Image Sequences

Group ID: gp08-bai

Supervisor: Bai Li (bai)

Group mailing list: gp08-bai@cs.nott.ac.uk

Group members:

Description:
This project focuses on the principle of using hand tracking to interact with a gaming environment. The system should let the user influence changes in movement of various different objects, by just waving their hand in front of a camera. The camera registers that the hand is currently moving and signals to the system. The program will acknowledge the moving hand and move an object on the screen. A system of this kind may prove useful to a gamer, allowing a more interactive experience, leaving sluggish keyboard controls in the past.


Collaborative Project Management and Tracking Tool

Group ID: gp08-bsl

Supervisor: Brian Logan (bsl)

Group mailing list: gp08-bsl@cs.nott.ac.uk

Group members:

Description:
The aim of this project is to design and implement an Internet based project management tool to support collaborative group activities (e.g., a software group project, organising an open day, arranging a conference, sports meeting, concert etc). The tool should support the creation of tasks and subtasks for one or more projects, associating people and resources to tasks, and tracking the status of the project. It should be possible to state constraints on tasks (e.g., that task A must occur before task B, or that a task or activity requires a particular resource, e.g., a seminar room), and to associate deadlines, milestones and deliverables with tasks. It should be possible to delegate responsibility for the organistion of a particular task to a particular person (or group of people) and for multiple users to update and track the status of the project simultaneouly over the Internet, e.g, adding subtasks of a task, marking tasks as completed, deferred, postponed, etc. (One possible extension would be to allow updates and project tracking from devices such as mobile phones etc.) To track projects, it should be possible to see who is working on which task(s), upcoming and missed deadlines (e.g., using a calendar view). All changes to the task strucuture, task allocations etc should be logged, so that it is possible to understand how the project changed over time. It would be desirable if visualisations of the project (e.g., as GANTT charts or task networks) can be printed or saved for inclusion in reports etc.

Detailed specification of the project will be decided by the project group in collaboration with the project supervisor. A range of implementation approaches are possible; the approach adopted to be decided by the group.


Deal Or No Deal

Group ID: gp08-ajp

Supervisor: Andrew Parkes (ajp)

Group mailing list: gp08-ajp@cs.nott.ac.uk

Group members:

Description:
Deal Or No Deal (DOND) is (or at least was) a television game show in the UK; See Wikipedia. The aim is to develop this is into a potential computer game. The resulting application should be fun, interesting and easy to use. It should also have various playing options from standalone single user up to networked multi-user. When the computer plays then it should also have intelligent playing strategies; for example, the strategies should have an ability to bluff or cede as appropriate. The group could also set itself the task of looking at the effects of different playing styles.


Symbol Spotting System

Group ID: gp08-tpp

Supervisor: Tony Pridmore (tpp)

Group mailing list: gp08-tpp@cs.nott.ac.uk

Group members:

Description:
Graphical documents are generated in many application areas, with different types of engineering drawing and map being among the most common. These documents often need to be modified and re-used over time, and so are stored, as images, in databases. As the size of an image database increases, retrieval becomes more difficult. Linguistic tags can be added to each image, but this is a time-consuming task and it is hard/impossible to predict the tags needed to support future users. Symbol spotting is an alternative. Here, the user sketches a component or symbol that must be present in the retrieved document. The sketch is converted to a standard data structure, which is also extracted from each image in the database. The two are matched, and images containing the sketched symbol are then displayed to the user. The goal of this project is to create a simple symbol spotting system that could support this type of interactive image retrieval.


Image Indexing and Retrieval: A Content-based Approach

Group ID: gp08-qiu1

Supervisor: Gouping Qiu (qiu)

Group mailing list: gp08-qiu1@cs.nott.ac.uk

Group members:

Description:
The rapid expansions of the Internet and fast advance in digital imaging technology have enabled the wide spread use of image libraries and databases. One of the challenges in managing large image databases is the indexing of images. There are generally two approaches to indexing textual-based and content-based approaches. In textual based approach, an image is annotated with a set of keywords that appropriately describe the visual content of the image. Database access/image retrieval in this approach is based on keyword (text) search/matching. In contrast, content-based approach uses advanced image processing/computer vision techniques to extract a set of visual features (such as colour distributions, texture characteristics, objects shapes etc) from the image as its annotation. In this second approach, database access/image retrieval is based on "query by example" whereby the user presents the system with an example (image) and retrieves from the database those images that are similar (to the example). The aim of this project is to implement a system for content-based retrieval. Queries should be handled through a well-designed, web-based, user interface. There should also be a well-designed administrative GUI for maintaining the database.


Digital Photo Album

Group ID: gp08-qiu2

Supervisor: Gouping Qiu (qiu)

Group mailing list: gp08-qiu2@cs.nott.ac.uk

Group members:

Description:
The aim of this project is to develop a tool to manage and organise digital photo collections. The tool will include following features:

  1. Display images
  2. Annotate images with text
  3. Annotate images with their visual features
  4. Organise images into various categories according to their textual descriptions, e.g., Cars, Buildings, etc.
  5. Organise images into various categories according to their visual appearances, e.g., Blue Sky, Green grass, etc.
  6. Search images based on their textual descriptions, e.g., "Find all photos contain cars and buildings"
  7. Search images based on their visual appearance and by visual examples, e.g., "Find all images contain x% red, y% blue and z% green", or "Find all images look like this one"
  8. Display search results as thumbnails.
  9. A well designed GUI


Online Interactive Module Registration Assistant

Group ID: gp08-rxq

Supervisor: Rong Qu (rxq)

Group mailing list: gp08-rxq@cs.nott.ac.uk

Group members:

Description:
This project involves developing an online interative computer software system that assists students to choose their course modules at the beginning of each academic years. Students of different courses in the School of Computer Science have a number of compulsary modules in addition to a number of optional modules. The selection of optional modules needs to follow a number of rules such as correct level, pre-requisites, timetable restrictions, limits of external modules, approporaiteness to the course, etc.

You will need to develop templates of different courses in the School of Computer Science, considering all these above mentioned (and other possible) constraints in the system to help students efficiently choose their optional modules. Students information is provided by databases. The system also includes an GUI to help students selecting the most approporaite modules.

Keywords: Software development, online database development, GUI


Multiplayer Networked Mobile Phone Game

Group ID: gp08-mvr1

Supervisor: Milena Radenkovic (mvr)

Group mailing list: gp08-mvr1@cs.nott.ac.uk

Group members:

Description:
This project should develop a prototype of a card game (poker for example) that can be played by multiple players with mobiles over Bluetooth. This includes developing networked mechanisms for shuffling and dealing a deck of cards, a GUI that displays a player's dealt hand, and handles hand-playing; handling the game's simple logic like users requesting and changing number of cards, ending the game, counting the score and determining the winner.


Airline Website

Group ID: gp08-mvr2

Supervisor: Milena Radenkovic (mvr)

Group mailing list: gp08-mvr2@cs.nott.ac.uk

Group members:

Description:
This project should develop a prototype of an airline website that will provide information about flight schedule and ticket purchasing online. This includes flight schedule search, ticket availability, ticket purchasing and reservations, personal updates about flight changes, and suggestions for alternative routes, customer tailored advertisements. This project implementation will involve database backend, website front end (capable of delivering content to both full-fledged browsers and mobile phone based one), logic to find optimal routes according to user defined criteria (shortest, cheapest, via certain destination, etc), personalised customer notifications (via email or sms) regarding flight changes, and alternative available routes and tailored advertisements.


Last updated 30 April 2009.