Ideas for projects
If you are looking for a project idea, please have a look at the
following list. These are just ideas; in general, I'm happy to supervise
anything that is at least vaguely related to my research work. I may
be interested in other subjects as well, the best option for you is to
book an appointment with me so that we can have a chat about this (I
don't bite, don't be afraid of sending me an email!).
Development projects
- Web applications using barcode scanners: I am
investigating the use of barcode scanners for a number of
applications: monitoring attendance, customer order recording using
wireless devices, etc. This work may be in collaboration with an
external company providing concrete scenarios. You need to be
proficient in php, MySQL, JavaScript, etc.
- Android applications for the management of a
point-of-sale: this work is in collaboration with an external
company providing a concrete scenario. You need to be proficient in
Java, SQL, and ideally you should have some knowledge of developing
Android applications.
- iPhone/Android applications (2): are you familiar with the
development of software for iPhone/Android? If you enjoy writing
code I have a few ideas about context-aware applications that make
use of GPS location and other on-line services (and I am also happy
to supervise your idea in this area).
- Facebook applications: as above, if you enjoy writing
code and are familiar with online applications I have a few ideas
related to my research that may be developed as Facebook
applications. Otherwise, I am also happy to supervise your idea in
this area.
Research-oriented projects
- Busy beavers: exploring non-computable state spaces using
distributed computing.. This is a project with a good mix of
theoretical and practical work. Consider a Turing machine with
alphabet {0,1} and n states, and an additional Halt state. Start
from an empty tape (i.e., all entries are 0). Run the machine, if it
halts count the number of 1s on the tape. Let S(n) be the maximum
number of 1s that a machine with n states can produce. S(n) is a
well defined function and it can be shown that S(n) is an
uncomputable function. Values of S(n) are known up to n=4, and lower
bounds are known for n=5 and n=6. The aim of projects in this area
is to investigate the use of parallel computations to improve known
results for S(n), maybe as a distributed game. You will need a
strong theoretical background in the theory of computation and a
good mastering of programming.
- Model checking Java software using Java Path Finder Model
checking is a logic-based method to perform verification. Java Path
Finder is a model checker developed by NASA for the verification of
Java code. It is a complex software and many extensions are
possible. I am currently involved in the development of various
plug-ins for Java Path Finder. A project in this area is for you if
you have a good experience of Java Virtual Machines and are
interested in working at low levels of coding.
- Perfect recall, bounded recall, memory-less semantics
Epistemic logic is a logic used to reason about what ideal agents
know. There are a number of possible assumptions that can be made:
an agent remembers everything that has been seen in the past
(perfect recall), or just a limited amount of information (bounded
recall), or nothing at all. The aim of projects in this area is to
review the current literature on the subject and make progress at
the theoretical level. Ideally, an implementation could follow the
theoretical work. This project is for you if you have a strong
mathematical background, especially in discrete Mathematics and
logics.
- Service Level Agreements and monitoring for electronic
services: the aim of projects in this area is to develop new
techniques to monitor the execution of electronic services (for
instance on mobile devices), and to extend the existing work on SLAs
for web services to other areas. This project is for you if like
coding and you are familiar with web services, distributed
applications, mobile applications, etc.