Abstract
In the last few decades, numerous tutoring systems and assessment tools have been developed to support students with learning programming, giving hints on correcting errors, showing which test cases do not succeed, and grading their overall solutions. The focus has been less on helping students write code with good style and quality. There are several professional tools that can help, but they are not targeted at novice programmers. This paper describes a tutoring system that lets students practice with improving small programs that are already functionally correct. The system is based on rules that are extracted from input by teachers collected in a preliminary study, a subset of rules taken from professional tools, and other literature. Rules define how a code construct can be rewritten into a better variant, without changing its functionality. Rules can be combined to form rewrite strategies, similar to refactorings offered by most IDEs. The student can ask for hints and feedback at each step. We describe the design of the system, show example sessions, and evaluate and discuss its contribution and limitations.
Original language | English |
---|---|
Title of host publication | SIGCSE '21: Proceedings of the 52nd ACM Technical Symposium on Computer Science Education |
Publisher | Association for Computing Machinery |
Pages | 562-568 |
Number of pages | 7 |
ISBN (Electronic) | 9781450380621 |
DOIs | |
Publication status | Published - 3 Mar 2021 |
Event | 52nd ACM Technical Symposium on Computer Science Education, SIGCSE 2021 - Virtual, Online, United States Duration: 13 Mar 2021 → 20 Mar 2021 |
Conference
Conference | 52nd ACM Technical Symposium on Computer Science Education, SIGCSE 2021 |
---|---|
Country/Territory | United States |
City | Virtual, Online |
Period | 13/03/21 → 20/03/21 |
Bibliographical note
Funding Information:This research is supported by the Dutch Research Council (NWO), grant number 023.005.063.
Publisher Copyright:
© 2021 ACM.
Funding
This research is supported by the Dutch Research Council (NWO), grant number 023.005.063.
Keywords
- code quality
- learning programming
- refactoring
- tutoring systems