Occlusion Based Explanations of Black-Box Models for Deep Learning

Occlusion sensitivity analysis allows us to better understand trained machine learning models by identifying which parts of a given input are most salient in determining the model’s prediction. It is particularly valuable as it can be applied to black-box models i.e. models with internal representations which are difficult to access or interpret.   Occlusion sensitivity […]

Continue reading

Technology for the benefit of Non-human beings

Many technologies developed today focus on gratification for human beings. Tracking people’s behaviours and self-tracking through personal devices is used for several different reasons but rarely is it used for self-reflection that benefits others beyond the user. There is a lack of interactive technologies which help humans to have an understand of how their actions […]

Continue reading

A verified compiler

Compilers take syntax and transform it into code that is executable by a machine, and they do this using various stages: syntax analysis, semantic analysis, code generation, etc. The machine code that is outputted from a compiler is usually trusted by the developer that it is correct, or that it exhibits an equivalent computation to […]

Continue reading

StackOverflow Sidekick

StackOverflow as an active question and answer community of people with an interest in programming. For many programmers, it is an invaluable resource that provides candidate solutions for the myriad small and large problems that programming tasks can bring with them. Unfortunately, most users of StackOverflow are merely passive consumers of the content on the […]

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

Proving the Correctness of MiniJava Refactorings

The great mathematician and computer scientist, Christopher Strachey, once observed, that, if you can define a programming language’s value domain, you have already said a considerable amount about its semantics. Indeed, if we extend the idea of a value domain, (or a denotational semantics for mapping values in a programming language to their values), to […]

Continue reading

Energy Consumption of Parallel Patterns

For a very long time, the main goal of parallel computing techniques was to improve performance of parallel applications, delivering better speedups without consideration for possibly massively increased power consumption. However, the energy footprint of high-performance servers has become unacceptably high recently, resulting in demand for greener computing and for exploring tradeoffs between application performance […]

Continue reading

Multilevel Parallel Patterns

Parallel patterns represent an important high-level abstraction for programming complex parallel hardware systems and they have been endorsed by several top IT companies that offer their own pattern libraries (e.g. Intel Thread Building Blocks, Microsoft PPL). However, most of these pattern libraries are tailored to shared- memory multicore processors with the “flat” architecture of cores. […]

Continue reading

Annotation of 3D models

An existing tool annotates 3D models with polygons and labels. It makes use of the LibGDX Java library, which was designed for computer games. The 3D models that we are using, of Ancient Egyptian coffins, are becoming too big however to be handled by this library. The task would be to redesign the tool, but […]

Continue reading

A strategy video-game for collaborative agents with a personality

In this project we aim to develop a multiagent system to play a strategy video game [1].  The basic idea is that a group of agents acting on behalf of the player work collaboratively to achieve a common goal. At each step a decision is to be made for which action the group should take. […]

Continue reading