Course: Operating Systems (Spring 2014)

A simple operating system for the Raspberry Pi, developed during "Operating Systems" course at Bennington College, Spring 2014. Students implemented basic memory management, boot, process switching and management and a simple serial console (UART) shell for the Raspberry Pi. Developed using ARMv6 assembler and C, with some consultation with existing bare-metal Raspberry Pi OSes in the wild.


Course: Intensive Introduction to Computer Science (Spring 2014)

Student-driven project to build a replacement for GitHub in light of sexism allegations against GitHub employees as reported by the media. Students used Python, HTML, CSS, PHP and other technologies to build storage, web proxy, versioning, sync, etc.

Building a Distributed System Using Raspberry Pis and Google File System

Course: Distributed Systems (Fall 2013)

In this class, we will work together to build an implementation of a distributed storage system, the Google File System. Our implementation will be special in the sense that it is built over a cluster of Raspberry Pi single-board computers, with attached SATA hard disks. We may also add a few bells and whistles as we go.

We will begin by reading and discussing the Google File System paper. You will then work together to break the ideas down into a design. The design will then be validated and turned into individual tasks that you will delegate to each other for implementation. As a complete implementation grows near, you will also design a set of tests and measurements inspired by those in the GFS paper. You will perform those tests and measurements, and collect data on how your system performs (and make adjustments as needed).

Scalability Poster | Performance Poster

Building a Wireless Mesh Network

Course: Computing in the Developing World (Fall 2013)

This project will revolve around setting up a wireless mesh network in a simulated urban and rural environment.This project will help familiarize students on a practical level with some of the technical, social and logistical challenges related to this area of work. The wireless mesh network project requires no special skills; however, students interested in enclosure design, electronics design, antenna design, or aspects of software and network development and monitoring will find opportunities to exercise and enhance their skills in those areas.

Bride of Tweet-a-Watt

Course: Computing Ecology (Fall 2012)

Used Fall 2012 in "Computing Ecology" at Bennington College as a combination hardware making exercise and introduction to Python. Students built approximately 14 variants of the popular Tweet-a-Watt project to wirelessly monitor and graph power consumption. Learning objectives were hardware / e-waste awareness and familiarity, gentle introduction to Python, computational thinking and basic operating systems skills.