My Plan of Concentration (senior thesis)
An inquiry into collaborative programming through a series of essays and coding projects.
Computer Science with a concentration in Collaborative Programming.
A collection of essays discussing collaborative decision-making in software development. (Part I)
Prototyping a user customization language for the open-source game Lasercake. (Part II)
A paper examining Marlboro College’s communications infrastructure and its interrelation with disaster resiliency. (Part III)
Three CS exams in algorithms, programming languages, and the Linux operating system. (Part IV)
I grew up in a family focused on mathematics, science and computers. I learned to program computers at a young age. To balance this out, I took some science classes at Marlboro but spent most of my time growing my arts and social-sciences. I took a dozen dance classes. I became a writing tutor. Meanwhile, I found summer software development internships and kept programming.
My Plan focuses on how social forces affect technical work (Part I), and on how, in times of disaster, technical infrastructure affects social existence (Part III). In Part II I build technical infrastructure for a computer language intended to be accessible to curious non-programmers; alas, this section is mostly technical: only a partial prototype and a few notes regard accessibility. The exams (Part IV) demonstrate my technical competence.
As a coincidence, around the same time as I started working on my Plan, I started working on Lasercake with my sibling Eli. Lasercake is an open-source, open-world game about the environment. It began when we were having fun discussing how to simulate water physics with better asymptotic complexity than Dwarf Fortress1 did. Then we programmed those ideas. We added more to the simulation. We chose to consider it a project. We chose a name, created an online presence, and created core principles. In early 2013, we made Lasercake playable and posted an official release on http://www.lasercake.net/.
We each have a history of creating and playing games. I lost most of my interest in playing computer games a few years ago, when real life became too interesting; it amuses me that I am working on a game now. Eli has a website http://www.elidupree.com/ and a plan to become Internet-famous. Ze2 is multi-talented enough that I think this plan may work.
I introduce Peter Elbow’s presentation of the “doubting game” and the “believing game” in Part I. The doubting game looks for everything wrong with an idea to make it better; the believing game looks for everything right with an idea to make it better. These ideas play a part in many places in this Plan of Concentration. Positive visions are important for creating things, as shown especially in Part I. On the flip side, looking at “what can go wrong?” can illuminate. In Part III, I reference times of disaster to reveal the resilience of our technical infrastructure. In Linux exam subsection 24.4 and subsection 24.5 I examine what can go wrong in the presence of hostile cyber intruders. Attackers are a worst case; thus a good benchmark of understanding a system fully is whether I understand it well enough to thwart attackers. In Part II, I design a language implementation that can thwart accidental or intentional attacks while remaining a useful part of a game.