Projects

Here’s a big list of the programming projects I’ve worked on. You can click on the titles to go to the web pages or repositories. You can view all of my GitHub projects here.

Gradient Descent Blog Post

I wrote an interactive article explaining Gradient Descent. It includes some real world examples as well as simple theoretical examples. The article includes mathematical derivations and algorithmic analysis as well. You can find the code here and see it live here.

Dr. Bergen’s Letter of Recommendation

I built this website as to recommend Dr. Silas Bergen for tenure. This was a more creative, personal way to show my support than simply writing a letter. The user clicks on objects in Dr. Bergen’s office (drawn slightly out of scale), revealing associated reasons as to why he should get his promotion. It was my first endeavor into web development.

My Old Portfolio Website

This was my original portfolio website. I made it from scratch to learn HTML and CSS.

Computer Color Correction

This machine learning project is a prototype of a color correction application. It is planned to be used to help correct images for those affected with color blindness. I made a few initial test images myself. It was trained with k-means clustering. The program was implemented in Python.

TFTP Client

I worked on this project with Ben Andrews and Will Diedirck. We implemented a Trivial File Transfer Protocol (TFTP) client as described in RFC 1350. It includes its own set of commands used to communicate with a TFTP server. It is implemented in Java using Apache Commons libraries.

Machine Learning Connect 4

I worked on this project with Ben Andrews. We implemented connect 4 and trained a supervised neural network to play against. We used a minimax algorithm to generate training data for the network. We implemented this in Python and were working on another C++ implementation.

Red Hat Simulation

I worked on this project with Ben Andrews and Erika Jensen. We simulated Linux process management. It includes process synchronization with semaphore locks, CPU scheduling using a Completely Fair Scheduler, and local paging memory management. The system takes a CSV with a process name, memory requirements, and CPU and I/O burst information. We implemented it in Java.

Calculus Projects

I worked on a couple of programming projects to illustrate ideas from advanced calculus. I used the Discrete Metric for basic Natural Language Processing. It compares how similar words are based on the letters in them; it can similarly compare passages by word. I also made an example of Probability and Measure using Python and to simulate coin flipping and chart the results.