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

Automated Design of Stock Market Strategies

Target programmes: CS, CS(AI)

Trading strategy is key to one's success in stock markets, and so a lot of research has been done to support trading decisions or even implement completely automated trading systems. However, most of this research focused on maximising the profits; the predictions and decisions are usually impossible to understand for a human.

This project is to apply artificial intelligence (AI) methods to stock market trading. Specifically, you will develop a system that can automatically learn efficient yet interpretable long-term investment strategies. For example, the system could come up with advice such as Prefer investing on certain days of week if the price has fallen since yesterday. It will be tested on real stock exchange data and compared to the state-of-the-art systems (even though there is no expectation that an interpretable strategy can outperform a non-interpretable one).

Programming
Algorithms and Data Structures
Artificial Intelligence
Finances
Data Science
Mathematics
Research

Footfall measurements and predictions (company project)

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

The data about the number of visitors is vital for businesses. They can use it to adjust the staff levels, plan promotions and sales, optimise the spaces and more. Yet this data is surprisingly hard to get, particularly when respecting visitors' privacy.

The Flow startup designed a sensor to collect footfall data. This project is about processing this data. The focus can be on processing the low-level data to improve the accuracy of counting or it could be on processing high-level data (occupancy) and predicting it in future. For further details please see the project details.

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

Intelligent public transport journey planner

Target programmes: CS, CS(AI), HCI

Services such as Google Maps and TFL (https://tfl.gov.uk/plan-a-journey/) provide advanced tools for planning a journey by public transport. However, behind the scene they perform relatively primitive optimisation, for example minimising the total travel time and ignoring other aspects of the journey.

In this project, you will build a proof-of-concept journey planner (a smartphone app or a website) which in some ways will be more intelligent that the existing services. A couple of examples how your journey planner can be more intelligent:

  • You can take into account frequency of services; for example, one may prefer to travel from a bus stop that has a service every 5 minutes rather than having a slightly shorter journey but from a bus stop with one service per hour.
  • You can take into account ticket price, various paying options, etc.
  • Instead of showing ridiculously long overnight journeys, you can tell the user which service is the last reasonable one.

User interface can be an important component of this project; for example, you can group together similar journey options and represent them in an intuitive way decluttering the output.

Web/App Development
Algorithms and Data Structures
Artificial Intelligence
Research