Ronan J. Smith About Me Resources Education Projects Home


University Projects

Projects I undertook at Heriot-Watt University.

For information on some of my personal projects, click here.


Year 4 (Final Year):

4th Year Honours Project

An Online Tool to Choose a Programming Language
18th September 2017 - 23rd April, 2018

I worked on an honours project worth 30% of my overall BSc Degree. The project was to build an online tool which can be used by computer programmers to decide which programming language is best to use given their problem domain - "an online tool to choose a programming language".

Technologies used: HTML, CSS, JavaScript, MySQL, PHP.



E-Commerce Technology

Can Blockchain technology be used to turn supply chain into demand chain?
14th March, 2018 - 29th March, 2018

Along with 3 peers, I carried out a presentation discussing blockchain technology, and more specifically answering the question can blockchain technology be used to turn supply chain into demand chain?. We argued that although this was currently a widely unexplored area of blockchain use, it could be used for this purpose and it would be a good investment for the example scenario we were provided with.

Technologies used: Google Docs, Google Slides, Google Drive.



Computing in the Classroom: Presentation

19th March, 2018 - 29th March, 2018

For the Computing in the classroom module, I carried out a presentation discussing my personal project and providing and overview of my time at West Calder High School.

Technologies used: Microsoft Powerpoint, Google Docs.



Linked Data and Semantic Technologies

15th February, 2018 - 22nd March, 2018

This coursework assignment involved writing a 1500 word literature review to describe semantic technologies, the semantic web and Linked Data and their use cases in the world of Big Data.

Technologies used: Microsoft Word.



Computing in the Classroom Personal Project

9th October, 2017 - 15th March, 2018

For my Computing in the classroom module, I worked on a personal project which involved taking the lead in teaching the class and carrying out a report. I decided to use this opportunity to teach the third year class I had been working with how to create Android apps using an online tool called Thunkable. I also prepared some introductory material allowing me to teach the class some of the fundamentals about mobile application developmnent.

Technologies used: Microsoft PowerPoint, Thunkable.



NoSQL Data Storage

15th January, 2018 - 15th February, 2018

This coursework assignment involved transforming a relational database, storing information about airports, airlines and flight routes, into a NoSQL system with the aim of increasing the speed of response time for retrieval of the data. We used a subset of data from the open flights website which contained 6162 airlines and 7184 airports, connected by 67663 routes. These routes were between 6649 cities in 260 different countries.

Technologies used: MySQL, PHP, JSON MongoDB.


Business Process Models

22nd January, 2018 - 7th March, 2018

This coursework assignment was part of the eCommerce Technology course I studyied in my final semester. It involved creating a business process model for eBay.com to represent how users might make use of their services.

Technologies used: IDEF3 Business Process Modelling.



Artificial Neural Network

25th September, 2017 - 1st November, 2017

This coursework, to be carried out for my Biologically Inspired Computation module, involved writing a Multilayer Perceptron (MLP) artificial neural network to carry out function approximation.

Technologies used: Java.


Evolutionary Algorithm

25th September, 2017 - 1st November, 2017

This coursework, to be carried out for the Biologically Inspired Computation module, involved writing an evolutionary algorithm to solve the travelling salesman problem, using a dataset containing the latitude and longitude of 980 locations in Luxemburg.

Technologies used: Java.


Genetic Programming in ECJ

1st November, 2017 - 29th November, 2017

This project involved experimenting with genetic programming on a selection of standard benchmarking problems using a software package called ECJ and writing a 5 page report.

Technologies used: ECJ.



Data Mining

2nd October, 2017 - 20th November, 2017

These 3 assignments involved using the WEKA 3 program to load in and analyse datasets from a number of different domains and write a report on my findings. I carried out data analysis using techniques such as attribute selection, clustering and Bayesian networks.

Technologies used: WEKA 3, Microsoft Excel, CSV files.


Previous Years (1-3):


A* Search

20th September 2016 - 20th November, 2016

I worked with a partner to produce a program which could find the shortest path between points on a grid using the A* search algorithm. The second part of this assignment involved writing PDDL scripts for different scenarios.

Technologies used: Python 3, Heuristics, A* Search, PDDL/STRIPS.


Compiler/Recursive Descent Parser

23rd January, 2017 - 23rd February, 2017

Built the front end of a compiler for a simple, fictional programming language called 'FUNC'. This involved creating a C program to perform lexical analysis and a recursive descent parser which carried out syntax analysis and produced an Abstract Syntax Tree (AST).

Technologies used: C, Makefiles.


Delivery Company Database

25th January, 2015 - 30th March, 2015

Worked in a group of 5, which later dropped to 4, to produce a database for a fictional parcel delivery company. This had to be done from scratch, i.e we had to come up with our own scenario and conceptual model, then had to come up with a relational schema before implementing it in MySQL. We also came up with test data to populate the database, queries and indexes to improve efficiency. The final stage of this coursework was to connect it to a Java application which had to access the database securely and without risk of SQL injection.

Technologies used: MySQL, Java, XML.


Flight Itinerary

10th October, 2016 - 26th November, 2016

This coursework assignment involved using the graph data structure to store information about airports and the costs to fly between them. A user could then enter which airports they wanted to fly between and the program would use Dijkstra's algorithm to find the shortest (cheapest cost) path. It was also intelligent enough to choose a path through multiple airports if that was the cheapest option.

Technologies used: Java.


Lambda Calculus Translator

10th October, 2016 - 16th November, 2016

This assignment involved writing an SML program to translate between the regular lambda calculus and another form called item lambda calculus. We were given some starter code but had to change it to work with item notation as well as regular notation and we were also given a long list of tests to carry out on our solution.

Technologies used: SML.


Gambit Resource Allocation System (G.R.A.S)

20th September, 2016 - 3rd April, 2017

Our third year group project at university. We were tasked with building a system that could assign employees to projects in an intelligent manner for the global science and technology company, Leidos.

Technologies used: CakePHP, XAMPP, Java.


Hit the Target!

15th September, 2014 - 5th November, 2014

This was one of the first coursework assignments I undertook at university and was done individually. It involved creating an Android app for mobile phones using the online application MIT App Inventor, which uses block programming. We later worked on a currency converter app in Java using the Eclipse IDE.

Technologies used: MIT App Inventor, Java, XML.


Kerr & Brown Shoe Shop

15th October, 2015 - 10th December, 2015

This project was carried out individually for the Software Design module I undertook in second year. It involved coming up with a full design for a website to be used by a fictional shoe shop. I had to submit a report with a number of different design diagrams including use case, sequence, class, activity and state-machine diagrams. We also had to outline the functional and non-functional requirements of the system.

Technologies used: UML Diagrams.


Mathematical Expression Evaluator

10th January, 2017 - 21st March, 2017

Worked independently to write a program which would take a JSON script of mathematical expressions as input and output their evaluations.

Technologies used: SML, JSON.


Rex - The Robot Guide Dog

1st October, 2015 - 4th December, 2015

Worked in a group of 5 where we were given the task of coming up with the idea of a product that we thought would help people. We were told not to restrict our idea with current technology. Our idea, a robot guide dog had to be branded and designed from scratch, and we presented to the class the reasons why we thought it was a good idea. Click here for the presentation slides (pdf). We were also asked to carry out a usability test at an expo on a prototype version of our guide dog, and we came second in the class vote for best idea.

Technologies used: SML, JSON.