Graduating from University

I have now completed my four years studying BSc Computer Science, with a Placement Year, at Coventry University and I’m very proud to say I achieved First Class Honours with a final grade of 89.6%.

The modules I studied in my final year were:

  • Software Quality and Process Management
  • Android Applications Development
  • Web API Development
  • Theoretical Aspects of Computer Science
  • Individual Project (Dissertation)

Software Quality and Process Management was about DevOps and the functions I can use within a software team to improve how I work as a software developer. One of the first major topics in this module was Test Driven Development and how it can help improve the quality of my code. Another major topic was Continous Integration/Continous Development Pipelines and how to configure automatic tasks such as Unit Testing, Code Coverage, Linters, Acceptance Testing and Deployment to be run everytime I make changes to the codebase. This was particularly useful so that I could run all tests regularly, ensure my code passes regression testing, meets coding standards which I set at the start of a project and is always in a state ready to be delivered to the customer. The coursework for this project involved utilising all these skills whilst developing a web application using JavaScript/NodeJS. I achieved 72% for the coursework and 83% in the exam.

Android Applications Development was a project based module where I was tasked with designing a smartphone application from my own idea and then developing it myself from scratch. The assessment for this was based on the technical features I included in the Android application, such as utlising a smartphone’s sensors and hardware, as well as it solving a problem for users. This project was all completed using Android Studio and therefore I was developing in Java for this module. I achieved a grade of 84% for this project.

Web API Development was another project based module which taught how to develop modern day web applications and RESTful APIs. It started from the basics of how to use HTML, CSS and JavaScript, before moving onto learning the ReactJS library for user interfaces and NodeJS for RESTful backend APIs. This module also focussed on features of the HTTP protocol, Advanced API Design and how to implement Web API security and authentication. For this module’s coursework I developed a MERN (MongoDB, Express, React, Node) web application using ReactJS for the frontend user interface and NodeJS for the backend API. I achieved 92% in this module.

Theoretical Aspects of Computer Science was related to how we can solve different types of problems logically and understanding computation from a theoretical point of view. The module progressed in difficulty to learn how to solve different problems, from first learning how to recognise languages using DFAs/NFAs/PDAs. It then proceeded into how to use regular expressions and grammars to generate regular languages and context free languages. It then progressed onto Turing Machines and how Universal Turing Machines can represent all theoretical computations possible, showing how modern computers are based on this principle. The rest of this module was about the P vs. NP problem, including NP-complete and NP-hard, and also how to define the complexity and computability of abstract problems. The assignment for this module was to analyse the complexity of the Travelling Salesman Problem, and to develop an experiment to demonstrate how different approaches are useful for providing solutions. The conclusion of this coursework was to recommend which methods are best to use as the instance size grows. I achieved 86% for this module’s exam and 93% for the coursework.

For my dissertation, I designed a solution to try and solve the problem of age verification online. This software utilised machine learning processes to predict age from photos of users and determine whether they are old enough to navigate to age restricted content online. The project consisted of two parts: the machine learning model for age prediction and a user facing application which used the model for age verification purposes. The machine learning model used a dataset of images that included a person’s face and the age of the person in the image. I trained a convolutional neural network with this dataset so that it could learn which features determine a person’s age and I analysed its accuracy for this project. With this trained model, I exposed its prediction functionality to a web browser extension which utilised it whenever the user navigated to an age restricted website. Once the user accepted usage of the software, it would take a photo of them using a webcam, then process this image through the model and if the person was determined to be 18 or over it would then allow them to continue browsing the website. I tested this application both on a testing dataset as well as with user testing. I am very pleased with this project as it gave me the opportunity to learn and implement machine learning processes, as well as attempt to solve a very difficult problem in computing. I achieved 82% for this module.

Overall, I have completed so many different projects in this last year and it has been a really enjoyable end to my four years at university. Looking back these have been the best four years of my life and it has set me up fantastically for my career as a software engineer.

Leave a comment