Giving Automated Feedback About Student Code Identifiers: a Method Based on the Description of Programming Problem

  • Marcos Nascimento Universidade Federal de Campina Grande (UFCG)
  • Eliane Araújo Universidade Federal de Campina Grande (UFCG)
  • Dalton Serey Universidade Federal de Campina Grande (UFCG)
  • Jorge Figueiredo Universidade Federal de Campina Grande (UFCG)

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.

Palavras-chave: Automated Feedback, Code Identifiers, Program Readability, Programming

Referências

Ala-Mutka, K., Uimonen, T., and Järvinen, H.-M. (2004). Supporting students in C++ programming courses with automatic program style assessment. Journal of Information Technology Education: Research, 3(1), 245–262.

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.
Publicado
11/11/2019
NASCIMENTO, Marcos; ARAÚJO, Eliane; SEREY, Dalton; FIGUEIREDO, Jorge. Giving Automated Feedback About Student Code Identifiers: a Method Based on the Description of Programming Problem. In: SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA EDUCAÇÃO (SBIE), 30. , 2019, Brasília/DF. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 537-546. DOI: https://doi.org/10.5753/cbie.sbie.2019.537.