some (extra) MSc/MRes project suggestions for 2006/7

Alan Dix

Note: The numbers are not 'official' MSc system ones, just for my own reference

AD1 - androids that dream of electric sheep

A year or so I was did some thinking about regret (see "the adaptive significance of regret" on my essays page). This was initially focused on human regret, but based on the understanding of that I realised that there are opportuntiies to inform and improve machine learning. I have already made a simple 'regret engine' which plugs into a standard machine learning algorithm and makes it work better (they play a form of blackjack) and have code already in PHP and Java. However, my observations of improvements have been based on rather few runs, and the aim of the project is to make this empirically more rigorous and also to extend in various ways.

The initial work of the project will be to put the regret and machine learning components into an experiemental framework to allow large numbers of runs gathering performance statistics (e.g. accuracy, speed of learning, etc.). This can then move into improving the algorithms through optimising parameters, applying to additional examples etc.

... and yes the android that dreams of electric sheep ... in addition, I have some fairly clear ideas of how to implement dreaming in a virtual robot, so for the adventurous ...


AD2 - Plug-ins for intelligent web interactions

We are working with rome and athens in a small part of a big digital libraries network. We are looking at ways of using personal ontologies to help personal information management and in particular to aid support for task execution, for example learning how to do things once it has seen examples.

The TIM prototype will build on a web-based system Snip!t ( This is a form of online bookmarking, that also has 'clever' features (based on things we did in a company aQtive in the years ...)

Project could produce plug-ins for sources (e.g. FireFox XUL, IE toolbar, Word, OpenOffice) or for actions to be performed (COM, AppleScript).


AD3 - extending Query-by-Browsing

This is a body of work that has lain only partially developed for many years! see demo at
an ongoing project is looking at related area, so this may be an opportunity to kick this back into life :-)

There both interface and also internal algorithmic issues (and they interact) to investigate.

At the interface end this may involve showing Query-by-Example style queries, being able to label and fix parts of a growing query, dealing with large tables (random selections, chosen parts).

At an algorithmic level this could involve using geetic algorithms instead of the current ID3 back-end (I experiemnted with this a little a few years ago), or other variants of decision trees.

The work could be extended to use semantic web backend (RDF triple store) rtaher than DB.

Some pattern matching (as used in Snip!t ( could also be used to identify special kinds of column (names, email addresses, etc.) so as to generate more appropriate queries.


AD4 - T-Box - a kitchen timer with attitude

This project is inspired by several existing research projects. Studies of a domestic life has shown the importance of timing and coordination, and in research about fun we have looked at how to make boring things (like waiting for a kettle to boil) more fun.

The idea of this project is to construct a "kitchen timer" that you set for a particular time (say 3 minutes) then interact with (playing a game, doing some learning), yet is guaranteed to complete exactly on time.

The "timer" will be expected to be a PDA-sized (or possibly slightly larger). Perhaps set at the back of a worktop, or bolted onto a kitchen cupboard. It would need to use a stylus (sticky finger means touching the screen would be a bad idea!).

The timer function is intended to be more than simply ringing or cutting off the current activity, but should interact closely with applications to ensure that they "naturally" complete at the relevant time.

Three applications I've thought of for this (not necessarily expecting all to be completed in the time):

a game:
There are games (e.g. latest versions of snood) that have timers and stop you after you have played.
However, this can happen in the middle of an exciting moment! However, in a previous project on computer games, a game was constructed that monitored heart rate and adjusted game play so that it could keep players at an optimal level of arousal.
Similarly the idea would be to modify the game play so that the player is guaranteed to either win, loose or reach a waypoint at exactly the alarm time.
This would be some quite simple puzzle, flying or shoot-em-up - similar tom those you find on a mobile phone, as it is just something to do to "keep yourself busy" whilst waiting for the kettle to boil or toast to cook.
A language practice application. Perhaps a sort of vocabulary test the sort of thing it is boring to do for long periods and so you never get round to doing ... except when you are really bored like waiting for the kettle to boil ;-)
news service (e-Campus feed):
As part of the eCampus project content feeds have to compete for space and time on public displays. There will thus be timing information stored along with authored material. Also for text feeds can estimate reading time and choose items that will fit into the allotted time.

Although these are effectively individual stand alone applications, they would need to have some common way to access the timer so that they know when to stop )!). Also there would be the opportunity to reflect from them as to general design advice for 'time limited' experiences.

Language and platform: Java would be sensible as this would be least restricting on platform, but as it is likely to be on a CE or windows device eventually a windows specific development platform would also be possible.



AD5 - structuring and visualising document spaces

The aim of this project is to use variants of Kohonen neural nets to produce clusterings and visualisation of document spaces such as a web site or file store.

Normally Kohone self-organising maps use feature sets that allow prototype vectors. Instead this will be based on 'similarty matricies' that can be obtained from a wider variety of data including web logs, text mining techniques, etc.

An extension would be to create a web system that allows the posting of notes and information blog-style by communiities which are then automatically organised or to make plug-in to something like Thunderbird to visualise mail messages.


AD6 - Fitts' Law for resizeable targets

