SpotBugs Extension

Spotbugs is a static code analysis program that inspects Java code and flags up possible sources of errors. The set of rules included cover common coding errors that are pervasive in the use of the Java language. The system has a plugin architecture that allows rules to be added and the aim of this project […]

Continue reading

Creative Autonomous Navigation and Learning by Mobile Robots in Unstructured Public Spaces

Mobile robots have had highly controlled structural constraints on route planning and execution. Some mobile hospital robots run on clearly marked permanent tracks in public corridors for example. Safety considerations naturally motivate such constraints. As mobile robots become more integrated into society as autonomous entities, more ambitious robot navigation in public spaces is being attempted. […]

Continue reading

Realistic-looking fake GPS traces for privacy protection

Modern GPS-equipped devices allow for re-identification of people based on their GPS traces. In this project, you will create a tool which creates realistic-looking GPS traces and injects them into the real datastream, thus confusing a potential malicious attacker from finding useful personal information. Doing this may involve interfacing with existing online resources such as […]

Continue reading

Using meta heuristics to discover parallelism

After writing a sequential program, often programmers try to parallelise it. However, knowing exactly where in the program to parallelise is often a black art. Sometimes, programmers employ techniques such as profiling to find hotspots in their code and then parallelise those. However, it is well understood that hotspot detection alone is not enough to […]

Continue reading

Using Meta Heuristics to find optimal parallelisations of skeletal programs

Writing parallel programs is a very complex process, as often there exists many different parallelisations of a given problem. Skeleton libraries, such as those for C++, C, Erlang etc, offer generalised abstractions over these parallel behaviours, as higher-order functions. However, many applications can be parallelised using many different skeletons, or, furthermore, can be parallelised using […]

Continue reading

Bayesian nonparametric learning with applications in sensor based activity recognition

Bayesian nonparametric (BNP) allows a statistical model’s complexity to grow with the data. To put it in another way, instead of fixing a model’s parameter space to some constant, the technique allows the data to decide the model’s complexity. For example, when we apply clustering algorithms, like K-means, we always need to pre-fix the size […]

Continue reading

Enabling NAO robots to learn (Nao programming)

The NAO humanoid robot [1] is a high-end robot (about the size of a smallĀ child) used in education and research and also other areas such as banking. It offers opportunities to explore areas such as 3-D imaging, speech recognition and production, vision processing, face tracking, complex limb motions, and artificially intelligent and emotional interaction. The […]

Continue reading

OCR using Transkribus

A joint project with the St Andrews Institute of Mediaeval Studies attempts to digitise mediaeval documents using OCR (Optical Character Recognition). Previous attempts with Ocropus gave good results on printed texts, but mixed results on manuscripts. In this project, Transkribus will be used. SupervisorsMark-Jan NederhofArtefact(s) Various scripts will be written to make the scans amenable […]

Continue reading

Improving Anonymity in Web Browsing

Our behaviour online is increasingly being tracked by a variety of third parties, including advertisers or providers of free WiFi services, with these data freely traded. In particular, browsing histories can reveal a lot about a person, and allow third parties to de-anonymise people and learn specifics about them. There is an undergraduate project which […]

Continue reading

Image mosaicing for aerial photography

Aerial surveys are a common conservation technique. They will typically consist of a number of photographs taken from a plane, which are then stitched into a much larger image which contains a large area. These stitched images are then used to count animals, monitor populations, etc. At the moment, these techniques are based on classic […]

Continue reading