BOCADE: Improving the User Experience (UX) of Competitive Programming Contestants with a Visual Studio Code Extension

  • Luiz Gustavo Albuquerque dos Santos Instituto Federal Goiano
  • Fabíola G. C. Ribeiro Instituto Federal Goiano
  • Kenia S. de Oliveira Instituto Federal de Brasília

Resumo


The BOCA programming contest management system provides a web interface for contestants. Moreover, contestants use standard code editors to develop their code. However, these editors are not optimized for the specific context of use of competitive programming. Therefore, in this paper, we present BOCADE, an extension for Visual Studio Code with the following functionalities: built-in BOCA interface and PDF viewer, automated test cases extraction and execution panel, and a mechanism for quick workspace organization. To evaluate the extension, two usability tests were conducted — a formative and a summative. The results suggests that the extension provides a superior UX for competitive programming contestants compared to the traditional setup.

Referências

Adithya, V. C. (2011). Security sandboxing for PCˆ 2. PhD thesis, California State University, Sacramento.

Agrawal, D. (2020a). Competetive Programming Helper. [link].

Agrawal, V. (2020b). compile-run. [link].

Algar Telecom (2012). Roteiro para configuração de minimaratona de programação. [link].

Audrito, G., Ciobanu, M., Laura, L., et al. (2023). Giochi di fibonacci: Competitive programming for young students. Olympiads in Informatics, pages 19–31.

bin Uzayr, S. (2022). Mastering Visual Studio Code: A Beginner’s Guide. CRC Press.

Cheah, C. S. (2020). Factors contributing to the difficulties in teaching and learning of computer programming: A literature review. Contemporary Educational Technology, 12(2):ep272.

Combéfis, S. and Wautelet, J. (2014). Programming trainings and informatics teaching through online contests. Olympiads in Informatics, 8.

Coore, D. and Fokum, D. (2019). Facilitating course assessment with a competitive programming platform. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, pages 449–455.

de Campos, C. P. and Ferreira, C. E. (2004). BOCA: um sistema de apoio a competições de programação. In Workshop de Educação em Computação. Sociedade Brasileira de Computação.

do Carmo Nogueira, T., de Souza Campos, E., and Ferreira, D. J. (2018). Cognition developing of computer higher education students through gamification in the algorithm teaching-learning process. In Anais do XXVI Workshop sobre Educação em Computação. SBC.

DOMjudge (2024). DOMjudge – About the project. [link].

dos Santos, L. G. A. (2024). BOCA: funcionalidades. [link].

Flórez, F. B., Casallas, R., Hernández, M., Reyes, A., Restrepo, S., and Danies, G. (2017). Changing a generation’s way of thinking: Teaching computational thinking through programming. Review of Educational Research, 87(4):834–860.

Ganorkar, C. S. (2017). PC2 web team interface. ScholarWorks.

Glez-Peña, D., Lourenço, A., López-Fernández, H., Reboiro-Jato, M., and Fdez-Riverola, F. (2014). Web scraping technologies in an API world. Briefings in bioinformatics, 15(5):788–797.

ICPC Foundation (2024). The ICPC International Collegiate Programming Contest. [link].

International Organization for Standardization (ISO) (2018). Ergonomics of human-system interaction—part 11: Usability: Definitions and concepts (iso 9241-11: 2018).

jsdom (2024). jsdom. [link].

Kostadinov, B., Jovanov, M., and Stankov, E. (2010). A new design of a system for contest management and grading in informatics competitions. ICT Innovations Conference 2010.

Kurtanović, Z. and Maalej, W. (2017). Automatically classifying functional and non-functional requirements using supervised machine learning. In 2017 IEEE 25th International Requirements Engineering Conference (RE), pages 490–495. Ieee.

Lewis, J. R. (2018). The system usability scale: Past, present, and future. International Journal of Human–Computer Interaction, 34(7):577–590.

Lima, A. L. d. S. and Benitti, F. B. V. (2021). Usabilityzero: Can a bad user experience teach well?. Informatics in Education, 20(1):69–84.

