Python Enhanced Error Feedback: Uma IDE Online de Apoio ao Processo de Ensino-Aprendizagem em Programação
Resumo
Aprender a programar pode ser um desafio para muitos estudantes. São exigidas deles diversas competências como pensamento lógico, interpretação de texto e habilidades matemáticas que tornam complexa a programação. Em geral, professores não utilizam ferramentas que fornecem bom feedback para quem está aprendendo, pois são projetadas para programadores experientes, fator que potencializa o problema apresentado. Ao mesmo tempo, professores dificilmente conseguem fornecer feedback apropriado em tempo hábil e de modo individual, dado o seu volume de tarefas. Assim, ferramentas que proveem feedback apropriado aos estudantes podem auxiliar neste processo e diminuir a complexidade do processo de aprendizagem de programação. Este artigo apresenta a Python Enhanced Error Feedback (PEEF), uma IDE online para auxiliar no processo de ensino-aprendizagem que fornece diversas formas de feedback tais como mensagens melhoradas, testes unitários e chat. São apresentados dois exemplos de uso de PEEF para cada um dos potenciais usuários. A ferramenta se apresenta como uma possibilidade de uso no ensino de programação, fornecendo feedback para os estudantes e professores. Por fim, possibilita um estudo mais aprofundado sobre tipos de feedback fornecidos aos estudantes novatos.
Palavras-chave:
Feedback, ensino de programação, mensagens melhoradas, testes unitários
Referências
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
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
Publicado
26/04/2021
Como Citar
ARAUJO, Luis Gustavo Jesus; BITTENCOURT, Roberto Almeida; CHAVEZ, Christina von Flach Garcia.
Python Enhanced Error Feedback: Uma IDE Online de Apoio ao Processo de Ensino-Aprendizagem em Programação. In: SIMPÓSIO BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO (EDUCOMP), 1. , 2021, On-line.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2021
.
p. 326-333.
DOI: https://doi.org/10.5753/educomp.2021.14500.