Project to Build Programs that Understand

This extended abstract outlines a project to build computer programs that understand. Understanding a domain is defined as the ability to rapidly produce computer programs to deal with new problems as they arise. This is achieved by building a CAD tool that collaborates with human designers who guide the system to construct code having certain properties. The code respects Occam's Razor, interacts with a domain simulation, and is informed by a number of mechanisms learned from introspection, the coding employed in biology, and analysis.