School Projects

CS 105: Intro to Perl Programming

Six Degrees of Kevin Bacon

This Perl program reads in and parses two IMDB database files. It then uses BFS to compute the shortest path from all movie actors to Kevin Bacon. Results are cached to improve performance. In the end I decided to go ahead and compute the entire Bacon Map prior to allowing user input because of the small amount of time it takes to construct the map. I considered multi-threading the parsing part of the program, but because of how Perl handles multi-threading it was better to just leave the program single threaded. Run the program by calling './ *.gz'.


CS 429: Systems I

Y86 Simulator

This C program is a simulation of the Y86 Architecture, as found in Computer Systems A Programmer's Perspective, by Bryant and O'Hallaron. Created for my Systems and Architecture class in March of 2013. The Y86 Architecture is a simplified version of X86 for teaching purposes. The simulator reads in a binary file and executes the corresponding instructions while also keeping track of various registers and memory as a whole. To use the program simply call the .out file on the command line, followed by the file name. Example: a.out prog1.yb.

Region Adjacency

This C program reads in files (.boo extension) containing regions, polygons, and points, and then computes which regions are adjacent to each other. To use the program run a.out with the first command line parameter being the file you wish to read in, similar to the above program. A combination of an adjacency matrix for each region, and a "buffer zone" system is used to enable computation of even lareger files. This program was a great exercise in optimizing code.


Computational Evolution Lab

During the Spring semester of 2013 I was a part of the Computational Evolution Lab as part of the Freshman Research Initiative. In the lab I performed research into how self-replicating computer programs help model real world evolution. I also graphed and performed statistical tests on results of various projects using the matplotlib and SciPy Python libraries. Although I decided to not pursue further participation in the lab, the experience has proven to be invaluable to me. I learned basic Python skills which ended up giving a big leg up during my Raytheon internship, gained experience in the art of research, and spent considerable time working with other research students as a cohort on various labs, which included a final project. For our final project, my cohort and I investigated how the limiting of resources drove genetic diversity. You can find a copy of our final paper below.