TODO: Use this site to find project supervisors for your masters projects.
Model Based Design
A Support Tool for Boolean Networks: Boolean networks are a widely used modelling approach for describing and analysing control systems (e.g. hardware, communication systems, biological networks). A Boolean network is simply a graph where each node has a Boolean state. The state of a node is updated according to a rule that takes into account the state of connected nodes. The purpose of this project is to develop new algorithms and tools to allow Boolean networks to be understood and analysed. The idea is that these tools will help support current research in the school. The exact details of the project are open to discussion but some ideas include:
- Developing a simulator for Boolean networks.
- Visualising the behaviour of Boolean networks as state graphs.
- Developing algorithms to analyse Boolean networks.
- Abstracting Boolean networks to simpler models that preserve key properties.
- Composition of Boolean networks.
Tools for Visualising and Analysing Concurrent Systems: Petri nets are a widely used, industrial strength graphical technique for modelling and analysing concurrent systems. They allow us to represent complex systems (such as safety-critical systems, distributed systems, real-time systems, etc) abstractly and to then reason about the behaviour of such systems to ensure they work correctly. This research project involves developing a range of new support tools for concurrent systems based on Petri nets. It will involve researching the Petri modelling language and investigating key visualisation and analysis algorithms in the literature. The exact content of the project is open for discussion but the following are some of the suggested themes: (i) Develop a range of visualisation techniques for displaying and understanding executions of a Petri net model. (ii) Develop animation approaches for executions of a Petri net model. (iii) Investigate the automatic analysis of a Petri net model.
Developing Tools to Support Model Composition: A key technique for constructing large models is to build them compositionally from parts. This allows large complex models to be created but allows the model to be analysed compositionally by analysing the properties of the parts that were composed. This project would focus on developing techniques and tools for supporting the compositional construction of qualitative models of control systems. The exact focus of the project is open to discussion but it is likely to involve: i) develop basic visualisation tool for model parts; ii) develop and implement algorithms for composing parts; iii) developing algorithms and tools for compositionally analysing models.
Developing a Tool for Learning Algorithms: Algorithms are fundamental in Computer Science and a good understanding of important algorithms is a key requirement for any computer scientist. This project is about developing tool support to help students learning and understanding important algorithms based on using animation techniques. The project would involve selecting a set of algorithms and developing an algorithm animation tool to support students learning those algorithms. This project is suitable for students studying MSc in Computer Science (5055F/5055P).
Developing a quiz engine to support student learning: The idea behind this project is to develop a generic quiz engine which could be used to help support students on their degree modules. The quiz engine should allow a range of question types to be set up and automatically marked, and allow students to track their progress. The provision of appropriate feedback would be a major part of this system and other challenging aspects that could be undertaken include how to allow students to add their own feedback or questions.
Technologies & Programming Languages
I am comfortable supervising projects that make use of the following technologies and programming languages.
- Technology choice is normally left to the student
Please email to arrange a meeting