Python Enhanced Error Feedback: An Online IDE to Support the Teaching and Learning Process of Programming

Abstract


Learning to code may a challenge to most students. They are required to have various skills such logical thinking, text interpretation and math skills that turn programing a complex subject. In general, instructors do not use tools that provide good feedback for learners, mostly using tools designed for experts. This issue makes the learning problems more acute. At the same time, instructors are hardly able to provide timlely, individual and suitable feedback, given their volume of work. Thus, tools that provide suitable feedback to students can support them in this process and reduce the complexity of the programming learning process. This paper presents the Python Enhanced Error Feedback (PEEF), an online IDE to support the teaching and learning process and to provide different types feedback such as enhanced messages, unit tests and a chatbot. We present two scenarios of use of the PEEF tool to potential users. The tool offers a possibility of scaffoldibf in learning programming, providing feedback to both students and instructors. Lastly, this tool makes it possible a more in-depth study of feedback types to students.
Keywords: Feedback, teaching programming, enhanced messages, unit tests

References

Brett A. Becker. 2016. An Effective Approach to Enhancing Compiler Error Messages. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education (Memphis, Tennessee, USA) (SIGCSE ’16). Association for Computing Machinery, New York, NY, USA, 126–131. https://doi.org/10.1145/2839509.2844584


Brett A. Becker, Cormac Murray, Tianyi Tao, Changheng Song, Robert McCartney, and Kate Sanders. 2018. Fix the First, Ignore the Rest: Dealing with Multiple Compiler Error Messages. In Proceedings of the 49 th ACM Technical Symposium on Computing Science Education (Baltimore, Maryland, USA) (SIGCSE ’18). Association for Computing Machinery, New York, NY, USA, 634–639. https://doi.org/10.1145/3159450.3159453


J. Bennedsen and M. E. Caspersen. 2007. Failure Rates in Introductory Programming. SIGCSE Bull. 39, 2 (June 2007), 32–36.


Yorah Bosse and Marco Gerosa. 2015. Reprovações e Trancamentos nas Disciplinas de Introdução à Programação da Universidade de São Paulo: Um Estudo Preliminar. In Anais do XXIII Workshop sobre Educação em Computação (Recife). SBC, Porto Alegre, RS, Brasil, 426–435. https://doi.org/10.5753/wei.2015.10259


Michelle Craig and Andrew Petersen. 2016. Student Difficulties with Pointer Concepts in C. In Proceedings of the Australasian Computer Science Week Multiconference (Canberra, Australia) (ACSW ’16). Association for Computing Machinery, New York, NY, USA, Article 8, 10 pages. https://doi.org/10.1145/2843043.2843348


Paul Denny, Andrew Luxton-Reilly, and Dave Carpenter. 2014. Enhancing Syntax Error Messages Appears Ineffectual. In ITiCSE ´14 Proceedings of the 2014 conference on Innovation & technology in computer science education (Uppsala, Sweden) (ITiCSE ’14). Association for Computing Machinery, New York, NY, USA, 273–278. https://doi.org/10.1145/2591708.2591748


Maria Janaina da Silva Ferreira et al. 2015. EMS: Um plug-in para exibição de mensagens de erro dos compiladores. Ph.D. Dissertation. Universidade Federal de São Carlos.


Matthew C Jadud. 2005. A first look at novice compilation behaviour using BlueJ. Computer Science Education 15, 1 (2005), 25–40.


David Janzen and Hossein Saiedian. 2008. Test-Driven Learning in Early Programming Courses. SIGCSE Bull. 40, 1 (March 2008), 532–536. https: //doi.org/10.1145/1352322.1352315


Galileu Jesus, Kleber Santos, and Jaine Conceição e Alberto Neto. 2018. Análise dos erros mais comuns de aprendizes de programação que utilizam a linguagem Python. Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação - SBIE) 29, 1 (2018), 1751. https://doi.org/10.5753/cbie.sbie.2018.1751


Tobias Kohn. 2019. The Error Behind The Message: Finding the Cause of Error Messages in Python. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE ’19). Association for Computing Machinery, Minneapolis, MN, USA, 524–530.


Tobias Kohn and Bill Manaris. 2020. Tell Me What’s Wrong: A Python IDE with Error Messages. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, Portland, OR, USA, 1054–1060.


Vesa Lappalainen, Jonne Itkonen, Ville Isomöttönen, and Sami Kollanus. 2010. ComTest: A Tool to Impart TDD and Unit Testing to Introductory Level Programming. In Proceedings of the Fifteenth Annual Conference on Innovation and Technology in Computer Science Education (Bilkent, Ankara, Turkey) (ITiCSE ’10). Association for Computing Machinery, New York, NY, USA, 63–67. https://doi.org/10.1145/1822090.1822110


Andrew Luxton-Reilly, Simon, Ibrahim Albluwi, Brett A. Becker, Michail Giannakos, Amruth N. Kumar, Linda Ott, James Paterson, Michael James Scott, Judy Sheard, and Claudia Szabo. 2018. Introductory Programming: A Systematic Literature Review. In ITiCSE 2018 Companion: Proceedings Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (Larnaca, Cyprus) (ITiCSE 2018 Companion). Association for Computing Machinery, New York, NY, USA, 55–106. https://doi.org/10.1145/3293881.3295779


Andy Nguyen, Christopher Piech, Jonathan Huang, and Leonidas Guibas. 2014. Codewebs: Scalable Homework Search for Massive Open Online Programming Courses. In WWW ’14: Proceedings of the 23rd international conference on World wide web (Seoul, Korea) (WWW ’14). Association for Computing Machinery, New York, NY, USA, 491–502. https://doi.org/10.1145/2566486.2568023


David J Nicol and Debra Macfarlane-Dick. 2006. Formative assessment and self-regulated learning: A model and seven principles of good feedback practice. Studies in higher education 31, 2 (2006), 199–218.


Claudia Ott, Anthony Robins, and Kerry Shephard. 2016. Translating principles of effective feedback for students into the CS1 context. ACM Transactions on Computing Education (TOCE) 16, 1 (2016), 1–27.


David Pritchard. 2015. Frequency distribution of error messages. In Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools. Association for Computing Machinery, New York, NY, USA, 1–8.


Lev Semynovitch Vygotsky. 2008. A formação social da mente. Martins Fontes, São Paulo.


Christopher Watson and Frederick W.B. Li. 2014. Failure Rates in Introductory Programming Revisited. In Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education (Uppsala, Sweden) (ITiCSE ’14). Association for Computing Machinery, New York, NY, USA, 39–44. https://doi.org/10.1145/2591708.2591749
Published
2021-04-26
ARAUJO, Luis Gustavo Jesus; BITTENCOURT, Roberto Almeida; CHAVEZ, Christina von Flach Garcia. Python Enhanced Error Feedback: An Online IDE to Support the Teaching and Learning Process of Programming. In: BRAZILIAN SYMPOSIUM ON COMPUTING EDUCATION (EDUCOMP), 1. , 2021, On-line. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2021 . p. 326-333. ISSN 3086-0733. DOI: https://doi.org/10.5753/educomp.2021.14500.