We conducted a systematic literature review on automated grading and feedback tools for programming education. We analysed 121 research papers from 2017 to 2021 inclusive and categorised them based on skills assessed, approach, language paradigm, degree of automation, and evaluation techniques. Most papers assess the correctness of assignments in object-oriented languages. Typically, these tools use a dynamic technique, primarily unit testing, to provide grades and feedback to the students or static analysis techniques to compare a submission with a reference solution or with a set of correct student submissions. However, these techniques’ feedback is often limited to whether the unit tests have passed or failed, the expected and actual output, or how they differ from the reference solution. Furthermore, few tools assess the maintainability, readability, or documentation of the source code, with most using static analysis techniques, such as code quality metrics, in conjunction with grading correctness. Additionally, we found that most tools offered fully automated assessment to allow for near-instantaneous feedback and multiple resubmissions, which can increase student satisfaction and provide them with more opportunities to succeed. In terms of techniques used to evaluate the tools’ performance, most papers primarily use student surveys or compare the automatic assessment tools to grades or feedback provided by human graders. However, because the evaluation dataset is frequently unavailable, it is more difficult to reproduce results and compare tools to a collection of common assignments.
Many teachers experience serious problems when teaching object-orientation to beginners or professionals. Many of these problems could be overcome or reduced through the use of more appropriate tools. In this paper, we introduce BlueJ, an integrated development environment designed for teaching object-orientation, and discuss how the use of this tool can change the approach to teaching.
1 November 2010 in ACM Transactions on Computing Education
Greenfoot is an educational integrated development environment aimed at learning and teaching programming. It is aimed at a target audience of students from about 14 years old upwards, and is also suitable for college- and university-level education. Greenfoot combines graphical, interactive output with programming in Java, a standard, text-based object-oriented programming language. This article first describes Greenfoot and then goes on to discuss design goals and motivations, strengths and weaknesses of the system, and its relation to two environments with similar goals, Scratch and Alice.
Block-based programming systems, such as Scratch or Alice, are the most popular environments for introducing young children to programming. However, mastery of text-based programming continues to be the educational goal for students who continue to program into their teenage years and beyond. Transitioning across the significant gap between the two editing styles presents a difficult challenge in school-level teaching of programming. We propose a new style of program manipulation to bridge the gap: frame-based editing. Frame-based editing has the resistance to errors and approachability of block-based programming while retaining the flexibility and more conventional programming semantics of text-based programming languages. In this paper, we analyse the issues involved in the transition from blocks to text and argue that they can be overcome by using frame-based editing as an intermediate step. A design and implementation of a frame-based editor is provided.
1 November 2010 in ACM Transactions on Computing Education
This article distills a discussion about the goals, mechanisms, and effects of three environments which aim to support the acquisition and development of computing concepts (problem solving and programming) in pre-University and non-technical students: Alice, Greenfoot, and Scratch. The conversation started in a special session on the topic at the 2010 ACM SIGCSE Symposium on Computer Science Education and continued during the creation of the resulting Special Issue of the ACM Transactions on Computing Education.