Projects
A collection of things I've built
- Speller.c
A spell checker built on a hash table
Loads a dictionary into a hash table I wrote from scratch, using the djb2 hash and linked lists for collisions, then checks every word in a text file and reports what's misspelled.
Tags: C · Data structures · Memory
(GitHub repository, opens in a new tab) - Achooo
Simulating viral populations
A stochastic simulation of viruses reproducing inside a patient. Viruses can mutate to resist a drug, so introducing one partway through shows how the resistant population responds.
Tags: Python · Simulation · Probability
(GitHub repository, opens in a new tab) - iRoomba
Simulating robot vacuums
Two kinds of robot vacuum clean a rectangular room: one turns only when it hits a wall, the other picks a new direction every step. The simulation compares how long each takes as the number of robots and the room's shape change.
Tags: Python · Simulation · Plotting
(GitHub repository, opens in a new tab) - WordsWithFriends
A word game with a computer opponent
A command-line take on Words With Friends with an 83,000-word dictionary. Play hands yourself, or let the computer search the dictionary for the highest-scoring word it can make. Comes with its own tests.
Tags: Python · Games · Testing
(GitHub repository, opens in a new tab) - C_The_Music
Turning text into music with C
Reads songs written as plain-text notes like D4@1/8, works out each note's frequency relative to A4 at 440 Hz, and writes the song out as a .wav file.
Tags: C · Audio · Music
(GitHub repository, opens in a new tab) - ClimateChange
Modeling decades of city temperatures
Fits linear regression models to historical temperature data for US cities, once using a single day each year and once using yearly averages, and plots each fit with its R² value.
Tags: Python · NumPy · Regression
(GitHub repository, opens in a new tab) - UnDelete
Recovering deleted photos
Reads a raw memory card image 512 bytes at a time, spots the signature bytes that mark the start of a JPEG, and stitches the blocks back into image files.
Tags: C · Binary data · File recovery
(GitHub repository, opens in a new tab) - dnaProfile
Matching DNA with short tandem repeats
Finds the longest consecutive run of each short tandem repeat (STR) in a DNA sequence, then compares those counts against a CSV database to identify who the sample belongs to.
Tags: Python · Data · String matching
(GitHub repository, opens in a new tab)