Giving Automated Feedback About Student Code Identifiers: a Method Based on the Description of Programming Problem
Resumo
Providing timely feedback on identifier naming to novice programmers can help them to improve their program readability. However, due to the growth in the number of students learning to program nowadays, giving manual feedback on identifier quality becomes prohibitive. In this paper, we propose a method to automatically give this feedback which is correct 75.0% of the time in contrast to the instructors' assessment. We found that 51.7% of the students who received automated feedback showed their program identifier quality improvement by picking better names. It means that we can help students to improve identifier naming and consequently, their program readability from early coding experiences.
Referências
AST (1990). Abstract syntax trees. [link]. [Online; accessed 26-January-2019].
Baeza-Yates, R., and Ribeiro-Neto, B. (1999). Modern information retrieval. Addison-Wesley.
Butler, S. (2009). The effect of identifier naming on source code readability and quality. In Proceedings of the Doctoral Symposium for ESEC/FSE on Doctoral Symposium, ESEC/FSE Doctoral Symposium’09, pages 33–34, New York, NY, USA. ACM.
CheckStyle (2001). [link]. [Online; accessed 1-June-2019].
De Lucia, A., Di Penta, M., and Oliveto, R. (2011). Improving source code lexicon via traceability and information retrieval. IEEE Trans. Softw. Eng., 37(2), 205–227.
Evans, E., and Szpoton, R. (2015). Domain-driven design. Helion.
Glassman, E. L., Fischer, L., Scott, J., and Miller, R. C. (2015). Foobaz: Variable name feedback for student code at scale. In Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology, UIST’15, pages 609–617, New York, NY, USA. ACM.
Jackson, D., and Usher, M. (1997). Grading student programs using assyst. In ACM SIGCSE Bulletin, volume 29, pages 335–339. ACM.
Lawrie, D. J., Feild, H., and Binkley, D. (2006). Leveraged quality assessment using information retrieval techniques. In 14th IEEE International Conference on Program Comprehension (ICPC’06), pages 149–158.
López, X., Valenzuela, J., Nussbaum, M., and Tsai, C.-C. (2015). Some recommendations for the reporting of quantitative studies. Computers & Education, 91(C), 106–110.
NLTK (2001). Natural language toolkit. [link]. [Online; accessed 26-January-2019].
PMD (2002). A static source code analyzer. [link]. [Online; accessed 1-June-2019].
RE (1990). Regular expression. [link]. [Online; accessed 28-March-2019].
Rees, M. J. (1982). Automatic assessment aids for Pascal programs. ACM Sigplan Notices, 17(10), 33–42.
RSLP (2001). Stemmer. [link]. [Online; accessed 6-April-2019].
Tokenize (2001). Tokenizer. [link]. [Online; accessed 6-April-2019].
Unidecode (1990). ASCII transliterations of Unicode text. [link]. [Online; accessed 6-April-2019].
Wilcox, C. (2015). The role of automation in undergraduate computer science education. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, SIGCSE’15, pages 90–95, New York, NY, USA. ACM.
