Sign Language Translator
Image Recognition
Python Computer Vision Machine LearningProject Proposal: to develop an application that can recognise British Sign Language and translate it to written (or spoken) English.
Monopoly
Game Development
PythonCLI 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 DissertationAbstract: 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.
GitHub4th Year Assignments
Break Through Challenge
Hacking and Analysis
Bash C Assembly Individual CourseworkUsing 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 CourseworkI 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 CourseworkI 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 CourseworkWe 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 DissertationAbstract: 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.
GitHub3rd Year Assignments
Automated Pacman
Artificial Intelligence
Python Individual CourseworkI 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 CourseworkI 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 ProjectThis 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 ProjectI 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 ProjectI 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 CourseworkI 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 CourseworkI 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 CourseworkI 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 ProjectI 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 ProjectI 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 CourseworkI 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 AssignmentI 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 ProjectI worked in a team of four to create a enemy territroy planning problem that could be solved using the A* search algorithm in PDDL.