Joseph Haymaker - Master's candidate (Computer & Information Technology), University of Pennsylvania
Welcome to my GitHub page!
This repo shows off code samples from classes I completed at the University of Pennsylvania and also personal projects I am working on.
Languages/frameworks/tools: Java (primary), Python, C, Flask, Django, Markdown, SciKit-Learn, Matplotlib, Pandas, NumPy, Bootstrap, HTML/CSS, Apache FOP, Twitter4J, LaTex
A project that creates a visual representation (as a maze) of a minimum-spanning-tree (MST) using Kruskal's algorithm. This is accomplished via the path compression and union-by-rank heuristics outlined in CLRS. Lastly, the mazeviewer.java
class allows you to see the maze traversal either by breadth first search (BFS) or depth-first search (DFS).
I used a dataset from Philadelphia's bicycle sharing program Indego (stored as a CSV file). The project parses the data and offers a user interface (IndegoUserInterface.java
) that provides several statistics given the data (number of trips in a year, longest distance of a trip, the day when usage was highest, etc.).
This is a final project for a data structures and software design. I worked in a group with two other team members to create a web app for Penn Medicine patients to connect them with behavioral health resources in the network. I chose to focus on front-end development, and consequently relied heavily on Flask (Python microframework), Bootstrap, and HTML/CSS. Our team worked together to divide the work under a project manager and Penn Medicine liason.
A series of .py files that review general Python syntax as well as exercises of data analysis and manipulation based on Field Cady's textbook The Data Science Handbook using Python Image Library, Pandas, SciKit-Learn, NumPy, and Matplotlib.
This project is an implementation of a recommendation system using Collaborative Filtering (CF) with the MovieLens 10M dataset in milestone 2 and the Book-Crossing community dataset in milestone 3. I completed this project in three steps (milestones) emphasizing code design and extensibility. Consequently, this folder contains several initial UML diagrams I designed for the various classes and processes. Moreover, the algorithm approach to obtaining reasonable recommendations centered around Collaborative Filtering Recommender Systems, an academic paper by Ekstrand, Riedl, and Konstan. Means of calculating predictions included: baseline prediction, user-user CF using Pearson correlation and cosine similarity, and k-nearest neighbors calculations.
My final project for my introduction to programming class. I used Twitter4J and the Watson API to stream tweets from Twitter that mentioned a target product. I then attempted to striate tweets based on target characteristics (location, sentiment, date, etc.).