Sign Language Translator

Image Recognition
Python Computer Vision Machine Learning

Project Proposal: to develop an application that can recognise British Sign Language and translate it to written (or spoken) English.

Monopoly

Game Development
Python

CLI implementation of the popular board game, Monopoly. Designed to challenge my Python coding ability and keep me busy during the 2020 lockdown. Next steps include developing a Django web user interface.

Personal Website

Web Development
HTML CSS JavaScript

Going beyond my CV, this website provides a more detailed showcase of my education, experience and projects that I’m working on, as well as information on how to get in touch with me.
I used HTML, CSS and JavaScript to build the website, with elements of Bootstrap to design the website.




4th Year Individual Project (74%)


Social Bipolar Abstract Argumentation Theory
Argumentation Theory
Research Python Dissertation

Abstract: There are various forms of argumentation, some of which can be applied to human debating. Debates involve many agents arguing and resolving a conclusion together through mostly objective and some subjective reasoning. Abstract argumentation and Social Abstract argumentation have had some success with debates but often produce imprecise conclusions. It is evident that a tailored form of argumentation for evaluating debates is required. Social Bipolar Abstract Argumentation Theory proposes a combination of components from existing theories. The proposed theory intends to evaluate a human debate as precisely as possible, leading to suitable conclusions.

GitHub

4th Year Assignments


Break Through Challenge
Hacking and Analysis
Bash C Assembly Individual Coursework

Using C code, bash scripts and Assembly code I gained a higher level of user access on a remote desktop with 10 levels of access. This was done by identifying flaws in a file at each level and exploiting them to gain root access.


Data Mining Assignments
Machine Learning, Natural Language and Image Processing
Python Individual Coursework

I used Python to carry out classification and clustering algorithms on huge datasets and analysed their effectiveness. I also performed natural language processing techniques and image processing techniques on a text corpus and image library.


Big Data Assignments
Databases and Apache Tools
NoSQL Python Individual Coursework

I used Python code to perform various big data techniques including MapReduce and complex joins. I also used Apache Sqoop to collect data, Apache Spark to catagorise data, Apache Hive to manage data, and MongoDB to perform NoSQL queries.


Distributed Ledger Game
Blockchain
Ethereum Individual Coursework

We used the Ethereum Blockchain technology to develop a secure smart contract for the game "21". The notion of betting was added to provide further complexity to the game.



3rd Year Individual Project (77%)


An Application of Abstract Argumentation Theory in Online Debating
Argumentation Theory
Ruby on Rails Python HTML CSS JavaScript Dissertation

Abstract: Online debating frequently occurs all over the internet. It relies on the votes of users to determine strong arguments making it subject to community behaviour, frequently declaring a biased winning argument of the debate. It is clear that an alternative solution to evaluating debates is required. Abstract argumentation theory strips away the natural language of arguments, focusing on the attacks between them to determine a winning set of arguments. This project aims to create a prototype online debating system that implements this theory to introduce debaters to using argumentation to solve online debates.

GitHub

3rd Year Assignments


Automated Pacman
Artificial Intelligence
Python Individual Coursework

I created two different agents to control Pacman. One behaved as a simple reflex agent that actively searched for food and avoided ghosts. The other agent used Markovian decision processes to calculate the next best direction based on the current environment.


Pattern Recognition Assignments
Machine Learning
MATLAB Individual Coursework

I used MATLAB to perform principal component analysis and feature extraction on datasets, as well as create a state vector machine to classify data points. The programs produced a series of classifications where possible in an attempt to catagorise new data points.



2nd Year Assignments


Communications System
Mobile Development
React Native CSS Group Project

This was the largest group project that I undertook at university. Our task was to design a communications system from an admin controlled server-side website to a student multi-platform messages app. I led the mobile application sub team, where we used React Native to create the app, and used JSON to transfer data between the server and client sides.


Student Forum
Web Development
Ruby on Rails HTML CSS Group Project

I led a team of four to build a student forum with a web based interface and database using Ruby on Rails. Students would be able to login and signup to the platform, and could read, write and answer questions on the forum.


Project Manager
Desktop Development
Java Group Project

I was part of a team of five that built a Java application for project managers to create tasks with time and effort properties. They could assign tasks to their team and were able to produce a scheduling gantt chart to visualise this information.


Data Structures Assignments
Programming
C++ Individual Coursework

I worked on six individual assignments using C++. The tasks included implementing various data structures (circular buffer, stacks, linked lists, tree maps), some with iterators, and also a sudoku solver algorithm.


Programming Assignments
Programming
Scala Individual Coursework

I worked on three individual assignments using Scala in a functional paradigm. The tasks included a stocks and statistics program, a Knight's Tour calculator, a regular expression matcher and a Brainf**k interpreter.


Robotics Assignments
Analysis
MATLAB Individual Coursework

I worked on two individual assignments using MATLAB. The tasks included creating functions that allowed a manipulator to follow a trajectory based on a Jacobian approach, and calculating forces in a potential field to provide an object detection.


Investment Analysis System
Desktop Development
Java Group Project

I worked in a team of five to create an investment analysis application in Java in order to showcase our understanding of object-oriented design and its advantages.



1st Year Assignments


UFO Sightings Tracker
Desktop Development
Java Group Project

I worked on a group assignment in a team of four. Our task was to implement an application in Java with a GUI that managed UFO sightings using an external API.


Programming Assignments
Programming
Java Individual Coursework

I worked on several Java assignments, both individually and in pairs to improve pair programming. The tasks ranged from games to a calendar and reminders program that utilised natural language processing.


Database for a Business
Database Design and Implementation
MySQL University Assignment

I worked on an individual assignment to design the schema and relationships of a database required to run a small business and then implement it using MySQL.


Conquest Planning
Artificial Intelligence Planning
PDDL Group Project

I worked in a team of four to create a enemy territroy planning problem that could be solved using the A* search algorithm in PDDL.