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:
  • BSc / MSc students who take ECS647U/ECS773P  Bayesian Decision and Risk Analysis, ECS642U/ECS714P Embedded Systems or ECS727P Real-time and Critical Systems and/or have an interest in computer systems or software engineering.
  • Students taking MSc Computing and Information Systems: I will always want to know about your previous study and experience and will hope to connect your project to it.

Specific Project Ideas (MSc, 2019/20)

  • 1. Configuration Editor for a Generic BN Interface
    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 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
  • 2. Editor for the Evidence-base of a Bayesian Network
    Bayesian network models are based on expert knowledge about the subject. However, it is not currently possible to see the details of underlying expert knowledge. An ontology for capturing this knowledge has been developed using OWL, together with a simple system for displaying the evidence using HTML. The aim of this project is to integrate the evidence browser into a generic user interface that has been developed recently. Additionally, we could (i) make more used of the SPARQL query language, or (ii) to develop an editor for composing the knowledge.
    Skills needed: understanding of Bayesian nets, programming for interface (web based), Semantic web and OWL
    Difficulty: intermediate - high
  • 3. Explaining Predictions of a Bayesian Network Model
    Bayesian network models are based on a combination of data and expert knowledge, so that the models ‘make sense’. Recent work has developed an algorithms to explain predictions from he knowledge. The aim of this project is to develop a graphical interface that shows the reasoning leading to a predictions. The graphical interface will show the information and relations that model used to calculate the risks and predictions. Ideally, the interface would work with any BN.
    Skills needed: understanding of Bayesian nets, programming for interface (web based ideally).
    Difficulty: high
  • 4. 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 preferred example is Figaro for which there is a book available (see also a recent presentation). A possible alternative is WebPPL (code and documentation).
    Skills needed: very good understanding of Bayesian nets; programming.
    Difficulty: medium, high
  • 5. 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 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 (BSc or MSc)
    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 (BSc or MSc)
    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. Analysis and Presentation of Statistical Data from the Web (BSc or MSc)
    There is now lots of data available on the web, including government statistics (hospitals, universities) and online data feeds (e.g. train times). A recent project collected and analysed train delay data. The purpose of such systems is to enable people to make informed decisions. See also UK government data site and another site with large datasets.
    A specific application in this area could be the use of health data from www.hesonline.nhs.uk to create an adviser or risk predictor. The data is split in several areas (e.g. critical care, maternity, ...). The project could focus on one.
    Skills: understanding of statistics and machine learning; (web) programming.
    Difficulty: intermediate/high