U of Nott CS & IT COL Research Lab

Last Update: 16 June 2021

Back to the Main Page

Individual Dissertation (Relevant for UG and PG Projects)

General Information:

See the CS Project Handbooks for general information about individual projects.

See the list of UG projects and PG projects that I have supervised.

See the individual project guidelines (for students that I supervise).

Areas of Interest for Supervising Projects

The project ideas listed here are related to my areas of research, which in a summarised way include the application of search and optimisation methods including artificial intelligence techniques to tackle a range of real-world problems in the broad area of modelling and optimisation. Also, some of the these project ideas are related to the module that I currently teach, Linear and Discrete optimisation or related to other modules in the School, like Simulation and optimisation for Decision Support, Artificial Intelligence Methods, Advanced Algorithms and Data Structures, Fundamentals of Artificial Intelligence.

I would also supervise projects in other topics of computer science if the project is within my interests and I feel competent to supervise the project. Please contact me if you are interested in me supervising your project so that we can have a conversation before agreeing to supervise a project. Note that all the projects ideas listed below can involve research and/or programming but they can also be tailored for a practical application that is in your interests.

What is required to undertake the projects suggested here? One typical question is: is this project adequate for obtaining a high grade? and the answer for all projects listed here is YES BUT IT STRONGLY DEPENDS ON THE STUDENT'S COMMITTMENT TO DEVELOP A HIGH-QUALITY DISSERTATION. The projects listed here have the potential to carry out research and develop a computer system. You definitely need to do considerable programming but also search the literature, select, read and analyse sources of information. As a computing student you are expected to produce good quality computer code. At first sight, these projects might seem too challenging, particularly if you are not familar with the problems or techniques. However, these are project ideas for which I can offer specific guidance. Selecting a challenging project does not guarantee you to obtain a high grade, that is only a good start. It is your performance and achievements which will be reflected in the final grade.

Are these project ideas suitable for MSc, MSci or BSc dissertations? Most of the project ideas suggested here can be adapted for developing a dissertation according to the degree type and subject (computer science, artificial intelligence, combination, etc.). Please see the corresponding project handbook for more guidelines and the requirements that your project should meet according to your degree. For all these project ideas, there is a potential for producing a publication if that is something that interests you.

Some ideas for individual projects are listed below, they are intentionally described very briefly in order not to be too prescriptive. The intention is that such ideas trigger your interest, then you can conduct some research and shape the project idea to your own liking. If you want some more specifics on these ideas, please contact me to have a conversation. You can also look at the undergraduate and postgraduate projects that I have supervised in previous years as they could also trigger some project ideas of your own.

Some Ideas for Individual Projects

Further Development With Existing Search and optimisation Algorithms

Recent research work has resulted in the development of search and optimisation algorithms for tackling some optimisation problems. There are various ideas that would seek to extend some of this work by for example, conducting systematic computational experiments, adapting algorithms to different scenarios, comparing the performance of different algorithms, etc. That is, projects that do not aim at conceiving a new algorithm, but instead, aim at studying and/or modifying existing ones. For example, algorithms that we have developed recently include: tailored constructive heuristics, non-linear great deluge, evolutionary cooperative local search, dynamic lexicographic approach, variable neighbourhood search, genetic algorithms, etc. Examples of optimisation problems that can be subject of study include: multi-objective vehicle routing problem, inventory routing problem, workforce scheduling, university course timetabling, nurse scheduling, sports scheduling, shelf space allocation, assignment of modules to lecturers, diet optimisation problem (also called product-mix optimisation), knapsack problems, etc. Projects of this type can involve writing mathematical programming models for optimisation problems in software like LP-Solve, CPLEX, GUROBI, Excel Solver and VBS, etc. Also, projects of this type can involve implementing heuristic optimisation algorithms in programming environments like Java, C/C++/C#, Phyton, R, Mathlab, etc.
Note: these project ideas would be suitable for those students that feel attracted to research-oriented projects based on computational experimentation with algorithms and that want to learn more about how to solve optimisation problems.

