Hello! My name is Edward Celella. Over the past four years, I have undertaken two degrees in the field of Computer Science. Now, as a recent MSc Advanced Computer Science graduate, I am looking to apply the skills and knowledge I have gained to the world of industry.
During this past year, during my masters, I have heavily specialised in data science and machine learning. This includes studying topics such as neural computation, nature-inspired algorithms, and the underlying mathematics behind many AI models. The area I wish to apply this skillset to is the world of finance and economics, which is another great passion of mine.
However, although I have specialised in machine learning, there are many other disciplines of Computer Science I am keenly interested in, such as: functional programming, software development, security, and algorithm design.
This websites purpose is to act as a record of the projects I have completed, in order to showcase my understanding. This will hopefully allow you to gain some insight into my current skill level/knowledge. If you have any questions, or simply want to say hello, feel free to send me a message using the contact page.
Thank you for taking the time to visit my website, and I hope to hear from you soon!
Throughout the year you can usually find me attending different concerts, and during the summer spending my holidays at music festivals. I am an avid listener of a range of musical genres and spend most of my time during the day listening to music. Unfortunately for me, this love has morphed into the expensive hobby of vinyl collecting.
Most weekends I travel with my mates to go bouldering/rock climbing. Our main outdoor venue is the Peak District, where (weather permitting) we spend a day (attempting to) climb challenging rock faces. During the week I frequent indoor climbing centres, as a way to relax and exercise.
A favourite past time of mine is reading. My favourite genre is non-fiction history and science-related books. Currently, I am reading "The Fate of Rome", which discusses how the climate and disease played a non-trivial part in the rise and fall of the roman empire, and "To Mock a Mockingbird" which introduces combinatory logic.
I have recently become interested in the game of chess. Although I currently am only a beginner, I have enjoyed learning the different strategies and techniques used by high ranked players. The theory of the game is also very interesting to learn. I usually play chess 3/4 times a week online, and when possible with my friends.
All project repositories can be accessed by clicking the project icon, or by visiting my Github profile .
This month I updated and added to a given HTML and CSS template, whilst adding backend PHP code to make dynamic updates to the website. In addition to this, I set up a continuous-integration server to ensure future updates to the website are error-free.
Time Series Forecasting Using Transformers
Over the summer of 2020, I was required to undertake a research project for my master's degree. This project focused on the application of attention mechanisms, which are widely used in the field of natural language processing, to time-series analysis. Specifically, for this project, I implemented and altered the architecture of Transformer networks for the application of stock price forecasting. The project was implemented in Python, utilising libraries such as Pytorch, Pandas, Numpy etc.
Genetic Programming for Time Series Forecasting
This project applies a tree-based genetic programming system to the task of stock market forecasting. The goal of this project, undertaken over a 2 week period for my master's degree, was to prove the capabilities of genetic programming when applied to a complex task. The entire algorithm was built in base python3.
A Review of Algorithmic Applications to Stock Trading Methods
As one of the stronger student on my master's course, I was given the opportunity to undertake a research project in my second term. This paper, which explores the economic theories of stock trading, and the current machine learning algorithms/models applied to the task, is the result of that work. The report itself achieved me the highest grade out of all students who undertook the module, showing "evidence of a considerable amount of original thinking" and a "deep and thorough critical review of the literature covered".
Enhancing MRI Images Using Deep Learning
For clear MRI images to be taken of a patient, a long acquisition time is required. Thus, many researchers have attempted to apply deep learning to the task of reconstructing fully sample k space MRI images from sub-samples of the k space. This project is my implementation of the U-Net model, applied to this task using the fastMRI dataset, as well as a standard CNN as a point of comparison. The project was built using Python and Pytorch.
Nature-Inspired Solutions to the Travelling Salesman Problem
The travelling salesman problem is one of the most well-known computing challenges. This project is my implementation of three algorithms which solve said problem. Namely, these are simulated annealing, tabu search, and an evolutionary algorithm. All algorithms were built using base Python, with all managing to find routes for the given dataset under a distance of 12000 (averaged over 30 trials).
Relationships Between Countries United Nation General Assembly Speeches
Every year representatives from each UN member meet for an annual debate, in which each country delivers a speech regarding what they view as the most prevalent global problems. Using a data set comprising of all speeches delivered from 1970 to 2015, I found a relationship between the content of a countries speech and the countries HDI, geographical location, and the year in which it was delivered. This was achieved by vectorising the corpus of documents using TF-IDF, and then applying PCA and LSA to the vectors to separate clusters and identify topics.
Intelligent Time Table System
During my final year of my bachelor's degree, I worked in a team of three to produce an intelligent timetabling system for the University. The project was built using the MVC architecture, and provided both a web-page and application interface for user interaction. My role within the team was to produce the algorithm to timetable lectures and labs without any collisions, whilst providing each booking with the correct resources required, this was accomplished through an evolutionary algorithm. I also played a key role in developing the front end of the system. The system was built using C#, as well as web development languages.
Stock Market Prediction Using Newspaper Sentiment
For my bachelor's dissertation, I developed a system which used the sentiment of newspaper articles about a company to forecast its future stock price. The project retrieved newspaper articles of a company from the internet and used the Stanford NLP library to calculate sentiment. A Naive Bayes classifier was then used to extract the topic from the news article. These metrics, along with the daily stock price data, were fed into an LSTM network which produced a forecast future price movements. (Unfortunately, due to changes of utilised of APIs, the project no longer runs. The project repository has therefore been taken down for maintanence.)
Music Streaming Social Media Application
For one of my second-year projects at University, I was tasked with working with a partner to build a social networking application, for sharing and uploading music. The entire application was built using Java and comes in three parts. Firstly, there is the client which is used to log in and display a user’s news feed; music; friends and messages (The UI for the user). Secondly is the music server, which receives requests from the client and interacts with the database. The last component is the chat server, which keeps track of chat history between users, and displays new messages when a user logs on. All servers are multithreaded, and the GUI is built using Swing.
AVL Binary Search Tree
To gain a deeper understanding of how binary search trees self-balance, I implemented an AVL binary search tree in C++. The resulting class uses templates to allow for any key-value data type pair, and contains implementation for insert, search, and remove commands (whilst keeping the tree balanced).
This small project is an implementation of the Huffman coding algorithm. I implemented the algorithm in C++ as a class, and created a test suite for it using Boost UTF. This project was simply a challenge I set for myself after discovering the algorithm during research into different compression methods.
(All icons retrieved from the noun project and used under the creative commons license.)