Skip to content

A collection of personal projects which demonstrate my understanding and application of various programming principles and practices using C++ and Python.

Notifications You must be signed in to change notification settings

JamesBMiddleton/portfolio_projects

Repository files navigation

Programming/Data Science Portfolio

This repository contains a collection of personal projects which demonstrate my understanding and application of various programming and data science principles and practices. The two major themes of the projects include safe and robust program design in C++ and the application of data science tools and statistical/machine learning models within scientific problem domains.

Contents

Neural Network LED matrix visualisation. Implementing a neural network from scratch in C++. Running the network on a microcontroller which drives an LED matrix showing a real-time visualisation of the training process.

Modern C++ Design Patterns. Modern C++ implementations of the Gang of Four's Design Patterns. Used as an opportunity to implement a full C++ toolchain; testing with Catch2 + CTest, linting with clang-tidy + clang-format, documentation with Doxygen + GitHub pages and GitHub Actions for CI/CD.

Procedural ASCII tree generation. A terminal-based C++ animation program which procedurally generates coloured tree shaped structures using ASCII characters.

Nutrition tracking application. Building the basic functionality of a nutrition tracking GUI application using Pandas, Matplotlib and PyQt5. A dataset containing ~500,000 foods can be searched, nutritional information for a food can be visualised in reference to an individual's Recommended Daily Intakes (RDIs) and then added to a daily total.

PLACES 2020 - Exploring 27 U.S. Health & Lifestyle Measures. Exploring the prevalence of various health and lifestyle measures across the U.S and building a multiple regression model to predict disease prevalence using common risk factors.

Building a K-nearest classifier from scratch. Explaining the theory and building a train-test split function, normalisation function and K-nearest classifier class using NumPy and random. Assessing the classifier's performance when predicting Iris species using petal and sepal width and length.

Biomechanical differences between running footstrikes. Continuing the analysis of a dataset made publicly available by Fukuchi et al. (2017) in a paper exploring the effect of velocity on running biomechanics. The notebook follows a similar format to a research paper, including an introduction, hypothesis, method, results and brief discussion of results.

About

A collection of personal projects which demonstrate my understanding and application of various programming principles and practices using C++ and Python.

Topics

Resources

Stars

Watchers

Forks