C-BOT: a chatterbot prototype for teaching programming

Abstract


One factor that explains students' difficulties in programming is the abstract nature of programming concepts. In addition, students need to adapt to the different syntaxes of programming languages and understand how do code snippets relate to each other. Therefore, alternative approaches to teaching programming are necessary, especially in the early stages of learning. With this context in mind, this work aims to create a chatterbot prototype to assist in teaching programming in C. The chatterbot prototype developed, called C-BOT, is capable of sharing knowledge about programming concepts and test students' knowledge about the functionality of some algorithms.

Keywords: chatterbot, C programming language, teaching

References

Adamopoulou, E. and Moussiades, L. (2020). An overview of chatbot technology. Artificial Intelligence Applications and Innovations, pages 1–3.

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.
Published
2022-11-16
SOARES, João Eduardo Seffrin; DE FREITAS, Larissa Astrogildo. C-BOT: a chatterbot prototype for teaching programming. In: BRAZILIAN SYMPOSIUM ON COMPUTERS IN EDUCATION (SBIE), 33. , 2022, Manaus. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 1151-1162. DOI: https://doi.org/10.5753/sbie.2022.225711.