Benchmarks and Visualisation Tools for Selected Combinatorial Optimisation Problems

In combinatorial optimisation problems the aim is typically to find the best (optimal) arrangement of objects that satisfies a given set of constraints. Examples of these type of problems are the travelling salesman, bin packing, vehicle routing, timetabling, workforce scheduling, sudoku, etc. Projects can be conceived about the development of software tools that facilitate the better understanding of these problems, most of which have real-world applications in business and industry. Examples of past projects of this type include: 'Visualisation of Transport Plans' (BSc project in 2011-2012), 'Visualisation of Transportation Plans' (Msc project in 2011), 'A Test Suite for Solving and Visualizing the Multi-objective VRPTW' (MSc project in 2012), 'Managing the Office Space Allocation Problem - A Demonstration Framework' (Msc project in 2015), 'Benchmark and Visualization tool for Workforce Scheduling and Routing Problems' (BSc project in 2018-2019), 'A Visual Teaching Tool That Can Help Students Understand Network Optimization Problems and Broaden the Corresponding Programming Thinking' (MSc project in 2019), etc.

Educational Software Tools for Search and Optimisation Algorithms

There is good variety of search and optimisation algorithms and many bibliographic resources that describe these algorithms at various levels of detail, but not many software tools to facilitate the 'self-learning' of how these methods work. Heuristic search is an important technique from Artificial Intelligence that is also subject to intensive research because it can help to solve very difficult and large search and optimisation problems. The goal here is to develop tools that interactively illustrate the way in which some algorithm works. The focus should be on effectively visualisation and interactivity, can be a tutorial or even a computer game. Examples of past projects of this type include: 'A Tutorial for Heuristic Local Search' (MSc project in 2009), 'Tutorial Application for Genetic Algorithms' (BSc project in 2015-2016), 'An Intuitive, Visual and Interactive Tool for Learning About Heuristic Optimisation Algorithms' (MSci project in 2018-2019), etc.

Mobile and Web Services for Scheduling Problems

The goal here is to develop software tools to facilitate the automated creation of schedules through modern smartphones and other mobile devices and via the Web. There is a variety of scenarios in which a schedule needs to be created in order to make the utilisation of resources more efficient. For example, workforce scheduling, meetings scheduling, sports scheduling, timetabling, tasks scheduling, etc. could be suitable scenarios for the application of search, optimisation and computational intelligence techniques. Examples of past projects of this type include: 'Android-Based Sports Competition Scheduling System' (MSc project in 2015), 'Teaching Checkers Through a Mobile App' (MSci project in 2017-2018), etc.

Search and Optimisation Through Mobile, Cloud, Edge or Fog Computing

Traditionally, search and optimisation algorithms are developed for running on powerful standalone computers given that these type of algorithms usually consume considerable computation power and memory. The goal here is to evaluate the suitability of developing this kind of algorithms for other computing platforms such as mobile devices, cloud computing, edge computing or fog computing. Projects could be about conducting a systematic evaluation of opportunities or about actually developing a computing solution to some selected scenario using such computing platform.

Software Solutions for the Office Space Allocation Problem

The office space allocation problem refers to allocating people to office space in order to ensure an adequate utilisation of the available office space while also satisfying additional constraints. Various works have been done on this problem, developing algorithms, problem instance generators and graphical user interfaces. There are opportunties for developing various project ideas in this problem domain. The projects could be on computers algorithms, visualisation tools, survey and analysis of existing software, etc.
Note: There is a number of resources (test data sets, various articles, several prototype systems, etc.) for projects in this area given the work that has been undertaken over several years.

Simulation Models as Visualisation Support for Optimisation

