|title:||Automated Program Analysis for Novice Programmers|
|keywords:||Program analysis, static analysis, programming education|
|topics:||Case studies and Applications , Software Technology|
Learning how to program is an essential skill for students of Computer Science and related fields in engineering and beyond. For many students programming can become a significant stumbling block. The aim of the project is to address if static analysis can be used to assist novice programmers.
Static analysis tools are used in software development practice to find bugs and flaws at the time of programming. A static analysis tool provides feedback to the programmer, often even before the code is compilable. Static analysis tools are geared towards professional developers both in the deficiencies it checks for, as well in the feedback it provides. They usually assume a fair level of programming experience to be used effectively.
This project will conduct research how these tools can be used effectively in teaching programming. This will require a review of existing techniques, adaptation to the needs of inexperienced novice programmer, appropriate feedback for such users, and a recommendation at which stages of a typical programming course these tools can be best employed.