CodeTesting: Programming Logic Teaching Support System

  • Ester Mabel Catholic University of Salvador
  • Joaldo Tavares Catholic University of Salvador
  • Yla Buri Catholic University of Salvador
  • Mario Pereira Catholic University of Salvador

Abstract


The discipline of programming logic presents a great difficulty for some students. These difficulties may be associated with the challenge of interpreting the proposed problem, difficulty with the language used, or even problems interpreting errors that occur during solution development. Additionally, often teachers do not have time during class to individually correct and evaluate each student's solution [6]. Some people have a frustrating experience in their first encounter with programming for various reasons. Some of these reasons include excessive concern with syntax details of the language used and lack of clarity about the problem to be solved, which prevents the construction and mapping of an appropriate solution. This can result in obstacles that hinder learning in programming-related disciplines [7], turning the effort exerted in building solutions into an additional challenge. Higher education courses in computer science that have programming as their foundation, such as Object-Oriented Programming, Data Structures and Programming Logic, and Algorithms, have faced issues with dropouts and failures in the early periods. This situation directly affects the results of educational systems, both in public and private institutions. Unfortunately, many students start these courses but do not complete them, resulting in an investment of resources that does not generate returns for society [5]. After evaluating the difficulties faced by students in computer science courses, there is a need for new methodologies and tools that can help them during the initial learning periods [4]. In this context, a solution is proposed that can assist both beginner programming students and teachers through code correction and evaluation. Most of these systems are presented as online judges, with their main functionality being the execution of code and based on tests to verify if they have been met. One of the most recurrent in the literature is BOCA [3], used in the programming marathon of the Brazilian Computing Society (SBC), but others like Beecrowd [2] and Neps [1] can also be mentioned. The developed platform aims to offer a web and mobile application that assists in the teaching and learning of programming logic, using the Java programming language. The idea is to make learning more accessible and interactive on mobile devices and computers with internet access. The web and mobile application allows the tool to be accessible on different devices and platforms, reaching a wider audience. It distinguishes itself from online judges by its flexibility in terms of functionalities and how it handles errors, providing feedback in a simple and direct language. Code Testing allows teachers to register tasks, where test cases with inputs that will be used to test the code and the expected output for that test are inserted. Each test case will be executed using the code submitted by the student to evaluate if the solution meets the expected output. It also allows students to access the activity, view the statement, as well as some input and output examples, and finally submit their solution. After submission, students are also able to analyze the result obtained from the submitted question. They have access to the overall grade and test cases, where they can better understand how their code performed in that scenario. If the code is successfully compiled, each executed test case can generate one of the following three scenarios: • Correct Answer: when the submitted code returns the expected result for the test case. • Wrong Answer: when the submitted code returns a result different from the expected one. • Runtime Error: when the submitted code returns an exception, in which case more details about the specific exception are provided. Within this context, a functional tool is presented for application and code correction for students and teachers, with the main aim of collaborating in the learning process and the development of solutions for problems within programming disciplines. This system is an alternative among various existing solutions.

Keywords: Programming Logic, Automated Testing, Platform

References

Neps Academy. (2022). Sobre nós. https://neps.academy/br/about-us

Jean Luca Bez. 2014. URI ONLINE JUDGE E A INTERNACIONALIZAÇÃO DA UNIVERSIDADE. Vivências: Revista Eletrônica de Extensão da URI 10, 18, 237–249.

Cassio P. de Campos and Carlos E. Ferreira. [n.d.]. BOCA: um sistema de apoio a competicõoes de programação.

Crediné Silva de Menezes, Orivaldo de Lira Tavares, Rosane Aragón de Nevado, and Davidson Cury. [n.d.]. Computer Supported Co-Operative Systems to Support the Problem Solving - A Case Study of Learning Computer Programming.

Lucia Maria Martins Giraffa and Michael da Costa Mora. 2013. Evasão na disciplina de algoritmo e programação: um estudo a partir dos fatores intervenientes na perspectiva do aluno. Tercera Conferencia Latinoamericana sobre el abandono en la Educación Superior, 1–9.

André Luís Alice Raabe and Júlia Marques Carvalho da Silva. 2005. Um Ambiente para Atendimento as Dificuldades de Aprendizagem de Algoritmos. XIII Workshop de Educação em Computação, 1–11.

Silvério Sirotheau, Silvana Rossy de Brito, Aleksandra do Socorro da Silva, Marianne Kogut Eliasquevici, Eloi Luiz Favero, and Orivaldo de Lira Tavares. 2012. Aprendizagem de iniciantes em algoritmos e programação: foco nas competências de autoavaliação.
Published
2023-04-24
MABEL, Ester; TAVARES, Joaldo; BURI, Yla; PEREIRA, Mario. CodeTesting: Programming Logic Teaching Support System. In: NEW IDEAS LAB - BRAZILIAN SYMPOSIUM ON COMPUTING EDUCATION (EDUCOMP), 3. , 2023, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 22-23. ISSN 3086-0741. DOI: https://doi.org/10.5753/educomp_estendido.2023.229141.