Department of Informatics, King's College London

Site map

MSc projects 2013/2014

I prefer to supervise students in emerging topics or in an area related to my research interests.

I am only willing to supervise projects that attempt to improve your overall design, reasoning and programming skills. My project suggestions can be demanding so you need to be willing to work hard if you intend to apply to any of them. However, they offer you the possibility of achieving a very good grade and I will assist you throughout the development.

I may be willing to supervise your own project in another area of computer science provided that

• the project is of an interesting topic and involves more than simply basic programming, use of web technologies and database systems;
• the project proposal offers an innovative approach to a computer science problem
• you are willing to work hard on it
• I have the necessary expertise to supervise you on it

If you have your own idea, please send me an e-mail with a couple of paragraphs describing it, so that I can assess whether I can/am willing to supervise the project.

## Below are examples of projects I would prefer not to supervise

• any variation of a simple database application with a front end (whether it is standalone or web-based)
• some other variation of well-known and widely available applications (games, diaries, accounting software, etc)
• mobile applications that do not tackle any interesting computer science problem

## Topics suggestions for 2012

1. ### [OR-M1] Computing combination rankings using partial preference information and constraints

Given a set of elements and some partial preference on the elements plus some aggregation constraints, the objective of this project is to find combination of elements satisfying the preference relation and the constraints.

For instance, given a set of three elements, say a, b and c and a preference ordering on this set, we would like to obtain a ranking for the set of all subsets of the set {a,b,c}. Suppose we prefer a to both b and c, and we do not really care about how b and c compare. If you were to make a decision between the sets {a,b} and {b,c}, which one would you choose?

We can extend the reasoning further and associate costs to each element and require that the combinations do not exceeed a particular budget.

## Applications

Why is this kind of reasoning useful?

The letters a,b,c that we chose are simply abstract representation of more complex concepts. In practice, they could represent, for example, features of a mobile phone: a could be associated with the camera, b could be associated with micro-SD memory support and c could be associated with a quad-core processor. If you could not afford a mobile phone with all of those features, which combinations would you prefer to have?How much can you afford?

## Skills required

• basic foundations of computing (relations, orders, etc)
• graph theory/drawing desirable but not essential
• JAVA
2. ### [OR-M2] An oracle for reasoning about iterated belief revision

This project involves the development of an application to perform some operations used in common-sense reasoning.

The basic idea is to have a knowledge base representing an agent's set of beliefs and to calculate what follows when these belief have to be revised in face of new information.

You can choose a purely syntactical or semantical model of representation (to be discussed).

You will need to implement four components:

• A module to perform some basic reasoning
• A module to calculate a single step revision operation
• A module to store and calculate a sequence of revisions

The operator and sequence of revisions are well document in my PhD thesis.

## Skills required

• good maths/computing skills
• some basic web programming knowledge
3. ### [OR-M3] Computing the subsumption hierarchy of conceptual graphs

Classifying a set of concepts efficiently is an important feature of the semantic web. The objective of this project is to classify a set of concepts and generate a graph corresponding to the concepts' subsumption hierarchy. Given a set of n concepts, a brute-force method would make n(n-1)/2 comparisons in order to compute the whole hierarchy. However, the number of comparisons can be significantly reduced by the use of clever algorithms. Your task is to implement some of these algorithms in JAVA; simulate the classification of large sets of concepts and report on the number of actual comparisons made with respect to the brute-force approach.

Ideally, we would like to have some form of visualision the algorithm in execution as well, or at least of the final graph. Therefore, the graph generated should be able to interface with a visualization tool, such as TULIP (which you will not implement yourself).

## Skills required

• basic computer science concepts: graphs, search in graphs, algorithms
• interface and integration of system components
• JAVA
4. ### [OR-M4] An extension to JASON

JASON is an interpreter for an extended version of AgentSpeak. It can be extended in a number of different ways to perform different kinds of reasoning with agents.

We will need to discuss one possible extension, that you will implement and discuss and illustrate its use in practice.

5. ### [OR-M5] A mobile application for Android or iOS (Android preferred)

You need to write to me with the suggestion of a sophisticated application for android or iOS, which I will review, amend if necessary and only accept it if appropriate.

Any topic suggestion must consist of a sophisticated application.

This page was last updated in September 2012.