Projects

Home Projects About Resume

School Projects

Client-Server Socket Program (C) -- Computer Networks (CSCI 367)

Implements the C Socket API to build a server program. The program can function as a client sending information, as a server receiving information, or as a pipe -- receiving information from one side of the connection and sending it out the other side. User interface is facilitated through the Ncurses library which provides a TUI to display relevant information to the user. User interaction is all text-based -- the program handles commands in a non-blocking manner, and displays all information being sent and received by both the left and right-side connections. This was a school project, so my code is not public but it can be provided upon request.

Blitz Emulated OS (Kernel Programming Language) -- OS Internals (CSCI 509)

Blitz OS is a project in which the student builds pieces of an emuulated operating system written in KPL and based on the Sun SPARC RISC architecture. More information about the project and the Blitz architecture can be found here. Implementation includes a basic shell to handle user input and can interface with a file system created to go along with the project. I had to write logic for resource allocation and management, as well as proper interaction between user-space and system-space. This was a school project, so my code is not public but it can be provided upon request.

Brainviewer (Python) -- Senior Research Project (CSCI 496)

Developed in a group as my senior project using GitHub for source control: code. Brainviewer is an interactive UI that visualizes connectome projections between some source point and all other points in the brains of mice using a method of estimation based on experimental data. Resulted in a research paper submitted to IEEE VIS 2022.

Complex Word Classifier (Python) -- Computational Linguistics (CSCI 573)

NLP project that tests a variety of machine learning models on a set of input words and features to classify words as complex or simple, and determine which features give an indication of complexity. This was a school project, so my code is not public but it can be provided upon request.

N-Gram Language Modeling (Python) -- Computational Linguistics (CSCI 573)

NLP project that builds, smooths, and evaluates perplexity of word and character level n-grams and uses them to probabilistically generate sentences. This was a school project, so my code is not public but it can be provided upon request.

Various ML Projects (Python) -- Machine Learning (DATA 371)

Derived and implemented models for Lasso, Gradient Descent, and Stochastic Gradient Descent Algorithms. Also experimented with parameter tuning, data augmentation (linear feature matrices to polynomial/nonlinear, feature normalization). This was a school project, so my code is not public but it can be provided upon request.

Deadwood (Java) -- Object Oriented Design (CSCI 345)

Developed an outline for a set of classes before any programming, with adherence to object oriented principles. Wrote a program that plays the boardgame Deadwood using a GUI. The program uses the Java Swing Library to implement the GUI for the game. This was a school project, so my code is not public but it can be provided upon request.

Ray/Path Tracer and Mesh Renderer from scratch (Julia) -- Computer Graphics (CSCI 580)

Developed a ray-tracer in Julia that supports several basic 3d primitives (cylinder, sphere) as well as a mesh renderer to generate triangle meshes from obj files. Ray tracer supports several different shading models (flat, lambertian, blinn-phong) and light models (directional, point, spot). Experimented with extending the ray tracer to function probabilistically as a bidirectional path tracer by implementing monte carlo techniques for sampling the light reflection direction. This was a school project, so my code is not public but it can be provided upon request.

Fake Image Detector (Python) -- Deep Learning (CSCI 581)

Developed a CNN, loosely based on VGG-16, to classify images as either fake (meaning AI generated) or real. My model was implemented using pytorch and trained on 122910 samples, resulting in a dev-set accuracy of 99.86% evaluated over 15327 samples. This was a school project, so my code is not public but it can be provided upon request.

Personal Projects

This Website (HTML/CSS/JavaScript)

I chose to write this website for several reasons. The first of which is because I was TA-ing for a Dynamic Web Pages Course at WWU in Summer 2022 (CSCI 202) and felt the need to brush up on my web-dev skills. More imporantly, I wanted a place to display my projects and resume for potential employment and research opportunities.

Future Projects

Home-Server

Build a dedicated machine to act as a server for file storage, remote code execution, etc.