Publications & Projects
I like to solve problems, both ones presented to me and ones of my own making. Correspondingly, I have taken on a number of projects in my time in computer science. I've linked significant projects which have been developed to have at least some substance here, even if they are not fully completed. When possible, relevant repositories, documents and publications are linked as well.
Copernicus is a paper researching sparse-matrix decompression efficiency on common Xilinx FPGAs to determine power consumption and processing times for given sparse matrix compression algorithms. This provided a number of useful metrics for choosing sparse-matrix compression algorithms when an FPGA will be used to decompress the matrices. For this project, I authored a significant amount of HLS C++ code for the different decompression algorithms.
This is a class project for CS 6262 - Network Security. This project aimed to research the security of the broader Internet by performing automated scans of 10000 randomly selected but popular websites from seven years before the experiment. We tested how the security of these websites and their servers held up over time and compared to modern standards. This gives us insight as to internet security, and as to how it ages. For this project, I authored a template-vulnerability scanner and server-level multithreading.
Grading 1331 (stylized grading1331) is a meta-programming test suite developed for CS 1331 - Intro to Object Oriented Programming. I started the development of this library to expand the domain of automatic grading capabilities for student homeworks and standardize meta-programming techniques used when developing these auto-graders. This library allows us to analyze the structure of student code. The semester before I switched to teaching a new class, I transitioned to an administrative role to help integrate new team members to ensure the project's longevity. It is still under development by the current generation of CS 1331 teaching assistants as of the time of this writing (December 2023).
G
Tree Markup Language is an ultra-simplistic markup language only specifying generic tree data structures. These trees can be specified, parsed, and handled in code with little overhead or extraneous syntax. The minimal constraints on these trees allows the language to be simple but powerful, and the language can be far more easily worked with manually and programmatically when compared to other markup and data specification languages such as XML, YAML, JSON, etc.
Back-Bench Cluster Computing is a class project for CS 6675 - Advanced Internet Systems & Services. This project performed cluster computation (e.g. for research) on resources with limited availability. Specifically, we aimed to measure metrics of different scheduling algorithms on a simulated set of library computers which were limited in use during simulated daytime hours. We built an architecture to simulate the availability of computers based on different schedules of user demand, and a simulator to test the efficacy of scheduling algorithms based on these demands.