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

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

Enriching CSPLib

CSPLib is a library of test problems for constraint solvers. It currently contains 89 different types of problems from different areas. The goal of this project is to enrich the library with new models/problems, written in Essence/Essence Prime. These problems will be mainly taken from the annual MiniZinc Competitions. A final (possibly achievable) goal is […]

Continue reading

Debated backpropagation

In this project we intend to enrich a backpropagation algorithm with dialogue. Backpropagation is used to train a feedforward neural network often for classification tasks [1]. In the new algorithm components of the network, such as neurons or layers become agents with their own identity and personality [2]. The network becomes an agent society, where […]

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

Creating diagram for papers programatically

There are many drawing tools for creating diagrams. However, few of them permit diagrams to be constructed/generated programatically. One exception is Tikz. However, this language is pretty horrid (in my opinion). In this project we would create a graphics language that would compile down to Javascript and permit 2D and 3D diagrams to be created […]

Continue reading

uNetworkX

NetworkX is a Python library for building and analysing networks. It’s used extensively as a basis for simulation, notably for simulating the spread of epidemic across populations. We used NetworkX as a basis for epydemic, our epidemic spreading library. This is great for building larger systems, but there’s a problem for the science. Because NetworkX […]

Continue reading

LogGuideWiki

/var/log is a strange and largely unexplored place full of strange creatures with cryptic names like dmesg, kern.log or syslog. Strangers in this place are sometimes greeted with utterances like RIP: 0010:nl80211_send_chandef+0x142/0x160 [cfg80211]. Should they be worried or is this just kern.log‘s way of saying ‘hello’? LogGuideWiki is a friendly guide to the strange lands […]

Continue reading

A Better JavaDoc for Modern JVM Languages

The time-honored JavaDoc [1] application for generating API documentation for Java programs has inspired many similar efforts for other programming languages, e.g., groovydoc [2], Doxygen [3], and remains a powerful tool that explains part of the ongoing popularity of the Java language and its wider ecosystem. However, it has seen little change over the years […]

Continue reading