Jack Morrison

Imperial College London


Burst My Bubble

May 2019 - June 2019

This was our end of second year group project, where the brief was to create a webapp. We decided to create a news feed with a difference. The aim was to encourage people to change up their news sources and read some new material in order to "Burst their Bubble". We wrote it using React for the frontend and Python/Java for the backend, and used a MongoDB database.

Find some screenshots of our application in action here.


January 2019 - March 2019

This is our second year compilers project, where we are creating a compiler for a programming language. We wrote the compiler in Kotlin.

Unfortunately, the code for this project cannot be shared, as the task will be reused in future years.

Automatic Monzo Receipts from Gmail

January 2019

This app was created as part of Cambridge Hack 4D. It displays recent transactions to the user, and if the user clicks the "Add Receipt" button, then it will use the Gmail API to scan their emails, find the correct one, and gather the receipt data, adding this to the Monzo application. It is also possible to have pictures of receipts if they are physical and not in the emails, and then the same algorithm is run on the text data gathered from the receipt using Microsoft Azrure OCR to get the equivalent information and add it to the transaction in the Monzo app.

More hackathon submission can be found here.
The repo can be found here.


October 2018 - December 2018

This was our 2nd year operating systems project, where the task was to implement different parts of an operating system, including scheduling, user programs and virtual memory. This project was written entirely in C.

Unfortunately, the code for this project cannot be shared, as the task will be reused in future years.


September 2018 - November 2018

We created a project as part of the Facebook Hack-a-Project with the aim of "Bringing Communities Together". Our application is a mentoring application which allows people with valuable skills and experiences to trade that knowledge for knowledge from others. It was built using the MERN stack (MongoDB, Express, React and Node.js).

The repo can be found here.

C Project

May 2018 - June 2018

This project was completed in the final term of my first year undergraduate studies. It entailed creating an ARM11 Emulator and Assembler in C, then using these in combination with a Raspberry Pi to control an LED.

The final part of the project was the extension, where we chose to recreate the classic game of snake on a 32x32 LED matrix. We did this by using a hat fo the Raspberry Pi to connect it to the matrix, and created 4 modes for the game, one of which was an Artificial Intelligence. We also created an arcade-machine inspired box for the project, and created all of our own sounds too.

Unfortunately the code for the emulator and assembler cannot be shared here as the task will be reused in future years, however more information on our extension can be found here.

Deep Learning in Medical Imaging Analysis

January 2018 - March 2018

This project was undertaken as my first year group project, and involved creating a website discussing the uses of AI in Medical Imaging Analysis.

Our main areas of research were to look into the history and evolution of medical imaging and machine learning as separate topics, and then find areas in which they overlapped. We looked at Convolutional Neural Networks, along with Semantic Segmentation, as these are the most commmonplace in medical imaging. We then looked at overlapping topics, these being the uses of AI in radiology, and a deeper case study into the user for detection of lung cancer.

We had to create a website to display all of this information, which can be accessed here.

To What Extent are Computer-Assisted Proofs Valid?

September 2016 - May 2017

This project was completed as my Extended Project during my A Level studies, and discussed the controversy over computer-assisted proofs.

At the start of this project, I was unfamiliar with the area of computer-assisted proofs, and mathematical proofs in general for that matter. I decided on the topic because my mathematics teacher had discussed it in a lesson and I was curious to find out more. He mentioned that many mathematicians, to my surprise, did not agree that a theorem which had been proved using proof by exhaustion on a computer was legitimate. I did not understand their reasoning behind it not being a proof, because I presumed that if every case was proved to be true, then the proof would have to be valid. That is why I became interested in the subject, and when that chance to write a project on the topic arose, I decided I wanted to consider it further.

My dissertation can be found here.

A Level Computing Project

June 2016 - March 2017

This project was mainly undertaken during the second year of my A Level Computing studies, with the task to create a mobile application.

I decided to create an app which could generate random GCSE-level mathematics questions for students so that they could test their knowledge. It could also check to see if their answers were correct, and had other features such as a leaderboard with friends, and streaks to encourage daily use. I made the application for iOS devices, and so had a lot of experience with the Swift programming language and XCode. This project was a fun way of teaching myself a new programming language from scratch, as I was never taught it in a formal environment. This meant I became used to using manuals for the language to look up syntax and specific features of the language, which was a great learning experience.

The source code for the application can be found on my GitHub here.