GGrantIndex
← Search

Using a Tutoring System to Teach High-Quality Coding Practices

$300,000FY2022EDUNSF

Ramapo College Of New Jersey, Mahwah NJ

Investigators

Abstract

This project aims to serve the national interest by developing, evaluating, and disseminating a tutoring system that will teach students to write high-quality programming code. Code quality has a direct impact on the cost of modern software and the productivity of professional programmers. High-quality code should be correct, understandable, maintainable, and extendable. In a typical academic setting, students write code that is correct, but is hard to understand, maintain, or extend. Current approaches to teaching students how to write high-quality code, such as tutor/peer code review, live coding, and refactoring instruction, are resource-intensive and not scalable. This tutoring system will teach students to write high-quality code by solving problems on their own time and by automatically providing guidance on how the students can improve the quality of the code. This project addresses a significant unmet need of programming education. It will contribute to research on how to effectively teach programming. Additionally, the project has potential to better prepare Computer Science graduates to enter the professional computing workforce. The tutoring system will generate refactoring problems as randomized instances of templates, with each problem illustrating one semantic anti-pattern. The system will provide a limited set of editing operations with which to solve problems and will generate feedback that will help students to incrementally solve problems and understand the anti-pattern. The system will automatically adapt to the learning needs of each student and will generate progress reports for instructors. The tutor will cover up to 100 semantic anti-patterns and include 5 – 10 problem templates per anti-pattern. The system will be available for C++, Java, and Python. The problems and feedback designed for each anti-pattern will be evaluated by observing the efficacy of the tutor in helping students learn to refactor code, and the system’s effectiveness in helping students to write high-quality code. The NSF IUSE: EHR Program supports research and development projects to improve the effectiveness of STEM education for all students. Through the Engaged Student Learning track, the program supports the creation, exploration, and implementation of promising practices and tools. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →