C-BOT: Um protótipo de chatterbot para o ensino de programação
Resumo
A natureza abstrata dos conceitos de programação se mostra como um dos fatores que explicam as dificuldades que muitos estudantes encontram na absorção destes conteúdos. Além disso, os estudantes precisam se adaptar as diferentes sintaxes das linguagens de programação e entender como trechos de código se relacionam. Logo, abordagens alternativas de ensino de programação, principalmente em estágios iniciais, são necessárias. Tendo em vista este contexto, o objetivo deste trabalho é desenvolver um protótipo de chatterbot para auxiliar no ensino de programação na linguagem C. O protótipo de chatterbot desenvolvido, denominado C-BOT, é capaz de fornecer conhecimento sobre programação e testar os conhecimentos do usuário sobre o funcionamento de alguns algoritmos.
Referências
Bennedsen, J. (2008). Teaching and learning introductory programming: a model-based approach. Editora desconhecida, Denmark.
Bocklisch, T., Faulkner, J., Pawlowski, N., and Nichol, A. (2017). Rasa: Open source language understanding and dialogue management. NIPS 2017 Conversational AI workshop, pages 1–8.
Clarizia, F., Colace, F., Lombardi, M., Pascale, F., and Santaniello, D. (2018). An education support system for student. in international symposium on cyberspace safety and security. Cyberspace Safety and Security, pages 2–3.
Crow, T., Luxton-Reilly, A., and Wuensche, B. (2018). Intelligent tutoring systems for programming education: a systematic review. Australasian Computing Education Conference, pages 1–3.
Daradoumis, T., Puig, J. M. M., Arguedas, M., and Li ̃nan, L. C. (2016). Analyzing students perceptions to improve the design of an automated assessment tool in online distributed programming. Computers and Education, Spain.
Daud, S. H. M., Teo, N. H. I., and Zain, N. H. M. (2020). e-java chatbot for learning programming language: A post-pandemic alternative virtual tutor. International Journal of Emerging Trends in Engineering Research, pages 1–6.
Eom, S. and Ashill, N. (2016). The determinants of students’ perceived learning outcomes and satisfaction in university online education: An update. Decision Sciences Journal of Innovative Education, pages 3–5.
Epp, S. (2019). Discrete Mathematics with Applications. ISBN, USA.
Fryer, L. and Carpenter, R. (2006). Bots as language learning tools. Language, Learning and Technology, pages 1–4.
Garnier, R. (2009). Discrete Mathematics:Proofs, Structures and Applications. CRC Press, USA.
H, H. T. and Ronald, L. (2009). Introduction to Algorithms. The MIT Press, USA.
Hoare, C. A. R. (1962). Quicksort. The Computer Journal, pages 1–8.
Hobert, S. (2019). Say hello to ‘coding tutor’! design and evaluation of a chatbot-based learning system supporting students to learn to program. Fortieth International Conference on Information Systems, pages 1–7.
Hobert, S. and von Wolff, R. M. (2019). Say hello to your new automated tutor – a structured literature review on pedagogical conversational agents. 14th International Conference on Wirtschafts informatik, pages 1–7.
Jenkins, T. (2002). On the Difficulty of Learning to Program. Computers and Education, Massachusetts.
Knuth, D. (1997). The Art of Computer Programming. American Scientist, USA.
Kuhail, A., Negreiros, M., and Seffah, J. (2021). Teaching recursive thinking using unplugged activities. Jornal desconhecido, pages 2–3.
Okonkwo, C. W. and Ade-Ibijola, A. (2021). Python-bot: A chatbot for teaching python programming. Engineering Letters, pages 1–6.
Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M., and Paterson, J. (2009). A survey of literature on the teaching of introductory programming. ACM SIGCSE, pages 1–2.
Pfaff, B. (2004). An Introduction to Binary Search Trees and Balanced Trees. Free Software Foundation, Inc., USA.
Ramesh, K., Ravishankaran, S., Joshi, A., and Chandrasekaran, K. (2017). A survey of design techniques for conversational agents. Communications in Computer and Information Science, pages 1–2.
Ruan, S. and Kun, B. J. (2019). Quizbot: A dialogue-based adaptive learning system for factual knowledge. CHI Conference on Human Factors in Computing Systems, pages 2–3
Saccaro, A., França, M. T. A., and Jacinto, P. A. (2019). Fatores associados à evasão no ensino superior brasileiro: um estudo de análise de sobrevivência para os cursos das áreas de ciência, matemática e computação e de engenharia, produção e construção em instituições públicas e privadas. Estudos Econômicos (São Paulo), pages 1–3.
Sim, T. Y. and Lau, S. L. (2018). Online tools to support novice programming: A systematic review. IEEE Conference on e-Learning, e-Management and e-Services (IC3e), pages 2–3.
Sinha, S. and Basak, S. (2020). An educational chatbot for answering queries. in emerging technology in modelling and graphics. Springer, pages 1–5.
Stroustrup, B. (2013). The C++ Programming Language. Addison-Wesley, Germany.
Su, M., Wu, C., and Wang, H. (2020). A chatbot using lstm-based multi-layer embedding for elderly care. 2017 International Conference on Orange Technologies, pages 1–2.
Technologies, B. G. (2016). Beyond point and click: The expanding demand for coding skills.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, L., and Polosukhin, I. (2017). Attention is all you need. Cornell University, pages 1–15.
Weisstein, E. (2021). Binary search. MathWorld, USA.
Xuan, P., Pham, T., Quynh, N., Thanh, N., and Thi, C. (2018). Chatbot as an intelligent personal assistant for mobile language learning. ICEEL 2018, pages 1–9.