open-source software

ZombieSource

Humans vs. Zombies at UI Moscow in 2011

I was part of a team of four extending ZombieSource, a web application backing a college campus live-action game called Humans vs. Zombies.

I added a newsfeed of game events, integrated the application with Twitter for game events and Tumblr for moderator announcements, added a zombie “family tree,” and helped extend the application to support multiple games.

Other team members included Chandler Abraham, Damian Ball, and Sasha Solomon.

Keybearer

Keybearer

At some point when @cba was worrying about dying, I designed and wrote a system called Keybearer to encrypt a file with N passwords that requires only M of them to decrypt it (obviously M ≤ N).

Keybearer uses HTML5 and modern Javascript features to run entirely in the browser–no server is required, and all calculations are done on the client computer. Source code is on GitHub.

Hatch: Scientific Data Management

Hatch Scientific Data Management

For our one-semester senior design project, Colby Blair and I designed and built a web application to store, manipulate, and visualize large amounts of scientific data. The Hatch project was inspired by the needs of ecology professor Alex Fremier and ecological data from the PTAGIS fish tagging system, where it is used today.

Hatch was built using Ruby on Rails, with scientific data stored in CouchDB to help alleviate the pain of an ever-changing schema.

work

Lab TA: Data Structures

Computer Science 121: Data Structures

I taught one lab section of the University of Idaho’s data structures course. Topics covered include linked lists, templates, stacks, queues, recursion, trees, heaps, hashing, sorting, and graphs.

My responsibilities included explaining the data structure at hand, providing examples, assisting students during the lab, holding office hours, updating and clarifying lab instructions, and grading lab assignments.

Lab TA: Introduction to Programming

Computer Science 120: Computer Science I (Introduction to Programming)

I was responsible for a lab section of the introductory programming course at the University of Idaho. We covered fundamental programming constructs, basic algorithms, and use of the GCC toolchain. All code and assignments were in C++.

I clarified concepts, provided examples, answered questions, and graded assignments. The class was taken by both CS majors and interested students from other disciplines.

research

Cooporative Communication Research

Visualization of cooperative communication research

Working under Dr. Terence Soule, I used evolutionary computation to examine the effects of leadership-by-example on cooperative learning in a simulation of hyenas attempting to scare lions away from the site of a kill.

Results culminated in the ACM publication “A Comparison of Communication Strategies in Cooperative Learning” by Solomon, Soule, and Heckendorn that earned Best Paper GECCO 2012.

The official copy is with the ACM and code is on GitHub.