Available projects 2018-19
The list of projects here gives ideas from staff. These projects are
available in 2018/2019. Due to research leave, some staff may be
unavailable in Autumn 2018 or Spring 2019 and so will be only partly
available for supervision and may share projects with another supervisor.
Discuss projects that interest you with the named supervisor. When you agree your choice of project
with a supervisor, let Dr Jingpeng Li know once this is finalized.
TBA (To Be Announced) has the following meanings:
-
supervisor - a project has been provisionally
proposed, with a supervisor yet to be found
-
student - a project has been proposed but no student
has yet taken it up
-
outline - only a working title has been proposed, with
a project description to follow
denotes a collaborative project with an external organisation
(mainly companies). These projects are ideal opportunities for a student to
gain industrially relevant experience, and perhaps even find a future
employer. If there is competition for collaborative projects, some form of
interview will be used to make the selection.
Index of supervisors:
Dr A Adeel |
Dr D Bhowmik |
Dr A Bracciali |
Dr S Brownlee |
Prof BP Graham |
Chris Grigson |
Dr SB Jones |
Dr M Kolberg |
Dr J Li |
Dr S Maharaj |
Dr G Ochoa |
Prof CE Shankland |
Mr KM Swingler |
Towards a disruptive, intelligent Patient-centric Preventative Diabetes (Type-2) App
Supervisor: Dr Ashan Adeel (ahsan.adeel@stir.ac.uk)
Clinical co-supervisor: Dr M.G. Shaikh, Consultant Endocrinologist, Yorkhill Childrens Hospital
Industrial co-supervisor: Dr A. Ilyas, Health-em Ltd (Scotland)
Student: Avinaash S Tinesh
Outline:
Around 1.8 million people have Type 2 diabetes in the UK, Types 1 and 2 together represent about 90 percent of all
prevalent diabetes cases. The increase in Type 2 diabetes is closely linked to an aging population and rapidly rising
numbers of obese people. Mobile computing can improve the quality of the patients' life by providing systems that help
diabetes patients to monitor and control their diseases.
The aim is to create a new patient-centric Mobile App integrating an intelligent predictive tool which both screens and
prevents Diabetes Type-2, by integrating information from glucose and blood pressure measuring devices, augmenting healthy
life styles, and using social media to create virtual local diabetes communities, including rewarding through gamification.
The proposed App will aim to provide preventative measures for Diabetes Type-2, through novel predictive models based on
monitoring of normal glucose functions and blood pressure profiling along with a number of other functions relating to
their lifestyle. The predictive models will be developed and validated using retrospective data to be provided by the
Consultant Endocrinologist at Yorkhill Hospital.
The student will have the opportunity to spend periods of time working at a Hospital Clinic based in Glasgow (as part of a
work placement element). The student will acquire new research and development skills and also enhance his/her
employability prospects (There could be the possibility of paid employment with the company, following the completion of
the project).
Smart mirror using Raspberry Pi
Supervisor: Dr Ashan Adeel (ahsan.adeel@stir.ac.uk)
Industrial co-supervisor: Dr Arshi Ilyas (Business Innovation Ltd)
Student: James Terence Simpson
Outline:
Every day, various aspects of our lives are becoming increasingly connected through the Internet of
Things and smart home technology. We are constantly generating data, receiving information, and in
real-time communication with our devices and each other - from anywhere, at any time. And this
connectedness is dramatically on the rise. In this project, the student will build a smart mirror
which can interact with the user and present relevant information while he/she gets ready for the
day. For a more personalised experience ,the concept of facial recognition can be incorporated into
the mirror. Features may include, but are not limited to, Weather, Calendar events, Emails, Time,
News
Skills required are general programming in Python and web programming. The project will offer a
unique learning experience to the student both at hardware and software level. The candidate should
have an interest in exploring the area of smart IoT/embedded systems/robotics.
The project will involve industrial co-supervision, with possibilities for the student to gain
placement/work experience.
The multimedia blockchain: A distributed and tamper-proof media transaction framework
Student: Shleena Nazeer
Outline:
In this project the student will build a framework for trusted media transaction based on emerging Blockchain technology. The distributed and tamperproof framework will aid the JPEG Privacy and Security standard (
https://jpeg.org/items/20180213_press.html). The blockchain network records any media transaction with necessary information related to intellectual property rights, access control rules and content signature. You will use content signature, generated by compressed sensed samples or low-resolution, low bit-rate compression to verify the image integrity and authenticity. Further reading on this is available from: https://goo.gl/fhN4nG.
Visual attention based watermarking for copyright management in streaming video
Student: Jozef Cibicek
Outline:
The film and TV entertainment industry loses billions of dollars each year due to copyright theft in which films and TV shows are copied and uploaded to file sharing sites where they can be watched for free by millions of consumers. More and more consumers are choosing to watch streaming video from services such as Amazon and Google which can be pirated relatively easily. The purpose of this project is to develop a new way to deter copyright infringement of video. This will protect the business and livelihoods of thousands of companies and individuals in the entertainment industry.
In this project the student will develop visual attention based watermarking algorithm for streaming video content. This also includes algorithmic optimisations for real time execution. Further reading: http://ieeexplore.ieee.org/document/7740049/
Fake/Doctored image identification using machine learning and physical properties
Student: Cameron Gray
Outline:
Image/video forensics, part of advanced digital forensics, is an important component of the modern forensic investigation. Distinct from other forensic evidences, image and video recording provides a real-time eyewitness account that investigators, prosecutors and the jury can listen or watch exactly what transpired. However due to availability of sophisticated image editing software such as Adobe Photoshop, it is now very easy to manipulate/doctor images for various purposes including tampering evidences or spreading rumors.
In this project the student will develop an image processing algorithm that can detect fake/doctored images without having access to the original image. You will use a combination of image processing, machine learning and physical properties of the content in the image. Further reading for contextual understanding: http://www.bbc.com/future/story/20170629-the-hidden-signs-that-can-reveal-if-a-photo-is-fake.
Fake news detection using machine learning and natural language processing
Student: Alexnder Carmichael
Outline:
Due to the growing presence of social media or social networking sites people are digitally connected more than ever. This also empowers citizens to express their views in multitude of topics ranging from Government policies, events in everyday life to just sharing their emotions. However the growing influence experience by the propaganda of fake news is now cause for concern for all walks of life. Election results are argued on some occasions to have been manipulated through the circulation of unfounded and some time doctored stories on social media.
In this project the student will develop a machine learning based algorithm that can classify fake news. This will also explore natural language processing in order to extract key features that attribute to fake news identification.
Image auto-captioning using Deep Learning
Student: Lewis Dick & Albert Jozsa-Kiraly
Outline:
Image auto-captioning is an emerging area that has many applications. It is easy to capture and share images, extract the geo-location or even identify the objects. However it is a very challenging problem to train a computer to see an image, understand and describe its content. In this project the student will develop an algorithm that generates natural language descriptions of images and their regions. You'll explore about the inter-modal correspondences between language and visual data. You'll use advanced machine learning techniques such as deep learning in this work. Further reading: .
Low power and accelerated computer vision system design on a heterogeneous FPGA+CPU platform
Student: Dimitrios Faitas
Outline:
Scene understanding and prompt reaction to an interesting event is a critical feature for any time critical computer vision systems for safe and reliable interaction with the environment. The deployment scenarios include a range of applications such as mobile robotics, autonomous cars, mobile and wearable devices or public space surveillance (airport / railway station). Modern vision systems which play a significant role in such interaction process require higher level scene understanding with ultra-fast processing capabilities operating at extremely low power. This is achievable through heterogeneous vision system design where FPGAs and CPUs are used for efficient implementation of image processing algorithms.
In this project the student will develop a vision system on a Xilinx Zynq (a heterogeneous FPGA+CPU platform https://www.xilinx.com/products/boards-and-kits/1-5ey5xx.html). The student will learn a new computing paradigm using Xilinx SDx development environments for embedded computing ( https://www.xilinx.com/products/design-tools/software-zone.html). Initial reading on the topic: https://goo.gl/oHWd4r.
Quantitative modelling
Student: TBA
Outline:
This project is about the use of a formal (programming) language to develop
a model of a system of interest, ideally in the field of biology or population
dynamics, but other alternatives can be discussed.This project can be largely
adapted to student interests, both in terms of the system to be modelled, the
language/formalism/tool that will be used for modelling, and the type of properties
one wants to study about the system. If you are vaguely interested, come to talk to
me, we will explore possibilities together. For a curious student willing to address
research-related topics.
Drone Programming
Student: TBA
Outline:
This project is for a student who wishes to investigate and play with new and
developing technology. We have a camera-enabled programmable
Dji drone . The drone comes with a
programming environment and some available API. This is a highly explorative
and expectedly rewarding and fun project, with the potential to develop some
expertise in a hot technology. Who wants to be the first to program the drone?
This could possibly be an initial step of a larger project to be developed in a
few years by several students. The application can be agreed, from simple case studies
to programming the drone for a specific task. Learning the basics of flying the drone
and legal requirements could be needed (but can reasonably be avoided, if preferred).
This project is also suitable to be developed by two/three collaborating students
developing independent parts. Good programming skills and understanding of computation
are (highly) desirable.
AppSisted Parking
Student: TBA
Outline:
We want to design and develop a mobile application that can assist finding a
parking. Initially, the test case will probably be the crowded parking lots at
the University, but the project could have a more general scope (which could
also include collaborations with companies).
Beyond the quite general aim, the details of the design and implementation of the
application can be discussed and agreed, according to the interests and ideas of the
student. Early commitment preferable. Requires some inital basic understanding of the
mobile technology and willingness to learn the details of it, as needed. The project
can be extended to include elements of social computing and shared economy.
Raploch Community Partnership (RCP): Supporting Social Wellbeing and Quality of Life
Student: TBA
Outline:
This is a project done in collaboration with RCP. "Raploch Community
Partnership is a community led organisation focussing on the
economic and social regeneration of Raploch and the wider Stirling
area. We aim to help the people and organisations of the area to
realise their potential through their activity, work and incomes.
We want a thriving prosperous community and for that prosperity to
be sustainable - with economic wellbeing enhancing social
wellbeing and quality of life."
In this project a student will design and develop a system to
track how people contribute to the goals of RCP within the
community and how they can be supported in that. Likely, this
could be done by designing an app that is able to record people's
contributions and activities. Aspects of social media and
crowdsourcing, e.g. how people activities and progresses are
publicised and coordinated within the community, can also be
considered.
Students are expected to contribute to the definition of such a
project, with a social impact. Collaborations with the division of
Economics about interpreting collected data are also a possibility.
BitCoins? How much are they worth?
Student: TBA
Outline:
This is a research-oriented project aiming at exploring the
context of virtual currencies. This is an exciting field which is
strongly developing and deemed to have an impact on our society in
the near future. The project will be about understanding and
exploring the technology, particularly the block-chain upon which
such currencies rely. This will consider mainly the associated
computational aspects. Most likely, writing programs interacting
with one block-chain will be part of the project.
No previous knowledge is required. However, this is a
research-oriented project suitable for a student with a strong CS
backgroud willing to explore new technologies.
Cryptocurrency: Bitcoins and friends, new scenarios of decentralised economies
Student: TBA
Outline:
Bitcoin and other cryptocurrencies have introduced a new economy/market/social/organisational model,
still under development and to be understood, but with great potential. Informally speaking, these frameworks
allow for the exchange of information - typically monetary transactions but also other data - between peers
without any assumption of trust: I can pay anyone without a bank guaranteeing for the exchange, which is
actually granted by the underlying technology - the blockchain.
This project(s) can be carried out at different levels and in accordance with the interest and expertise of the student.
It is possible to analyse distinguishing features of a cryptocurrency, the distribution and graphs of payments,
their security aspects, or the impact on specific markets.
Details can be discussed with the lecturer while scoping the project.
No previous cryptocurrency expertise is required. The project is suitable for a curious student keen on learning new things
and experimenting with developing technologies (may sometimes require an extra effort).
Blockchain technologies and smart contracts: distributed consensus and decentralised computing
Student: TBA
Outline:
Blockchain technologies provide the possibility of managing data and performing computation in a very - ideally - democratic way:
by means of a network of peers without dominant positions. Introduced by the Bitcoin framework about 10 years ago, Blockchain
technologies are currently in an hype phase, attracting a lot of interest and capitals - in the order of billion USD - promising to
revolutionise socio-economical systems. This is a frantic and chaotic defining phase, akin to the inception of the WWW (followed by the
crisis of the dot coms).
This project(s) aims at the exploration of such a novel programmable world of cryptocurrencies and smart contracts, i.e. executable
agreements in the form of blockchain programs that are meant to facilitate interactions between individuals, companies and the third sector.
This relies on a novel model of computation, still to be fully understood and defined. Project(s) can be carried out at different levels
and in accordance with the interest and expertise of the student.
Details can be discussed with the lecturer while scoping the project.
No previous cryptocurrency expertise is required. The project is suitable for a curious student keen on learning new things
and experimenting with developing technologies (may sometimes require an extra effort).
Identification of suitable territories for simulation products
Student: TBA
Outline:
Rivet Games are focused on making high quality simulations of trains so enthusiasts can experience the challenges of train driving on their PC or gaming console. These two projects are designed to see if cutting-edge big-data techniques can be used to improve the choice of content made by Rivet and better analyse high volumes of scan data.
This project aims to improve how Rivet Games choose the target areas and trains to model for the consumer simulation products. There are a number of countries which have a traditional association with simulation products, for example, the USA and Germany, and there is already a range of material intended to satisfy this demand. This project will try to identify other areas of the world where there is high interest but few available products. Addressing these markets could help Rivet to significantly expand the train simulator market.
There are many possible data sources that can help identify where other simulation products are popular which can then be compared with the relative interest in train simulation - SteamSpy (www.steamspy.com) is an obvious data source for information on PC players. This data can be correlated with data about the availability of routes to model (from national rail authorities) to help identify latent demand. Other data sources, such as YouTube views of relevant material (say cab ride videos), sales of model trains, number of podcasts/Twitch streams, railway holiday offers or train-related TV series could also be used to confirm the regional interest in trains.
Simplification of laser scan data
Student: TBA
Outline:
Rivet Games are focused on making high quality simulations of trains so enthusiasts can experience the challenges of train driving on their PC or gaming console. These two projects are designed to see if cutting-edge big-data techniques can be used to improve the choice of content made by Rivet and better analyse high volumes of scan data.
Laser scanning offers the potential to significantly increase the productivity of a key element of Rivet's development pipeline which is to create highly accurate of the inside and outside of trains and relevant buildings. Laser or other scanning could provide an improvement on the current system of using technical drawings or reference photography, but unfortunately, the amount of data captured by a laser scan is far too much to be usable in a simulation without significant post-processing. This project aims to review to options for reducing the data created by a laser scan to a volume suitable for use on a reasonably powerful consumer PC.
There are a number of (open source and proprietary) systems for reducing laser scan data into a practical form usable for consumer simulation. This project will explore the benefits and drawbacks of a range of these approaches. Four types of content will be explored:
-
Vehicle internal (driving position)
-
Vehicle external
-
Building external
-
Building internal
In each case the goal will be to create a range of models with a defined number of polygons (500, 1,000, 2,000, 4,000, 10,000, 20,000, 50,000) in a standard form for 3D modelling packages (.FBX or .max would be ideal) and compare these with models created using traditional modelling techniques.
Access to representative locomotives or other vehicles can be arranged by Rivet and suitable buildings for scanning can be suggested.
Evolutionary Algorithms for Creating Music
Student: Connor Stephen & Kyle Hayden
Outline:
Evolutionary algorithms are good at searching for solutions to difficult
problems and have been applied to various real-world problems.
They can also be used for creativity, such as generating music.
This is probably with the input of a human, who will evaluate the
possible tunes as they are found.
The process can reduce the human input by basing tunes on an existing
collection of music, or by guessing the human's preferences based on
what they liked previously.
This project will explore the possibilities of generating music using
evolutionary algorithms.
The skills required are general programming in Java and some creativity.
Programming Java for longer battery life
Student: Anna Rasburn
Outline:
Everyone gets frustrated when their phone battery runs out of charge. One of our research projects has developed a tool to estimate the power taken by a CPU when running Java code. There are a variety of approaches to tuning software, from changing basic parameters to changing source code. This project aims to take an existing piece of software and attempt to tune it for maximal battery life. The skills required are general programming in Java and data/statistical analysis.
Modelling Neural Systems
Student: TBA
Outline: I am interested in computer simulations, based on mathematical models, of (parts of) the brain.
Such simulations look at individual neurons in some detail, or neural networks using simplified
models of the neurons. If you are interested, then we can formulate a project tailored towards
what you would like to do. Typical projects will involve implementing an existing model in a
high level language such as Java or Python, and developing a suitable GUI to examine model output.
Specific simulation packages such as NEURON or Brian (Python-based) might also be used. Some
projects might concentrate on the visualisation aspects eg animated model output and data presentation.
General purpose programming with GPUs
Student: John Collins
Outline: While GPUs are designed and built specifically for fast
graphics processing, their architecture is suitable for doing other sorts of calculation,
with potentially great speedup over doing the same calculation on the CPU. The release of
NVIDIA's CUDA SDK makes programming GPUs readily possible. The aim of this project is to
get familiar with the concepts and benefits of general purpose programming for GPUs, and
to make use of CUDA in developing some simple applications and testing for speedup compared
to running the same applications on the CPU. Possible applications include simple cellular
automata, such as the Game of Life. Comparison can be made with the
Java-based Netlogo simulator for this sort of application.
Modelling Navigation Strategies
Student: Max Aitkenhead
Outline: We use variety of strategies to navigate around our world,
including sensory cues and
measures of self-motion. Recent experimental data from mice indicates that they can
chose between strategies to reach a goal location containing food in a star maze:
(1) they use a map of the environment derived from visual cues to work out where
they are in relation to the goal, or (2) they learn the sequence of turns required
to reach the goal from a given starting location. The aim of this project is to
build a computer model of this navigation scenario and use AI learning techniques
based on neural networks and reinforcement learning to train a virtual mouse to
learn these different strategies. Coding and visualisation might be done from
scratch in a language such as Java, or simulation environments such as Netlogo
and Webots might be suitable.
Learning in context
Student: Ondrej Tomek & Eoin Patrick
Artificial neural networks are able to learn to recognise, categorize and make predictions
about data streams, such as images of faces, financial trading data etc. The networks are
trained on example data, rather than being programmed directly. However, such training is
usually done without considering issues such as the context in which the data was collected.
For example, a Satnav system that generates routes without considering the vehicle being
driven: we have all seen pictures of large trucks getting stuck on bends that are too tight
for them! Training algorithms for neural networks that take context into account do exist,
but are not yet widely used. The aim of this project is to program some examples using these
algorithms to illustrate their usefulness. The starting point are results published in several
research papers. Any programming language can be used, and suitable neural network APIs can
provide a starting point (eg TensorFlow from Google).
(with Health Sciences and Sport)
Heart rate variability
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Possible Sports co-supervisor: Stuart Galloway
Student: TBA
Outline:
Heart rate variability is a key fitness and health indicator. The r-r interval or
interval between heart beats can be easily read with several technologies including ECG,
Pulse oximetry and Piezo sensors. The Poincaré plot is a good visual indication of HRV
and might be implemented live on an Android device. Other measures can be derived from HR
data. HR data can be combined with data from other sensors measuring for example breathing
and activity.
See https://en.wikipedia.org/wiki/Heart_rate_variability
Components:
- Maxim 30100 sensor
- H7 bluetooth belt
- Logging to memory card
- Android app with Poincaré live display
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Handgrip fitness trainer for sedentary people
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Possible Sports co-supervisor: Niels Vollaard
Student: John Ramsay
Outline:
Regular, light hand exercise has been shown to improve blood pressure and may have
other whole body health benefits. An Android app can guide users through a
training routine providing encoragement and setting goals. The app might take
readings from a low cost custom hand grip sensor. The app should display live
results, a clear overall summary of past data and automatically load data to the
cloud.
See http://www.bbc.co.uk/programmes/articles/3nvRZxYFPxHCCvxGwmDt0cC/is-there-a-short-cut-to-getting-fit
Components:
- Andoid training app
- Sensor development
- Power management
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Human skeleton map / Goniometry
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Angus Hunter/Lee Hamilton/Dave Clark
Student: TBA
Outline:
Measuring the orientation of limbs is important in sport and health research.
A goniometer specifically measures joint angles but other instruments offer a more complete
view of limb positions and many are non contact or wireless. Traditional methods are often
bulky, expensive or time consuming. Newer methods include the Kinect game controller and
inertial measurement units (IMUs) but are these accurate and how do they compare to established
methods? Can you make your own wireless IMU based sensor? Can you make a wireless adapter
for a traditional sensor? Software could interpret data from multiple sensors and display a
live animated skeleton. Other software might interface to the cloud and calculate the accuracy
of the different sensors. Special algorithms may be required to improve results from IMU sensors.
A specific and unusual application (Dave Clark) is flexibility testing to measure fitness in Rugby
teams, a video analysis application would be ideal for this simple, well controlled test.
See:
Components:
- IMUs Arduino Microbit (embedded code)
- Android interface
- Desktop interface
- Piezo resistive
- Kinect
- Performance comparison
- Communications, cloud and datalogging
- Kinovea angular measurements and camera errors
- In house video analysis software
(with Health Sciences and Sport)
Vertical Jump measurement system
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Oliver Witard
Student: John Jessiman
Outline:
Vertical jumps provide a key measure of performance. Develop a force platform and height sensor.
Establish communication with a small computing platform such as Raspberry pi, Beaglebone or Arduino.
Write a gui application to guide the user through the test. Analyse the test and display results
alongside the plotted raw data. Log the results to memory card and the cloud.
See:
Components:
- Load platform
- Displacement sensor
- Embedded linux or RPi application
- Android app
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Reaction timer
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Lee Hamilton/Angus Hunter/James Dugdale
Student: TBA
Outline:
We have a reaction timing system built using a Arduino mega and touchscreen.
This works well and there are many opportunities to improve the system and
discover new applications.
Components:
- Improve existing system
- Add transducers to measure reaction for different senses and limbs
- Communications, cloud and datalogging
- Adapt for different sports including football
(with Health Sciences and Sport)
Instrumented massage bed
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: TBA
Student: TBA
Outline:
It is difficult to standardise a massage procedure over multiple participants.
And instrumented massage be could give live feedback to the masseuse. Applied force
in multiple directions is an obvious measurement but are there any others?
Components:
- Instrumenting the bed and tools
- Rpi interface DAQ over i2C using the common HX711 amplifier
- Signal processing & experimental measures
- Communications, cloud and datalogging
(with Health Sciences and Sport)
Fuji pressure film analysis software
Please speak to Chris Grigson in 4V8 (or email below) about this project.
A suitable supervisor in Computing Science should be approached too.
Sports co-supervisor: Lewis Macgregor
Student: Fergus Macpherson
Outline:
The pressure applied during massage and foam rolling can be recorded on pressure sensitive films.
The image on the film lasts for a limited time. Develop software to accurately map the pressure
recorded on the film in good time. This project is technically easy so the software should be
complete, intuitive feature rich and debugged.
Components:
- Acquire image
- Filter
- Map colour intensity to pressure
- Analyse the pressure map for key statistics
- Store pressure map and results in a handy format
A Brookshear Machine Emulator for Teaching
Student: James Coburn
Outline:
This project is to produce a good Java implementation of the 'Brookshear
machine'. See S J Maybank's lecture slides, based on the description
in Brookshear's text book on Computing Science. See also chapter 2 and
Appendix C of G J Brookshear's book. Copies of this are available
from the Library.
Low-level implementation issues have been re-introduced
into the second semester computing science module. The Brookshear Machine
is being used to illustrate the concepts. Having a good,
educational tool, produced 'in house', would be good. Currently, students
have to use something only partially adequate.
A variety of existing implementations are available on the web and
elsewhere. These are each incomplete or inappropriate in some way: some are
written in the wrong programming language, and some have no accessible
source code. There are lots of good ideas out there, but not all together in
one neat package.
An important addition to what most existing implementations offer is the
need for an assembler. The existing implementations allow the user to type
hexadecimal into memory cells, and some can load files with programs already
coded in hex. An assembler would translate an assembly language version of a
program into a loadable hex file. ANTLR is suggested for this, which is a very interesting
compiler generator tool.
Note: Prof Smith (below) has a similar sounding project. However, this project
is aimed at a very clear, highly useable presentation of a simple computer, whereas
Prof Smith's project addresses a much more sophisticated CPU.
The Scripted Debugging of Java Applications using JPDA
Student: TBA
Outline:
A simple, universal way to debug programs is to insert additional diagnostic
statements into a program. This produces, usually, a textual log consisting
of any useful messages about the status of execution that the programmer
wishes. The disadvantages of this approach are that the program needs
editing to add and remove the diagnostic statements (itself an error prone
activity) and that the textual logs can become too bulky to be useful.
An alternative is to use an "interactive debugger". In this
approach the original program is run without alteration, but it is under the
low-level control of the debugger facility. The programmer can request that
execution pauses at nominated "breakpoints" so that progress can
be checked, values of variables inspected and so on. Although the original
program does not require meticulous editing, using the interactive debugger
on a large application is itself an intensive and meticulous process.
Interactive debuggers for Java are included in Eclipse and BlueJ, and there
is a stand-alone Java debugger called JSwat.
In this project a hybrid solution is proposed. The programmer devises a
"debugging script" (which could be, say, an XML document)
describing at which points in a Java program's execution the progress is
to be monitored, and what should be reported at those points. There could be
many sophisticated extensions of this idea. The program is then run under
the control of a debugger facility that automatically sets breakpoints
according to the script, fetches information and reports appropriately at
the breakpoints, and so on. This could be purely automatic (producing a
diagnostic log), or could itself be controlled interactively by the
programmer.
The technology to be applied in this project is principally the section of
the libraries call the Java Platform Debugger Architecture (see JPDA online). The JPDA allows
a Java application (the debugger) running on one JVM to control and
interrogate another Java application (the debuggee) running on another JVM.
A tool for supporting "Attendance and Engagement" monitoring procedures
Student: Ryan Trainer
Outline:
The University has recently established a supportive policy concerning students'
"Attendance and Engagement" . This "has been developed as part of the University's commitment to provide a
comprehensive supportive learning environment in which all students are encouraged to develop a breadth of skills,
abilities and approaches to their studies and maximise their full potential".
The general principle is that module coordinators should record
student attendance/engagement at specific "points of contact" (for example, tutorials and coursework
submission). This will allow the coordinator to identify "when expected points of contact are missed
which may indicate a student at risk", and the coordinator may then invite them for a meeting to
discuss any problems that the student has with the module, or can refer the student to their
personal tutor to "discuss any concerns the student may have and if necessary, direct them to
the appropriate support service".
This is particularly important in the case of overseas "Tier 4" visa students (from outside Europe), who risk having their
visas cancelled (and being deported) if they do not engage with their studies.
This project is to develop a system for supporting the Division's module coordinators in their implementation
of this policy. It should
- keep attendance records for each student/module,
- make it as easy as possible for coordinators/tutors/etc to record attendance at sessions,
submission of courseworkwork, etc,
- be configurable with "triggers" to alert module coordinators when students miss expected
points of contact,
- cross-check attendance records between modules,
- be able to produce readable and archivable attendance record reports.
The implementation technology can be anything appropriate, either desktop or web, perhaps with mobile/tablet
interface components, and would probbaly require a shared database.
An on-screen marking tool for providing feedback on programming assignments
Student: Jamie Paterson
Outline:
Traditionally we annotate printed versions of programming assignments with feedback for the student
(printed either by the student or by the marker).
It is then necessary either to return the feedback to the student (it's not always easy to find them),
or to persuade the student to come and collect their feedback (it's surprising how difficult that seems
to be for some students!).
An alternative is to complete the marking electronically, and to return the feedback to the student by
email or perhaps via a web link. The clear advantages are that there is no paper management, and
feedback is delivered directly to the student. Note that this is not automatic marking, but
electronically supported manual marking and feedback.
Turnitin, accessible at Stirling through Succeed, includes an on-screen marking feature called GradeMark
(see YouTube demo here: https://www.youtube.com/watch?v=r9_mmowfEDo).
However, although GradeMark is quite sophisticated, it seems to have some drawbacks:
- It is not intended for, and is not well adapted to, marking program code (and Turnitin is not adapted to receiving code):
language extensions such as .java, annotating layout issues, indicating blocks of code, allowing feedback comments connecting several sections of code.
- GradeMark has a nice on-screen interactive view of feedback: students hover their mouse over feedback markers
and the detailed comments pop up. However, the student cannot "take away" this interactive view, they must
be logged in to Succeed and GradeMark.
- Students can download a static PDF file showing their code with feedback, but the PDF consists of simple page images,
with brief markers overlaid on the program text - sometimes obscuring it. The full feedback is available at the
end, but without easy links back to where the markers are. (See example)
So, I would like a desktop application that allows the addition of feedback to programming assignments,
and makes it possible for students to view their feedback nicely. One possibility is a Java desktop application,
generating self-contained HTML/Javascript files with program text and interactive, printable feedback. The application should be
able to help the marker manage a whole class's submissions for an assignment, and should produce feedback out in a form
suitable for convenient emailing back to the class. No support is required for actual marking.
Developing a mobile application for students
Student: Dylan Gilchrist
Outline:
Nganga Njiraini
Servlet Services on the SIP Application Server
Student: TBA
Outline:
Like ordinary telephony, Internet telephony can provide services such as
call blocking, call waiting, and call forwarding. However Internet
telephony offers a more flexible range of choices such as filtering calls
by the source address or source domain.
SIP (Session Initiation Protocol) is an increasingly popular standard for
Internet telephony. So far there have been two main approaches to
developing SIP services: CPL (Call Processing Language) and CGI (Common
Gateway Interface). However, more recently a third approach has been
developed: SIP Servlets.
This project is to investigate SIP Servlets. This will include developing
some SIP Servlet services and deploying them on a testbed within the
department. Particular emphasis will be placed on the new opportunities
offered by SIP Servlets, such as the integration of communications with
other computer and web applications.
This project would be appropriate for a student with an interest in
(tele)communications and programming.
Simulating P2P Overlay Algorithms
Student: TBA
Outline:
Structured overlays provide scalable network overlays based on a
distributed data structure that supports deterministic behaviour for data
lookup. Structured P2P overlays impose restrictions on node placement in
the overlay, and hence improve the efficiency of data lookup.
A number of such algorithms have been developed. These algorithms can be
complex. Due to the inherent dynamic nature of such networks, these
algorithms are difficult to study without suitable implementation.
Simulation environments provide a suitable testbed for this work (e.g.
Omnet++ with Oversim).
Ongoing research activities at Stirling require the implementation of
particular P2P algorithms in such simulators. This project will focus on
implementing one such algorithm and verify its behaviour by running sample
simulations and studying suitable performance measures.
Programming Mobile Phones
Student: TBA
Outline:
Mobile Apps are big business and are developed for a variety of purposes. Applications can be developed in a
platform specific way (Android or iPhone) or using a cross platform approach such as PhoneGap and Titanium. This
project will develop an app in different ways and compare the advantages/challenges with each approach.
Handwriting Recognition
Student: Krzysztof Mazur
Outline:
Handwriting recognition is the ability of a computer to receive and
interpret intelligible handwritten input from sources such as paper
documents, photographs, touch-screens and other devices. The aim of the
project is to implement pattern recognition on handwritten characters by
firstly extracting features and then passing them to a classifier. The
digitised form of the handwritten text needs to be first generated. Images
will then be analysed to determine the significant features, symbolic and/or
statistical, that can be extracted. The feature extraction program should
take raw images as input and produce a binary output indicating whether or
not the feature is present. The binary output would feed into a feature
vector for classification, possibly by a neural network. The project will
also investigate original thought and encourage methodical investigation of
hypotheses, even if these hypotheses turns out to be wrong.
A System for Automating the Job Recruitment Process
Student: Calum MacEachen & Natalie Gardner
Outline:
A software system is needed to allow job recruiters to post jobs. It is also
needed by job seekers to view the posted jobs via different search
categories (such as location, industry, etc.) and to apply for jobs that
they think are suitable. The basic tasks of the system will include the
analysis of requirements, the design of a database that will support the
main activities, and the implementation of a web front-end to the database
which supports two interfaces that will allow both types of user (i.e. job
recruiter and job seeker) to use the database effectively.
A Knowledge Driven Search with Evolutionary Ruin and Stochastic Rebuild: Case Studies of Vehicle Routing Problems
Student: TBA
Outline:
The Vehicle Routing Problem (VRP) is a well known problem in operational research where customers of known demands
are supplied by one or several depots. The objective is to find a set of delivery routes satisfying some
requirements or constraints and giving minimal total cost. The VRP has drawn enormous interests from many
researchers during the last decades because of its vital role in planning of distribution systems and logistics in
many sectors such as garbage collection, mail delivery and task sequencing.
This project aims to develop a new model for intelligent search, in which the advantages of single-solution-based
approaches (e.g. local search) and population-based approaches (e.g. genetic algorithms) are combined. To achieve this,
the key difficulty of how to carry out an evolution on a single solution will be resolved. Experts' tacit knowledge on
the efficiency of the deployment of individual solution components will play a central role in the development of the
proposed model.
An Intelligent and Interactive System for Project Presentation Scheduling
Student: Vittoria Placidi
Outline:
Scheduling ubiquitously exists in everyday life affecting both the private and public sectors. It is the optimisation process of selecting among alternative plans and assigning limited resources over time among the set of activities in the plan, subject to resource limitation, precedence relationships, due dates, and other constraints. Scheduling is known to be NP-hard and has proven to be a difficult task for human planners and schedulers. Hence, this topic has attracted a significant number of researchers, in an effort to develop automatic scheduling algorithms to replace humans.
This proposal deals with a real problem at the University of Stirling. Students on the Computer Science course are required to undertake a supervised year-long project as part of their undergraduate final year. The problem is concerned with the scheduling of individual ten-minute presentations within a number of parallel sessions in a single day, which is constrained by the presence of session chairs, supervisors and second markers. Metaheuristic approaches will be investigated to find the (near-)optimal solutions of the problem, and a Java based software system for interactive scheduling will be developed.
Managing the Honours projects
Student: TBA
Outline:
You can probably imagine what this might cover: From staff adding project proposals, through records of
supervisors ansd second markers and lists of current projects in progress, to the archiving and
presentation of catalogues past projects. All for integration with the current CSCU9Z7 web site, though
supporting the module coordinator with a desktop application is also a possibility.
Machine Learning & Supply Chain Management
Student: Adam Addison
Outline:
The project aims to accurately predict future demand for products with machine learning in order to assist with supply chain management within an organisation. The users of the software will be able to enter the data about a product and get a demand forecast based on the past data. The software will also tackle the problem of managing suppliers within a supply chain efficiently, and so will contain features to help with things such as supplier change overs and supplier contracts. The software will also contain additional features (e.g. order tracking, sales data visualisation, accounts and just in time ordering) to deal with other aspects of supply chain management.
Network Analysis in NetLogo
Student: TBA
Outline:
NetLogo (ccl.northwestern.edu/netlogo)
is a free open-source tool for the agent-based
computational simulation of complex systems. Graphs or networks can be represented as
agents connected by links, allowing the simulation of dynamic processes that take place
on a network. For example, it is possible to model the spread of a virus on a computer
network, or the formation and evolution of human social contact networks. There are a
number of publicly available network data sets, for example,
http://www-personal.umich.edu/~mejn/netdata/.
NetLogo's Network extension allows such
data sets to be imported and used in simulation models.
The project will explore the usability and flexibility of the NetLogo Network extension by
using it to create a collection of examples of network models based on imported data sets.
If time permits, the use of NetLogo will be compared with another network analysis tool,
iGraph (http://igraph.org/redirect.html).
Module assessment report generator for Computing Science modules
Student: Tobias Jung
Outline:
To prepare the final results for each module, a number of documents and pieces of information must be combined: a list of registered students,
coursework results, exam results, and information about students who have deferred exams or have withdrawn from the module. Currently this is
done manually by module coordinators, who must combine several spreadsheets of different formats to produce a report to be presented at the
examiners' meeting. The Chief Examiner must then archive these reports and extract result files to be uploaded to the Portal. All of this is
tedious and time-consuming and requires diligent checking to avoid errors.
This project will create an integrated tool to automate this process. The tool will take as inputs module information, class lists, and
assessment results, and will out the required reports in a uniform format (probably as an Excel spreadsheet). The tool will also automatically
archive the reports and create the files for uploading to the portal. The details of the implementation framework to be used will be decided
later. One possibility is a combination of Java, MySql, and the Apache POI for generation of Excel spreadsheets from Java. Another possibility
is a web-based implementation with PhP, MySql, and PHPExcel.
Modelling A Complex System
Student: TBA
Outline:
This is a generic project that may be taken up by more than one student. The
project will use tools and techniques for modelling complex systems, such as
Agent Based Modelling and process algebras, to model and study a complex
system. The specific system to be studied will be decided by the supervisors
and students; however, the supervisors can suggest examples from biology,
epidemiology, environmental economics, ecology, and other areas. The project
will involve some programming using non-standard, domain-specific languages
such as NetLogo and BioPEPA, as well as some data analysis using statistical
tools such as Excel or R. Some background in mathematics (probability,
statistics, ordinary differential equations) would be helpful but is not
assumed.
Games and interactive simulations for teaching and public engagement
Student: Krasimir Krasimirov
Outline:
This is a generic project that may be taken up by more than one student. it builds upon ongoing research in the use of computer games and interactive simulations for university teaching and public engagement. Existing examples include an interactive simulation of predator-prey interaction and population dynamics, used in an Ecology course, and a fishery management game, used in an Aquaculture course to teach the principles of managing fish stock sustainably. The project will involve identifying a new application for games and simulations in teaching or public engagement, and then developing and evaluating a game or simulation.
Extracting and Analysing a Social Collaboration Network
Student: TBA
Outline:
A social network is a set of people or groups of people with some pattern of contacts or
interactions between them. A network is represented as a set of points (or vertices)
denoting people, joined in pairs by lines (or edges) denoting acquaintance. One could,
in principle, construct the social network for a company or firm, for a school or university,
or for any other community up to and including the entire world.
This project will extract the data associated to a scientific collaboration network. Once
the data is collected the goal is to analyse it and visualise it using modern complex networks
libraries and tools.
The skills required are general programming in Python or Java, web programming for data
collection, data analysis and visualisation.
Visualising Dynamic Networks
Student: TBA
Outline:
Networks have become a powerful modelling tool for studying complex systems in science
and society. A network captures the connectivity pattern between the system's components.
Important examples are the Internet and the WWW. Networks are represented as a set of points
(or vertices) denoting components, joined in pairs by lines (or edges) denoting interaction.
The network structure arises from the underlying system and can evolve with the system dynamics.
Data sets containing dynamic network information related to optimisation algorithms will be
provided. The project will explore ways of analysing and visualising the dynamic networks.
The goal is to provide animations and videos reflecting the network dynamic. A number of
freeware libraries and tools for network analysis and visualisation are available, and this
project will explore what are the most suitable for dynamic networks.
The skills required are general programming in Python or Java, data manipulation, analysis
and visualisation.
3D Network Visualisation
Student: TBA
Outline:
Networks have become a powerful modelling tool for studying complex systems in science and
society. A network captures the connectivity pattern between the system's components. Important
examples are the Internet and the WWW. Networks are represented as a set of points (or vertices)
denoting components, joined in pairs by lines (or edges) denoting interaction.
Data sets containing network information related to optimisation algorithms will be provided.
One of the nodes features (their fitness) can be represented as the depth coordinate in a
3D plot. This project will explore ways of visualising the networks in 3D. The goal is to
provide 3D images and videos reflecting the network structure. A number of freeware libraries
and tools for network analysis and visualisation are available, and this project will explore
what are the most suitable for 3D visualisation. The project may require the implementation or
modification of network layout algorithms, which are more suitable than those available in the
freeware libraries, for the task at hand.
The skills required are general programming in Python or Java, data manipulation, analysis and
visualisation.
Egocentric Networks: Analysis and Visualisation
Student: TBA
Outline:
Networks have become a powerful modelling tool for studying complex systems in science
and society. A network captures the connectivity pattern between the system's components.
Networks are represented as a set of points (or vertices) denoting components, joined in
pairs by lines (or edges) denoting interaction. Egocentric analysis examines the local
structure of networks around a single node (the ego). The purpose is to understand how
network egocentric features relate to processes taking place on them.
Data sets containing social networks will be gathered form existing repositories. Additional
data sets with network information related to optimisation algorithms will be provided. The
goal is to analyse the networks using egocentric analysis. A number of freeware libraries
and tools for network analysis and visualisation are available, and this project will explore
which are the most suitable for egocentric analysis.
The skills required are general programming in Python or Java, data manipulation, analysis
and visualisation
Working with University Information Services
Student: TBA
Outline:
University Information Services develop a number of systems to support
the work of the university, and are interested in working with project
students to achieve some of their goals. Precise project details have
still to be worked out, but possible systems include: development of an
attendance monitoring system, automated grouping of users to facilitate
customised email lists, development of the mStir mobile platform
functionality, and researching the use of new technologies to develop
versions of existing systems.
Key elements of these projects will be: working with Information
Services as clients, and developing systems to operate within a complex
environment of existing legacy systems.
Use of genetic programming and evolutionary algorithms to create better models
Student: Ryan Mitchell
Outline:
Computational and mathematical models are being increasingly used to
describe biological systems, but modelling is a skilled task, requiring
training and expertise. An alternative approach to this problem is to use
computers to help us to build the model. Evolutionary algorithms can help in
finding the right parameter values in a hand-built model to match
experimental data. More excitingly, genetic programming techniques may be
used to help build the models themselves.
This project involves using a tool already built here at Stirling to develop
models, exploring the possibilities of using genetic programming techniques
for model creation. The target system is up to the student: some possible systems of interest are bacterial colonies, memory function, human disease spread.
Specification and Analysis of Biological Systems using Process Algebra
Student: TBA
Outline:
Systems biology is a current hot topic for computer science. Biologists are
producing lots of data about biological systems, but lack the tools to
structure this data. Of particular importance is gaining an understanding of
how different low level interactions contribute to the overall operation of
a system. Computer Scientists can supply tools to help understand those systems,
e.g. process algebra such as PEPA (Performance Evaluation Process Algebra) or Bio-PEPA (PEPA adapted
for biology).
The aim of the project would be to use process algebra to specify and
analyse a (biological) system. This means building a model of the system then
using simulation tools to explore how that model behaves in different
scenarios. For example, build a disease system and then explore what happens
if vaccination is added.
Several projects are possible within this basic framework:
-
Describe disease spread and the effects of different control programmes.
For example, whooping cough in Scotland and infant vaccination, or
tuberculosis in wild rodents and the potential to infect other mammals.
-
Describe cancer cell response to chemical treatments and combinations
of treatments to determine optimal dosage.
-
Construct a model to test whether memory retrieval can be viewed as
signal processing problem with either a fixed lower threshold or a more
variable threshold.
-
Model immune cells and invading cells as a predator-prey relationship.
Under what conditions does the prey or the predator dominate.
-
You may have your own ideas about suitable systems to model. Please feel
free to suggest something. It can be a computer system too (since this is
what process algebras were originally designed for).
Matching with Mentors
Student: Kevin O'Hare & Aimee Ruth Quinn
Outline:
Mentoring is important to help everyone develop to their full potential, but
how do you find a mentor? The basic principle is that people with more
expertise in some area need to be matched with people with less expertise in
that area. For example, in the academic setting, we might match someone who
is a really great innovative teacher to someone who wants to develop their
teaching, or we might match someone who is a frequent media commentator
to support someone who is about to do their first interview, and so on.
How might you store the data that would allow people to be matched easily?
And how would users interact with the tool to find a suitable mentor?
Under-represented groups in Computing Science
Student: TBA
Outline:
Take a sample of the population of computer scientists and compare it with the
wider population: are the numbers of men and women equal? What about those
with disabilities? Are different sexualities represented? What about ethnic
groups? Are older or younger people more prevalent? (Hint: computing is
dominated by younger, white, straight men. Probably. We don’t have all the
data.)
You may either choose to investigate the problem further to provide data, or
design an intervention to target those under-represented groups. For example,
micro-aggressions might be a problem: develop a technological solution to the
problem of measuring micro-aggressions, carry out experiments, and evaluate
your data. Or you might have teaching experience and wish to consider if
teaching of programming is biased towards one gender over the other. Many
possible projects are within this topic, but they must be based around a
technological response to the problem (that is, you have to build something).
Using 3D headphones to locate items from images using computer vision
Student: TBA
Outline:
3D headphones are able to play a sound that appears to originate at any location in space. Recent improvements in computer vision technology allow us to locate objects in images with high accuracy. This project will combine these two technologies by using computer vision to locate objects in a scene and then play a sound through the headphones that appears to originate at the location identified for the object. We will supply the headphones! You will be using existing computer vision libraries - probably deep convolutional neural networks using TensorFlow or YOLO.
Updated 29/04/19 20:18
|