Lima, D. T., Moura, F. R. T., Alves, A. V. N., de Moura Parracho, T., Zacarias, R. O., dos Santos, R. P., and da Rocha Seruffo, M. C. (2022). Ux-tracking: Web and multimodal tool for user experience evaluation. In Anais Estendidos do XXVIII Simpósio Brasileiro de Sistemas Multimídia e Web, pages 107–110. SBC.

Maggiolo, S. and Mascellani, G. (2012). Introducing CMS: a contest management system. Olympiads in Informatics, 6:86–99.

Majumdar, A. (2017). MacACM: Encouraging competitive programming via mentorship and outreach. XRDS: Crossroads, The ACM Magazine for Students, 24(1):14–15.

Meta Open Source (2024). React. [link].

Microsoft (2024a). TypeScript. [link].

Microsoft (2024b). Visual Studio Code. [link].

Microsoft (2024c). Webview UI Toolkit for Visual Studio Code. [link].

Morais, W. B. and Ribas, B. C. (2019). Maratona-Linux: um ambiente para a Maratona de Programação. Anais do Computer on the Beach, pages 416–426.

Moreno, J. and Pineda, A. F. (2018). Competitive programming and gamification as strategy to engage students in computer science courses. Revista ESPACIOS, 39(35).

Murty, R. N., Dadlani, S., and Das, R. B. (2022). How much time and energy do we waste toggling between applications? Harvard Business Review. [link].

Pham, M. T. and Nguyen, T. B. (2019). The DOMJudge based online judge system with plagiarism detection. In 2019 IEEE-RIVF International Conference on Computing and Communication Technologies (RIVF), pages 1–6. IEEE.

Piekarski, A. E., Miazaki, M., Hild, T., Mulati, M. H., and Kikuti, D. (2015). A metodologia das maratonas de programação em um projeto de extensão: um relato de experiência. In Anais dos Workshops do Congresso Brasileiro de Informática na Educação, volume 4, page 1246.

Riihiaho, S. (2018). Usability testing. The Wiley handbook of human computer interaction, 1:255–275.

Rodrigues, L. and Isotani, S. (2023). When personalized gamification meets computing education: A multidimensional approach to motivate students to learn. In Anais do XXXVI Concurso de Teses e Dissertações, pages 50–59. SBC.

Sentance, S. and Csizmadia, A. (2017). Computing in the curriculum: Challenges and strategies from a teacher’s perspective. Education and information technologies, 22:469–495.

Silva, T. R. d. M. B., Braga, G., Silva, M. A. L., Araújo, M., et al. (2023). Maratonando! inspirando e capacitando programadores com diversidade de gênero e variedade de competições. In Anais do XVII Women in Information Technology, pages 346–351. SBC.

Singer-Vine, J. (2024). pdfplumber. [link].

Stack Overflow (2023). Stack overflow developer survey 2023. [link].

Tenório, T. and Bittencourt, I. I. (2016). A gamified peer assessment model for on-line learning environments: An experiment with MeuTutor. In Anais do XXIX Concurso de Teses e Dissertações, pages 381–386. SBC.

Tomoki, M. (2023). vscode-pdf. [link].

Verma, R. (2020). Visual Studio Extensibility Development. Springer.

Xia, B. S. (2017). A pedagogical review of programming education research: what have we learned. International Journal of Online Pedagogy and Course Design (IJOPCD), 7(1):33–42.

Yuen, K. K., Liu, D. Y., and Leong, H. V. (2023). Competitive programming in computational thinking and problem solving education. Computer Applications in Engineering Education, 31(4):850–866.

Zhan, Z., He, L., Tong, Y., Liang, X., Guo, S., and Lan, X. (2022). The effectiveness of gamification in programming education: Evidence from a meta-analysis. Computers and Education: Artificial Intelligence, 3:100096.
Publicado
04/11/2024
SANTOS, Luiz Gustavo Albuquerque dos; RIBEIRO, Fabíola G. C.; OLIVEIRA, Kenia S. de. BOCADE: Improving the User Experience (UX) of Competitive Programming Contestants with a Visual Studio Code Extension. In: SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA EDUCAÇÃO (SBIE), 35. , 2024, Rio de Janeiro/RJ. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 1099-1113. DOI: https://doi.org/10.5753/sbie.2024.241858.