It’s been a few months since graduating from the University of Hull, moving to working full time at Sauce during the pandemic and making the most of getting outside when it was allowed between the lockdowns.
I still thought it was worth giving my take on the final semester modules from 2019-20, and hope they might be useful to anyone looking to choose their modules now, or who has questions about their final year project.
Computer Vision was a challenging module, exploring both the theory behind it, looking at edge detection, feature descriptors, convolutional neural nets and also applying it all to create practical implementations in MATLAB.
Using MATLAB was new for me, with the challenges of working out how to process images by designing a pipeline to detect and count starfish in a photoset. There were a variety of variants of the same image, with grain, noise and colour shifts applied and also starfish in different scenarios too.
To solve this challenge, different pipelines had to be built which would run based on the colour detected in the image, so all extreme colours were shifted to be more neutral before searching for regions in an image. In cases where grain was high on images, additional steps were needed, like using a median filter and eroding away unknown regions before drawing on bounding boxes to mark out the final image.
The module was really interesting and provided some cool theoretical understanding. In a world of self-driving cars, understanding how Tesla (and other manufacturers) do object detection is really cool.
Fair warning if you’re looking at taking the module; after completing my pipeline I had a distinct memory of never wanting to see a starfish ever again.
Distributed Systems was an interesting module and looked at the challenges of building distributed applications covering everything including FaaS/PaaS/IaaS (all the as-a-services) and looking at their advantages and shortcomings.
For the practical part of this module, we had to implement a specification to build out a distributed system in .NET Core 3, implementing both a client and server spec and ensuring it complied with the specification.
Postman’s Automated Test Suite came in really useful for building out this application, allowing me to persist authentication tokens generated in a test run and use them in later tests and checking the compliance of my endpoints with the marking criteria.
I developed a system to crowdsource enhanced merchant data using the serverless framework and AWS for my final year project. Enhanced Merchant data is where a merchant name like POST OFFICE COUNTER LEEDS GBR
is converted to Post Office
with a map and icon in your bank’s app.
Currently banks like Monzo, Starling and Up allow users to contribute back their own suggestions and improvements just for themselves and don’t share this data with other banks. This means this data is often broken, wrong or completely missing, especially if overseas.
My solution looked to centralise this, by creating a platform that banks can connect to for accurate merchant data. You can read more about my final year project on the project page here.
Coronavirus made the final semester a bit interesting, with the whole department having to move online in a matter of days. Assessments mostly moved over really well, and lecturers were available to message whenever we needed them. It wasn’t quite the end of University I pictured (especially with no graduation ceremony either!), but it worked the best it could given the circumstances.
I was incredibly proud to graduate from the University with a first-class degree and a grade average of 87.57%.
You can view my previous semester recaps here: