Home
- Contact
- Teaching
- Research
- Publications

- Change Detection
- Suffix Arrays
- Code Annotator
- Incremental Suffix Arrays
- Unusual Metrics
- Clone Origin
- Related Files
 

BSc Projects

Booked BSc Projects

Incremental Suffix Arrays

This project will design, implement and evaluate a library for incremental suffix arrays. Suffix arrays are a way to do fast searches for patterns in strings. Efficient implementations for suffix arrays exist. However, the suffix arrays have to be recomputed each time the strings change. This project will allow to update the suffix arrays when something is deleted from the strings or added to the strings.

A Source Code Annotator

This project will create a tool that allows lecturing staff to annotate student's program efficiently. It will allow the user to browse source code quickly, highlight important sections in the source code and insert annotation or remarks into the code. It will include a library of text templates for the annotations.

Unusual Metrics

Many tools exist that compute traditional metrics like complexity or methods per class. This project will develop a tool thay collects unusual metrics like 'words in comments per class' or 'average length of identifiers'. The tool has to parse Java source files directly, compute the metrics and print a table of the metrics.

Finding the Original and it's author in Software Clones

Clone detection tools usually report identified clones in sets of source code locations and cannot identify which location is the original. This project will use an available clone detection tool to find clone and then use the information available in a version archive to find the age of the clones and the authors to identify the original.

Finding related files with desktop search engines

Finding documents or files on on your local harddisk has become very easy with the availability of tools that index your harddisk. Examples for such tools are Spotlight, Google Desktop Search, Windows Desktop Search or Beagle. They typically create an index over all files which can be searched instantly. However, the tools only allow you to search for file that conform to a query. This project has to develop a tool that is able to find files and documents which are similar to a file or document given by the user. To make it efficient, the tool should interface one of the desktop search engines given above. It should present an initial list of documents ranked by similarity first and could then try to do a similarity analysis to re-rank the files and documents.

 

King's College London Last modified: 11/23/2009