The Yale University Cognition and Programming Project