I am offering the following projects in 2017-18 academic year. Each project clearly specifies whether it can be done on the undergraduate, MSci, or MSc level.
All topics are related to my research interests, and some have a potential for a research paper or a continuation as a research topic.
Please note that all projects contain a theoretical and a practical part (implementation). You will be required to submit your source code as a part of the project report, and to include a demo of your implementation in your final project presentation.
The project is done in collaboration with the University of Bristol and Bristol Robotic Lab. n the domain of human-robot interaction (HRI), we need to ensure that systems consisting of robots and human agents perform correctly. Typically, correctness of systems is assessed by testing them. However, when the system contains a robot and a human, it is more complicated to generate interesting tests. Moreover, sometimes we do not know the robot's code completely (maybe it was built by a third party, or maybe it is an upgrade), so we need to deduce its behaviour from test execution. This project consists of the first steps towards deducing the robot behaviour. It is based on the software and robots developed in the University of Bristol.
The structure of the project is as follows:
The first step is reading a paper on modeling robot's behaviour in a human-robot system from the University of Bristol:
Illan, DA, Pipe, AG & Eder, KI, 2016, ‘Intelligent Agent-Based Stimulation for Testing Robotic Software in Human-Robot Interactions’. in: 2016 Third Workshop on Model-Driven Robot Software Engineering (MORSE 16). ACM (available from Prof. Eder's home page).
Note: I can book two students on this project; in this case, the second student will work with another learning algorithm, for example TTT.
Regular languages given as finite automata are used widely in verification of hardware and software as means to verify the correctness of computations. The computations, which are recordings of executions of real system, are usually very long. If a computation fails (that is, there is a bug in the program), finding the closest non-failing computation might help in fixing the problem. The goal of this project is, given word W and a finite automaton A, such that W is not accepted by A, to compute the closest word to W that is accepted by A. The definition of closest should be researched and several approaches compared. The skills you need for this project include: Good knowledge of the theory of automata; Good ability to search for scientific material and apply critical thinking; Good programming skills in a language of your choice.
The structure of the project is as follows:
This project can be taken only by the students returning from the year in industry and is done in collaboration with the company in which the student worked during the placement. The project should be useful for the company as well as fulfil the requirements for a final year project. Students interested in taking it should discuss with me and with the company. It is possible to book several students on this project.
In
avionics software, decisions can depend on complex compound conditions. For
example, decisions on whether to accelerate or to raise the altitude of the
aircraft can depend on the current altitude, weather conditions, reports from
the air traffic control, fuel status, etc. Since the software for avionics
systems is mission-critical, it is very important to construct test suites that
check the software as exhaustively as possible. The goal of this project is,
given a complex compound condition (a Boolean formula) to construct a set of
test cases to check multiple condition coverage and MC/DC. The project should
include a user-friendly GUI. The project, if successful, will serve as a
learning aid for the Software Measurement and Testing / Advanced Software
Engineering module.
Skills needed for the project:
Deliverables:
The
project should be consistent with requirements for an UG, MSci,
or MSc level project. I will consider supervising projects close to my area
of expertise (see my homepage). |