José Carlos Paiva

Dr. José Carlos Paiva

Centro de Inovação Pedagógica, Instituto Politécnico do Porto, Porto, Portugal
orcid

Research Focus & Metrics

Academic Career Length

12Years (2015-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
9 June 2022 in ACM Transactions on Computing Education
Verified
Journal Article
Open access
José Carlos PaivaJosé Carlos Paiva
José Carlos Paiva
José Paulo LealJosé Paulo Leal
José Paulo Leal
ÁFÁlvaro Figueira
Álvaro Figueira
Practical programming competencies are critical to the success in computer science (CS) education and go-to-market of fresh graduates. Acquiring the required level of skills is a long journey of discovery, trial and error, and optimization seeking through a broad range of programming activities that learners must perform themselves. It is not reasonable to consider that teachers could evaluate all attempts that the average learner should develop multiplied by the number of students enrolled in a course, much less in a timely, deep, and fair fashion. Unsurprisingly, exploring the formal structure of programs to automate the assessment of certain features has long been a hot topic among CS education practitioners. Assessing a program is considerably more complex than asserting its functional correctness, as the proliferation of tools and techniques in the literature over the past decades indicates. Program efficiency, behavior, and readability, among many other features, assessed either statically or dynamically, are now also relevant for automatic evaluation. The outcome of an evaluation evolved from the primordial Boolean values to information about errors and tips on how to advance, possibly taking into account similar solutions. This work surveys the state of the art in the automated assessment of CS assignments, focusing on the supported types of exercises, security measures adopted, testing techniques used, type of feedback produced, and the information they offer the teacher to understand and optimize learning. A new era of automated assessment, capitalizing on static analysis techniques and containerization, has been identified. Furthermore, this review presents several other findings from the conducted review, discusses the current challenges of the field, and proposes some future research directions.

11 July 2016
Verified
Conference Paper
Open access
José Carlos PaivaJosé Carlos Paiva
José Carlos Paiva
José Paulo LealJosé Paulo Leal
José Paulo Leal
Ricardo QueirósRicardo Queirós
Ricardo Queirós
This paper presents Enki, a web-based IDE that integrates several pedagogical tools designed to engage students in learning programming languages. Enki achieves this goal (1) by sequencing educational resources, either expository or evaluative, (2) by using gamification services to entice students to solve activities, (3) by promoting social interaction and (4) by helping students with activities, providing feedback on submitted solutions. The paper describes Enki, its concept and architecture, details its design and implementation, and covers also its validation.

10 January 2023 in Data in Brief
Verified
Journal Article
Open access
José Carlos PaivaJosé Carlos Paiva
José Carlos Paiva
José Paulo LealJosé Paulo Leal
José Paulo Leal
Alvaro FigueiraAlvaro Figueira
Alvaro Figueira
Learning how to program is a difficult task. To acquire the required skills, novice programmers must solve a broad range of programming activities, always supported with timely, rich, and accurate feedback. Automated assessment tools play a major role in fulfilling these needs, being a common presence in introductory programming courses. As programming exercises are not easy to produce and those loaded into these tools must adhere to specific format requirements, teachers often opt for reusing them for several years. Therefore, most automated assessment tools, particularly Mooshak, store hundreds of submissions to the same programming exercises, as these need to be kept after automatically processed for possible subsequent manual revision. Our dataset consists of the submissions to 16 programming exercises in Mooshak proposed in multiple years within the 2003-2020 timespan to undergraduate Computer Science students at the Faculty of Sciences from the University of Porto. In particular, we extract their code property graphs and store them as CSV files. The analysis of this data can enable, for instance, the generation of more concise and personalized feedback based on similar accepted submissions in the past, the identification of different strategies to solve a problem, the understanding of a student's thinking process, among many other findings.

19 January 2022 in Information
Verified
Journal Article
Open access
PDF file
José Carlos PaivaJosé Carlos Paiva
José Carlos Paiva
Ricardo QueirósRicardo Queirós
Ricardo Queirós
José Paulo LealJosé Paulo Leal
José Paulo Leal
Jakub SwachaJakub Swacha
Jakub Swacha
FMFilip Miernik
Filip Miernik
E-learning tools are gaining increasing relevance as facilitators in the task of learning how to program. This is mainly a result of the pandemic situation and consequent lockdown in several countries, which forced distance learning. Instant and relevant feedback to students, particularly if coupled with gamification, plays a pivotal role in this process and has already been demonstrated as an effective solution in this regard. However, teachers still struggle with the lack of tools that can adequately support the creation and management of online gamified programming courses. Until now, there was no software platform that would be simultaneously open-source and general-purpose (i.e., not integrated with a specific course on a specific programming language) while featuring a meaningful selection of gamification components. Such a solution has been developed as a part of the Framework for Gamified Programming Education (FGPE) project. In this paper, we present its two front-end components: FGPE AuthorKit and FGPE PLE, explain how they can be used by teachers to prepare and manage gamified programming courses, and report the results of the usability evaluation by the teachers using the platform in their classes.

24 October 2020 in Information
Verified
Journal Article
Open access
PDF file
José Carlos PaivaJosé Carlos Paiva
José Carlos Paiva
José Paulo LealJosé Paulo Leal
José Paulo Leal
Ricardo QueirósRicardo Queirós
Ricardo Queirós
Loss of motivation is one of the most prominent concerns in programming education as it negatively impacts time dedicated to practice, which is crucial for novice programmers. Of the distinct techniques introduced in the literature to engage students, gamification, is likely the most widely explored and fruitful. Game elements that intrinsically motivate students, such as graphical feedback and game-thinking, reveal more reliable long-term positive effects, but those involve significant development effort. This paper proposes a game-based assessment environment for programming challenges, built on top of a specialized framework, in which students develop a program to control the player, henceforth called Software Agent (SA). During the coding phase, students can resort to the graphical feedback demonstrating how the game unfolds to improve their programs and complete the proposed tasks. This environment also promotes competition through competitive evaluation and tournaments among SAs, optionally organized at the end by the teacher. Moreover, the validation of the effectiveness of Asura in increasing undergraduate students’ motivation and, consequently, the practice of programming is reported.

1 July 2019
Verified
Conference Paper
Closed access
JSJakub Swacha
Jakub Swacha
Ricardo QueirósRicardo Queirós
Ricardo Queirós
José Carlos PaivaJosé Carlos Paiva
José Carlos Paiva
Computer programming is a difficult subject that can only be mastered with lots of practice. It is therefore of primary importance to rise and retain students' engagement during a programming course, a task in which gamification has been proven as a competent method. Even though there are numerous reports on applying gamification to programming courses, there are no available open resources or dedicated platforms that could be used by programming teachers to gamify their courses, meeting both the requirements of being easy to adopt and leaving the decisions on the scope of the course and the level of gamification to the teachers themselves. In order to fulfill this gap, a consortium of four European institutions initiated a common project to develop open gamified programming exercises and interactive course materials for popular programming languages. In this paper, we report the results of the first stage of this work, which defined the range of gamification concepts to be covered within the developed framework and its evaluation by students.