
Welcome. Programming today is like writing strict-form poetry: change one word, and the verse falls apart. But we can do better. My name is James Koppel, and I study the hard problems of software engineering.
Researchers over the past two decades have brought about a dizzying array of techniques that can radically improve the state of programming, from novel visualizations that let programmers gain years worth of experience in two weeks, to systems using sophisticated logical solvers that can write new programs from a description of a problem. Yet, all too often, the coders who need them are completely unaware that tools that reason about code are possible. I am working on raising awareness and transferring these advances into industry.
I surveyed many developments in the "Automating Automation" talk I gave at the Singularity Summit 2012; slides are available here.
Even still, software is still too difficult to change. Making a small modification is often a task with expense rivaling that of bringing the world to a standard outlet design, with potentially devestating consequences, as anticipated during Y2K. I am highly interested in developing advanced program transformations for software maintence and evolution to make large programs as easy to modify as hard ones.
On a slightly related note, I also work on modifying programs without their source. I used these techniques to found the "Project Ironfist" game mod.