Intelligent Tutors for Learning Good Coding Practices by Solving Refactoring Problems
Code quality is of universal concern among educators. Refactoring code, i.e., revising the structure of a program without changing its behavior is one approach for improving code quality. Numerous software tools have been created to help students refactor the code they write. Only a few software tutors have been reported in literature that help students proactively learn code quality by solving refactoring problems. But, they suffer false positive and false negative grading issues because they allow freehand coding. Can refactoring tutors be built that do not allow freehand coding? Can they be used to help students learn about non-trivial anti-patterns? Will students need to learn about such issues? Will they benefit from using the tutors? We investigated these questions by developing and using two software tutors for refactoring problems that do not allow freehand coding. They are based on the principle of “refactoring without rewriting code”, and cover the subset of refactoring problems that can be solved using only deletion, duplication, reordering and token-wise editing of lines of code. In this experience report, we start by describing the tutors – the list of refactoring concepts covered, the user interface, grading, feedback and usage. We report our experience using the tutors over three semesters, which confirmed that both introductory and advanced students needed and benefited from using the tutors despite the limitations of their coverage. We reflect on what worked and what did not. The tutors currently cover C++, Java and C#. They are available for free for educational use on the web at xxx.org.
Professor of Computer Science, Distinguished Member of ACM, Senior Member of IEEE, Co-Chair of ACM/IEEE-CS/AAAI Computer Science Curricula 2023
Sat 7 DecDisplayed time zone: (UTC) Coordinated Universal Time change
22:00 - 23:00 | |||
22:00 30mPaper | Intelligent Tutors for Learning Good Coding Practices by Solving Refactoring Problems Conference Amruth N. Kumar Ramapo College of New Jersey | ||
22:30 30mPaper | Mutating Matters: Analyzing the Influence of Mutation Testing in Programming Courses Conference |