About Me

Some say, how can computers ever be intelligent if they're just following instructions? I suggest we take that question seriously. For a machine to be broadly intelligent, it must not just use the instructions and reasoning processes that its designers gave it, but plan, adapt, and evaluate new or repurposed processes. The result will be machines that are more flexible, less stupid, and much more helpful parts of our lives.

I am exploring intelligent systems from several angles. My Masters' thesis (ProcedureSpace) at the MIT Media Lab was about relating ambiguous statements of goals with concrete fragments of code that might accomplish them. I've also worked with helping computers understand how concepts relate to each other using flexible, imprecise reasoning processes (commonsense).

I used to work in the Media Lab with the Software Agents / Commonsense Computing group.


Informal Programming [Master's Thesis]

Computers usually require us to be precise about what we want them to do and how, but humans find it hard to be so formal. But if we gave computers formal examples of our informal instructions, maybe they could learn to relate ordinary users' natural instructions with the specifications, code, and tests that they are comfortable with. As an example of this idea, we present Zones and ProcedureSpace. Zones is a code search interface that connects code with comments about its purpose. Completed searches become annotations, so the system learns by example. The backend, called ProcedureSpace, finds code for a purpose comment (or vice versa) by relating words and phrases to code characteristics and natural language background knowledge. When we let a few people try out the system, they were able describe what they wanted in their own words and often found that the system gave them helpful code.

Position Paper (5 pages) | Slides
Technical Paper (8 pages) | Slides
Masters Thesis (105 pages)

Common Sense Computing Initiative

Humans understand new information by reference to a large and rich body of background knowledge and metaknowledge. I work with the Common Sense Computing Initiative to develop techniques to learn and use this knowledge.

I am a lead developer of Divisi, a library for reasoning by dimensionality reduction over a wide variety of knowledge sources. I also contribute to many other projects, including:

Arnold, K.C. and H. Lieberman. Scruffy Cross-Domain Inference. AAAI Fall Symposium on Common Sense Knowledge, November 2010. (Slides)


I have other projects, in various stages of completion in the areas of artificial intelligence, human-computer interaction in software development, sound and music creation, audio analysis, educational technology, writing technology, scripture memorization, and gestural interfaces. Ask me if you're interested in more details.


Friends and Groups

At Harvard CS, I work with:

... and many friends.

At the MIT Media Lab, I worked with:

I'm involved in various student groups, including the MIT Cross Products (Christian a cappella group) and Graduate Christian Fellowship. I sometimes also teach and help out with MIT's Educational Studies Program.