Student Project Ideas


I am happy to listen to your ideas for a project and will work with you to produce an idea that suits your abilities, particularly related to my research interests. Typically, I supervise:
  • Students taking conversion programmes MSc Data Science and AI or MSc Computing and Information Systems, with interest in data analysis and modelling or software engineering. I will always want to know about your previous study and experience and will hope to connect your project to it.
  • BSc / MSc students who take ECS647U/ECS773P  Bayesian Decision and Risk Analysis or ECS7005P Risk and Decision-Making for Data Science and AI with an interesting Bayesian nets.
  • BSc / MSc students who take ECS642U/ECS714P Embedded Systems and have an interest in computer systems or software engineering.

Specific Project Ideas (MSc, 2023/24)

The following project suggestions below relate to a generic interface system - known as BNDS (Bayesian Network Decision Support) Interface System for decision support systems implemented using Bayesian networks. Features of the system include i) data entry ii) display of probability distributions in different formats iii) configuration using JSON files.

  • 1. Configuration Editor for the BNDS Interface System
    BNDS is configurable: it can be used with any bayesian network. Configuration is done using JSON files. It would be helpful to have an GUI editor for this. The editor needs itself to be implemented in a way that is easy to extend when new features are added to the BNDS system, requiring more configuration fields. One approach would be to use a JSON schema to configure the editor.
    Skills needed: understanding of Bayesian nets, javascript programming for interface
    Difficulty: low - intermediate
  • 2. Display of the evidence supporting a Bayesian in the BNDS Interface System
    Bayesian network models are partly based on expert knowledge about the subject. However, it is not currently possible to see the details of underlying expert knowledge. The aim of this project is to enhance the BNDS Interface System to display this supporting evidence. The expert knowledge is in the form of causal assertions, each related to a small fragment of the Bayesian network. At first, these fragments could be created manually but a further challenge would be to generate them from the Bayesian net. The evidence itself is links to relevant publications in the medical literature.
    Skills needed: understanding of Bayesian nets, javascript programming for interface
    Difficulty: intermediate - high
  • 3. Integrating an Explanation Algorithm in the BNDS Interface System
    Recent work has developed an algorithms to explain predictions made by a Bayesian net. The algorithm is written in the R programming language. The aim of this project is to integrate the explanation algorithm into the BNDS interface system.
    Skills needed: understanding of Bayesian nets, javascript and R programming.
    Difficulty: high
  • 4. Displaying the Bayesian net in the BNDS Interface System
    Perhaps surpriisngly, the graph and the parameters of the Bayesian network itself are shown as in the BNDS interface System. However, it would be useful for debugging to be able to to access this, ideally hierachically (variables then parameters) and with added attributes (shape, colour etc).
    Skills needed: understanding of Bayesian nets, javascript and R programming.
    Difficulty: intermediate

The following project suggestions relate to other work in Decision Support.

  • 1. Analysis of Data from a Physiological Monitor. An existing collaboration with the Centre for Trauma Sciences in the Medical School has developed predictors to help manage patients with traumatic injuries as they arrive at hospital (a clinical trial is planned). The predictions (bleeding, organ damage, death) are based on data available at the time of arrival in hospital. The aim now is to use pre-hospital data, captured by physiological monitors (made by the US company the Zoll) carried by the London Air Ambulance team together with clinical data on treatment and outcome (held by the local clinical team). All this data is being anonymised (mainly by overwriting dates) using s/w developed by Zoll. The overall aim of the work is to develop predictors that use this pre-hospital data, which is soon to be available in real-time (not necessary for this project). The aim is to improve clinical understanding of the state of the patient before they arrive in hospital, minimising delays to the start of treatment. The project is expected to include: a) data exploration and visualisation b) feature extraction based on clinical insights c) statical modelling d) building an infrastructure to access the data easily.
    Skills needed: statistics, data analysis and Python programming
    Difficulty: high
  • 2. Developing a Knowledge-Base and Bayesian Net for Treatment of Back Pain. In collaboration with the Centres for Sports and Exercise medicine, we are developing a decision-support system to help manage patients with back pain. There is very little accessible data available (in clinical practice information is mainly recorded as text) but much of what is known about causes, symptoms and the treatment of back pain is recorded in published survey papers. We also have access to clinical experts (our collaborators). The aims is to use these resources to develop a suitable structure for the Bayesian network. One approach to doing this is by creating a knowledge base: there are existing techniques for this using NLP from text (the published reviews) although the result would need to be refined by the clinical experts.
    Skills needed: understanding of Bayesian nets, interest in the domain, ML, programming
    Difficulty: high
  • 3. Exploring Probabilistic Programming
    A new approach to creating probabilistic graphical models - such as Bayesian networks (BNs) - is to embed probabilistic variables in a programming languages. The result is a 'probabilistic programming language' (PPL). The aim of this project is to explore the capabilities of a chosen PPL compared to those of traditional BN packages. There are a great variety of PPL: the most accessible one is WebPPL (code examples online and documentation or an introduction). Possible aims for the project could include a) expressing other probabilistic models using WebPPL b) implementing a reasoning application.
    Skills needed: very good understanding of Bayesian nets; willingness to learn.
    Difficulty: medium, high
  • 4. Safety Hazard Editor/Browser
    Safety engineering makes very extensive use of the idea of a hazard. Recently, we have proposed a new approach with more structure. The aim of this project is to build a database and editor for this new structure, and prove it using some industry examples. The structure needs to be formalised, for example using the OWL ontology language; the data could be stored in a database capable of handling OWL and queried using SPARQL.
    Skills needed: OWL and semantic web, programming for interface (Java Swing or web based).
    Difficulty: intermediate

General Project Ideas

  • 1. Bayesian Net decision support: prediction or diagnosis
    Use a Bayesian net as the kernel of a decision support system. You have expertise is some problem area (or you know someone who does and will help you) where you need to reason with uncertainty. You may also have access to relevant data. Systems can be for diagnosis (mechanic: 'this car won't start, what is the cause') or prediction (DJ: 'if I play this music how many will dance').
    Skills needed: understanding of Bayesian nets, programming for interface (Java Swing or web based). Vital to have access to (or be) an expert and/or data.
    Difficulty: intermediate
  • 2. Real-time Programming using Cortex-M0+ Freescale Freedom Board
    The Freescale Cortex-M0+ board can be used to build real-time applications. Project could focus on one or more of the following areas:
        a. An application, such as stepper motor control.
        b. An interesting software technology (such as Lustre or Atom)
        c. Comparison for software architectures.
    Skills needed: C programming and knowledge of real-time programming; Imagination for an application.
    Difficulty: intermediate - high
  • 3. Statistical Analysis, Visualisation or Modelling of Statistical Data
    There is now lots of data available on the web, including government statistics (hospitals, universities) and online data feeds (e.g. train times). The purpose of such systems is to enable people to make informed decisions. Warning: although there is lots of data, watch out for summary data, which is not very useful for modelling. The ideal dataset needs both predictors and outcomes variables for an individual entity (not necessarily a person). It is sometimes possible to combine datasets. See UK government data site and another site with large datasets. Recent projects include i) collecting and analysing train delay data ii) modelling domestic energy usage and iii) modelling with air quality data before and after restrictions on permitetd vehicles..
    Skills: understanding of statistics and machine learning; programming.
    Difficulty: intermediate/high