SCS Undergraduate Thesis Topics
|Key Shin||Jonathan Aldrich||3Twelf: A Tool for Reasoning about Programs|
Computer programming involves a difficult degree of reasoning that requires students to rapidly acquire new ideas and skills quickly so that they may apply them to more advanced concepts. Allowing students to rapidly receive feedback about mistakes and misconceptions can aid in student learning. To this end, we are designing and developing a tool that will assist students and other users in learning to prove theorems about programming languages. This tool should be easy to use for novices and thus should be modeled on concepts and semantics that mirror the content of introductory programming language theory courses. This way, it can be used concurrently without any need for additional tutelage. We have modeled our prototype tool on the content of Carnegie-Mellon's Foundations of Programming Languages and hope that it can be used in other courses similar to this in nature.