Spring '05 with Adem Kader. Advisor: Bruce Maxwell
We wrote a One Instruction Set Computer in VHDL and developed a simple language for it with a virtual machine and compiler written in Java 5. Adem keeps the final write-up on his site. Documentation for the compiler and virtual machine generated with Javadoc can be found here .
Summer '05 with Ben Kuperman
During an undergraduate research fellowship at Swarthmore College I worked with Professer Kuperman on expanding a preliminary system written for Sun Solaris. We first ported it over to Debian Linux. Afterwards, I redesigned and reimplemented the log recording mechanism with easily synchronizable log entry commit semantics, and wrote a highly modular log reader/processor from scratch.
I wrote and presented a poster on this project for Sigma Xi September '05. Download: [abstract and summary] [poster]
Fall '05 with Alex Pshenichkin. Advisor: Tia Newhall
We worked on several projects: developing a kernel level synchronization primitive, analyzing the Linux page replacement policy, and a synchronized kernel module for a mailbox block device (to be used for inter-process communication).
Spring '06 with Javier Prado. Advisor: Tia Newhall
We wrote two distributed execution systems, one centralized and one decentralized. We tested the performance of these systems under different experimentally induced conditions.
Download: [paper] .
Summer '06 at Southwestern University for NITLE
This summer I worked with a team of nine other undergraduates. We wrote a module for the Moodle Course Management System that interfaces with the Marratech Video Conferencing Suite to allow seamless video conferencing from within moodle. This project involved Java EE programming on the Marratech side and PHP and MySQL on the Moodle side.
I wrote and presented a poster on this project for Sigma Xi September '06. Download: [abstract and summary] [poster]
Fall 2006 with Scott Blaha. Advisor: Andy Danner
Real life geographic elevation data comes in three-dimensional point clouds, meaning data is not aligned along a grid or even has uniform distribution. Geographic Information Systems take elevation grids for most processing tasks (viewshed computation, watershed computation, flow routing etc.). The natural way of getting grids from point clouds is interpolation. However, interpolation is extremely computationally intensive and GIS data sets are getting bigger by the second.
Thankfully interpolation is RP (ridiculously parallelizable), which can theoretically give us nx speed up in n-way parallelization. We implemented a few interpolation algorithms, parallelize them and observed the improvement in performance. Programmed in C using LAM/MPI.
Download: [paper]
Fall 2006 with Chris Harman. Advisor: Rich Wicentowski
This project focused on generating training/testing documents (corpora, for those in the know) for automated tagging using the social bookmarking site del.icio.us. The idea is that social bookmarking sites provide a wealth of heavily cross-referenced tagging data. However, only a very particular subset of the Web gets added to these sites. So, we need to build an engine that leverages the human-verified data (namely, tagged sites) to tag novel text (the rest of the internet). We generated a sizable corpus of about 19,000 documents for about 1,000 different tags and trained topic detection algorithm that uses latent semantic analysis.
Download: [paper]