Simulation and Optimisation are techniques that can work together very well in order to develop intelligent decision support systems. For example, simulation can be used to deal with real-world uncertainty in optimisation problems, simulation can be used to evaluate solutions produced by an optimisation algorithm, optimisation can be applied to tune the parameters of simulation models, and simulation-optimisation can work together to generate data sets for optimisation problems. Moreover, agent-based simulation can be applied to solve optimisation problems. Projects could be about any of these types of methods combining simulation and optimisation.
Note: Some previous dissertations have developed agent-based simulation models in AnyLogic to tackle combinatorial optimisation problems like office space allocation and workforce scheduling and routing, there is scope for extending this type of work.

Modern Computing in Healthcare Provision

There are many challenges in the provision of healthcare, particularly considering an ageing population. Budgeting for the healthcare sector is increasingly difficult and companies are forced to improve, innovate, and be more efficient to survive. Computing technologies including IT, big data and social media could play an important role in improving healthcare provision. Project ideas could be conceived to understand the ways in which these technologies can be beneficial and drivers for a better quality provision of healthcare by means of helping companies in the sector to achieve more effective and efficient business operations in this context or to provide software tools for aiding healthcare. Examples of past projects of this type include: 'Optimisation of General Health and Fitness With the Use of Mobile Application Development' (BSc project in 2016-2017), 'Provide Data Visualization Health Guidance by Modelling and Optimizing Dietary Intake' (MSc project in 2018), 'Use Case Driven Object Modelling for a Proposed Application for Alzheimer's Patients' (BSc project in 2018-2019), etc.

Tutorial on the Graphical Method for optimisation

The graphical method is one of the essential concepts for optimisation, it is based on solving a system of linear algebraic equations in order to find the values for the variables that optimise some objective function. A previous student project developed a very good basis for a tutorial on the graphical method for optimisation. The program was developed as a web application and the functionality was rated as very good. The goal of this project is then to further develop the application towards a product to be released. The graphical method is taught in the module 'Linear and Discrete optimisation' and the students in that module would be available as actual users in order to inform the project development.

Computational Intelligence and Software Engineering for Puzzles

Project ideas can be conceived for the development of software aimed at solving puzzles. There is a great variety of puzzles and many are computationally difficult to solve. In some cases, well-known algorithms exist and hence projects could be about applying software engineering to develop interfaces, mobile apps, web applications, collaborative playing tools, etc. In other cases, identifying some computational intelligence approach to solve the puzzle could be a good project. There is scope for many ideas in this topic depending on the particular interests of the student. The solution of some puzzles through computational intelligence algorithms can give an insight into a variety of real-world applications of these techniques. Examples of past projects of this type include: 'Rogo - An Optimisation Problem's Solution Returned to a Mobile Device Using Cloud-computing and SOA' (BSc project in 2012-2013), 'Neural Network Approaches on Performing different Tasks on Rogo, a TSP-Based Puzzle' (MSc project in 2018), etc.

Various Other Project Ideas Available For Discussion, Contact Me If Interested

  • Automated Calendar Planner for Student Coursework
  • Automated Generation of Posters for Research Projects
  • Automated Repair of Constraints in Combinatorial Optimisation
  • Automated Upgrade of Web Pages Code Based on Models
  • Benchmarking Optimisation Solvers (CPLEX, GUROBI, GLPK, etc.)
  • Benchmarking Programming Languages for Optimisation (models or algorithms)
  • Bundles Exchange and Auctions of Unwanted Items
  • Cognitive Explanation of the Solving Process in Algorithms
  • Collaborative Ridesharing Based on Location and Calendar Data
  • Intelligent Chatbot for Identifying Optimisation Problems
  • Minecraft Education as Tool for Learning Optimisation
  • Mobile App to Create Schedules for Sports Competitions
  • PDF Reader Tailored for Scientific Documents
  • Tackling Various optimisation Competitions
  • Tool for Students and Teachers to Assess the Quality of Timetables
  • Visualising the Types of Heuristic Optimisation Algorithms