The MacOSX 'dock' uses icons that grow as you move your mouse over them. The intention is that this makes them easier to identify visually and temporarily makes them larger. However, are they really easier to hit or more difficult?

The aim of this project is to evaluate this, using pupose made test software, or using the 'live' dock, or both.

'Normal' target acquisition tasks follow Fitts' Law - the time taken to hit the target is proportional to the logarithm of the ratio of the target size and distance from the target. By calculating the Fitts' law constants for resizeable icons and fixed size icons, it should be possible to calculate the effective size of the resizing icons.


AD7 - scroll timing

Very large menus such as font lists scroll when you drag your mouse off the top or bottom of the menu, but often it is hard to get items near the middle as the scrolling is too fast. Text or word-processor windows have similar problems if you try to extend a selection by dragging.

The aim of this project is to develop a test menu/text area widget which has parameterised timings so that different timings can be tried.

Some experiments with friendly participants can then be used to assess good timing values. This will require the test component to be suitably instrumented to detect 'overshoots', time user responses etc.

Ideally the test component(s) should be made compatible with a standard framework (e.g. Swing, AWT or perhaps javascript for web page), so that it can be made available to others.


ADn - negotiated - anything about interfaces

I'll be happy to discuss other options than those listed here in the area of user interfaces including ubicomp, web etc.

look at my web pages to see what grabs me:

or look below at last year's projects to give you ideas

PAST PROJECTS ... but may have further extensions ...

(done - but needs more work) Hopscotch: input techniques for public places

Over the coming year there will be a large scale deployment of display sutfaces around campus (the eCampus project). Some of the applications will need to be interactive and this project is to study and implement input techniques for public places.

The 'hopscotch' in the title refers to using painted keyboards on the floor that can be activated by standing on them. A photograph envisionment of this is at:

Implementing this would involve some video processing either using raw video streams or a package such as alternative reality toolkit (ART). The aim will be to feed this as if it were a standard keyboard into an example application, probably a simple on-screen chat area.

Alternative applications of the same technique could include using the 'hopscotch' surface in a club environment so that friends could 'dance' messages to one another!

(some things done, but maybe more ...) peer-peer search

The Internet is built around a distributed architecture and protocols. Originally designed to make it resilient against military attack, this has been the major reason why it has proved a suitable infrastructure for a global network, not dependent on single companies or hardware technologies, extensible and robust.

However, the use of the Internet is also dependent of services, in particular web search, which are focused on individual companies, most notably google. In addition it is estimated that 90% of web content is not indexed because it is part of the ‘hidden web’ databases connected to the web and publicly available, but not indexable by web crawlers.

In the area of directory search Netscape's Open Directory Project has shown how an open ‘source’ (in the sense of the information) community project can outstrip the best commercial directories such as yahoo.

The purpose of this project is to prototype aspects of a peer-based search engine using spare processing and network capacity, along the lines of SETI or gnutella.

It is likely that plain old brute force searching will not distribute effectively and the algorithms will need to be adapted accordingly. As an additional start point some algorithms originally developed as part of a (now failed!) company I was involved in are more amenable to distribution.

The overall aim of this project is large and the aim is not to tackle the entire problem, but key demonstrable aspects. There is an onging project working on related issues for accessing 'hidden' web resources.



(in progress ... but more stuff related) extending query-by-browsing by using drill-down for joins

Query-by-browsing is a form of 'intelligent' database interface which creates SQL 'select' statemenst based on examples. However, this only manages the fiilter part of a query. This project is to implement and evaluate a proposed design for creating joins using a 'drill down' style interface.

See the QbB pages for background:

Scenario for proposed system at:


(done) pie-Trees and visualisation

Pie-Trees are a novel visualisation that was partially but never fully implemented.
The project is to produce a complete implementation, investigate detailed interface issues
and evaluate the resulting system with real users.




(done) accidental learning through slow menus

In a project some years ago comparing speeds of web access it was found that those with slower interfaces (5 seond. delay) learnt menu structures more affectively than those using faster ones (1 second).

The aim of this project is to reproduce the original result and also tease apart two potential reasons for this:

1. the greater cost of making a mistake in the slow interface forced the participants to concentrate more and therefor learn more

2. the fact that the menu may have been visible during the screen refresh meant that learning took place during this time (like interstitial web adverts)


(done) human timings

Over many years I have said that people hav a maximum 'rythm' time of about 1-2 seconds and also are very poor at proceduralising delays of any length.

The aim of this projects is to create software and run experiment(s) to test this!

It requires both some programming to create stimuli at precise times and record subjects responses, and also will run a pretty traditiional experiment, with some opportunitioes for trying out different kinds of visualisation of the results.


(superseeded by TIM / Snip!t projects) re-aQtivating onCue

I was involved with web company called aQtive in 1999/2000 which produced 'intelligent' web products. With the formal closure of the company in 2003, proprietary aspects of the work are now public domain. There main product was a tool called onCue and there are various things that could be done to extend onCue's basic ideas both on the desktop and on the web.

A description of onCue as it is now can be found at: (html) (pdf)

Potential projects include:
Alan Dix 20/11/2004