Project ideas for MSc and BSc projects

My main interests are

  • Research: Artificial intelligence, particularly hard mathematical search problems such as searching for an optimal route or schedule; automated design of algorithms
  • Research: Data science and machine learning, particularly interpretability (so that people could understand the system) and hyper-parameter optimisation (finding the parameters of the learning algorithm that give best performance)
  • Algorithm engineering
  • Symbolic AI
  • Data visualisation, analysis and handling
  • Compilers; operating systems
  • Automation; user-friendly applications
  • Physics; engineering

Below are a few specific project ideas, with the target study pogrammes given in brackets. I am also happy to discuss your ideas or come up with new projects based our joint interests.

Learning Interpretable Strategies for the 2048 Videogame

Target programmes: CS, CS(AI), Data Science

2048 is a simple yet addictive videogame (http://2048game.com/). It is not too difficult to play although learning how to play it well takes a lot of time.

There have been very successful attempts to develop AI agents to play the game. The problem is that we do not understand how these agents play, and so we cannot use them to teach a human player.

In this project, you will design an automated method to learn simple (interpretable) efficient strategies for 2048. The hypothesis is that an agent based on a small set of easy-to-understand rules can play the game relatively well. Testing this hypothesis and developing the learning methodology will contribute to the game industry and to the solution of the long-standing issue of interpretability in machine learning.

Instead of 2048, you can suggest some other one-player videogame.

Programming
Algorithms and Data Structures
Artificial Intelligence
Data Science
Mathematics
Research

Smartphone App for Weight Measurements

Target programmes: CS, Data Science

Supplied with a range of sensors and features, smartphone can be handy as a heart rate monitor, speedometer, step tracker, tool to measure distances, angles, voice volume, etc., however one thing a smartphone currently cannot adequately measure is the weight of an object.

In this project, you will develop a weighing scales smartphone app. The project will involve experimenting with several approaches to estimate the weight of an object using a smartphone. This will require creativity and ability to analyse the experimental results.

App Development
Algorithms and Data Structures
Data Science
Mathematics
Research

Semi-Automated Plagiarism Detection Tool for Programming Languages

Target programmes: CS, CS(AI), Data Science, HCI

Standard plagiarism detection tools are designed for natural languages and are mostly looking for precise matches of text fragments. Detecting plagiarism in programming languages is much more challenging mainly for three reasons: (i) two programs may share a lot of code simply because it is some standard code (e.g., a piece of code given in a lecture or auto-generated code); (ii) there may exist the most natural way to implement a function, and different people may arrive to this implementation independently; (iii) it is easy to modify a piece of code by reshuffling lines, renaming variables, etc., to make it less recognisable. There exist automated tools to tackle point (iii) but they cannot offer a solution to points (i) and (ii).

In this project, you will develop a tool that uses a completely different approach to plagiarism detection. The plagiarism will be detected by searching for similar anomalies in program codes. For example, an unusual solution method or an identical mistake found in several programs is a good indicator of plagiarism. If several such anomalies are shared by two programs, this is a strong indicator of plagiarism.

Your tool will load all the programs that need to be analysed and let the user select anomalies by hand. It can then search for similar anomalies across all the programs, identify the most likely plagiarism cases and generate reports.

Programming
Algorithms and Data Structures
Artificial Intelligence
Research

Improved Detection of OK Google

Target programmes: CS, CS(AI), Data Science

Google Assistant gets activated by listening to the environment and recognising the OK Google sentence. Same approach is used by other devices which wake up on certain trigger phrases. There is, however, a significant problem of the so-called false accepts, that is, when the device activates my mistake.

To reduce the false accepts, we suggest analysing the sound before and after the trigger phrase. Before addressing the assistant, the user is likely to make a pause and, possibly, change the direction in which they speak. They are also likely to speak a little louder for the device to hear them. All these signs (or the lack of them) can help us identify false accepts.

In this project, you will use voice recognition and data science techniques to develop a trigger phrase detection algorithm and compare its accuracy to the accuracy of Google Assistant or some alternative system.

Programming
Algorithms and Data Structures
Data Science
Artificial Intelligence
Research

Efficient Strategies for Robot Vacuum Cleaners

Target programmes: CS, CS(AI)

Most of the robot vacuum cleaners navigate the house without actually knowing its topology (the number and shape of the rooms). They use randomised algorithms, however their behaviour is not completely random.

In this project, you will develop an artificial intelligence method to generate efficient navigation strategies for a vacuum cleaner. The strategies may depend on the availability of sensors, the mode it is used in and the accumulated knowledge about the house. The project will involve modelling of the robot behaviour, producing animations of its movement and learning efficient strategies using artificial intelligence methods. It will most likely make use of machine learning and/or optimisation techniques.

Programming
Algorithms and Data Structures
Artificial Intelligence
Data Science
Mathematics
Research

Automated Design of Optimisation Algorithms

Target programmes: CS, CS(AI)

Mathematical optimisation algorithms are at the core of many decision support/making systems. Development of optimisation algorithms is resource-expensive and time-consuming, and hence there are a lot of benefits of automated generation of optimisation algorithms.

In this project, you will apply a recent artificial intelligence framework to automatically develop an optimisation algorithm for some combinatorial optimisation problem.

Programming
Algorithms and Data Structures
Artificial Intelligence
Mathematics
Research

Weather-Based Journey Planner

Target programmes: CS, HCI

This project is to plan routes to avoid bad weather. Short-term weather forecasts are accurate and highly localised; we can now predict for example if we will get caught in the rain on our way home which is particularly useful to know if commuting by foot or bicycle. By fetching weather forecast information and rain radar data, it is possible to pinpoint the time and route to avoid (or minimise) bad weather experience.

You will design and develop a software system to fetch weather forecast information and rain radar data, provide a detailed weather forecast report along the route, suggest best departure time and route to avoid bad weather and trigger alerts when the suggested route/time changes due to the updates of weather forecast.

We can also look into other problems in route finding/navigation such as reliability or simplicity of the suggested route.

This can be implemented as a web service or a smartphone application.

Web/App Development
Algorithms and Data Structures
Artificial Intelligence
Research