|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|
Group ID: gp08-nhn
Supervisor: Henrik Nilsson (nhn)
Group mailing list: email@example.com
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.
Group ID: gp08-nza
Supervisor: Natasha Alechina (nza)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-txa
Supervisor: Thorsten Altenkirch (txa)
Group mailing list: email@example.com
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.
Group ID: gp08-jqb1
Supervisor: Jaume Bacardit (jqb)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-rcb
Supervisor: Roland Backhouse (rcb)
Group mailing list: email@example.com
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:
Group ID: gp08-srb
Supervisor: Steve Bagley (srb)
Group mailing list: firstname.lastname@example.org
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:
Group ID: gp08-axc
Supervisor: Andrew Crabtree (axc)
Group mailing list: email@example.com
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:
Group ID: gp08-jmg
Supervisor: Jonathan Garibaldi (jmg)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-cmg
Supervisor: Chris Greenhalgh (cmg)
Group mailing list: email@example.com
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.
Group ID: gp08-cah
Supervisor: Colin Higgins (cah)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-gmh
Supervisor: Graham Hutton (gmh)
Group mailing list: email@example.com
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.
Group ID: gp08-gxk
Supervisor: Graham Kendall (gxk)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-nxk
Supervisor: Natalio Krasnogor (nxk)
Group mailing list: email@example.com
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.
Group ID: gp08-bai
Supervisor: Bai Li (bai)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-bsl
Supervisor: Brian Logan (bsl)
Group mailing list: email@example.com
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.
Group ID: gp08-ajp
Supervisor: Andrew Parkes (ajp)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-tpp
Supervisor: Tony Pridmore (tpp)
Group mailing list: email@example.com
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.
Group ID: gp08-qiu1
Supervisor: Gouping Qiu (qiu)
Group mailing list: firstname.lastname@example.org
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.
Group ID: gp08-qiu2
Supervisor: Gouping Qiu (qiu)
Group mailing list: email@example.com
The aim of this project is to develop a tool to manage and organise digital photo collections. The tool will include following features:
Group ID: gp08-rxq
Supervisor: Rong Qu (rxq)
Group mailing list: firstname.lastname@example.org
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
Group ID: gp08-mvr1
Supervisor: Milena Radenkovic (mvr)
Group mailing list: email@example.com
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.
Group ID: gp08-mvr2
Supervisor: Milena Radenkovic (mvr)
Group mailing list: firstname.lastname@example.org
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.