Abstract:Providing feedback on programming assignments is a tedious task for the instructor, and even impossible in large Massive Open Online Courses with thousands of students. Previous research has suggested that program repair techniques can be used to generate feedback in programming education. In this paper, we present a novel fully automated program repair algorithm for introductory programming assignments. The key idea of the technique, which enables automation and scalability, is to use the existing correct stu… Show more
This study investigated the essential of meaningful automated feedback for programming assignments. Three different types of feedback were tested, including (a) What's wrong -what test cases were testing and which failed, (b) Gapcomparisons between expected and actual outputs, and (c) Hinthints on how to fix problems if test cases failed. 46 students taking a CS2 participated in this study. They were divided into three groups, and the feedback configurations for each group were different: (1) Group One -What's wrong, (2) Group Two -What's wrong + Gap, (3) Group Three -What's wrong + Gap + Hint. This study found that simply knowing what failed did not help students sufficiently, and might stimulate system gaming behavior. Hints were not found to be impactful on student performance or their usage of automated feedback. Based on the findings, this study provides practical guidance on the design of automated feedback.
This study investigated the essential of meaningful automated feedback for programming assignments. Three different types of feedback were tested, including (a) What's wrong -what test cases were testing and which failed, (b) Gapcomparisons between expected and actual outputs, and (c) Hinthints on how to fix problems if test cases failed. 46 students taking a CS2 participated in this study. They were divided into three groups, and the feedback configurations for each group were different: (1) Group One -What's wrong, (2) Group Two -What's wrong + Gap, (3) Group Three -What's wrong + Gap + Hint. This study found that simply knowing what failed did not help students sufficiently, and might stimulate system gaming behavior. Hints were not found to be impactful on student performance or their usage of automated feedback. Based on the findings, this study provides practical guidance on the design of automated feedback.
“…Another common approach to feedback generation is clustering where students submissions having similar features are grouped together in clusters. The clusters are created either by using a fixed set of rules or by using machine learning techniques [16,18,5] or by using techniques based on program analysis [6,7,11,4,10]. The feedback is typically generated manually for a representative program in each cluster, and it is customized to other members of the cluster automatically.…”
With the widespread adoption of MOOCs in academic institutions, it has become imperative to come up with better techniques to solve the tutoring and grading problems posed by programming courses. Programming being the new 'writing', it becomes a challenge to ensure that a large section of the society is exposed to programming. Due to the gradient in learning abilities of students, the course instructor must ensure that everyone can cope up with the material, and receive adequate help in completing assignments while learning along the way. We introduce TipsC for this task. By analyzing a large number of correct submissions, TipsC can search for correct codes resembling a given incorrect solution. Without revealing the actual code, TipsC then suggests changes in the incorrect code to help the student fix logical runtime errors. In addition, this also serves as a cluster visualization tool for the instructor, revealing different patterns in user submissions. We evaluated the effectiveness of TipsC's clustering algorithm on data collected from previous offerings of an introductory programming course conducted at IIT Kanpur where the grades were given by human TAs. The results show the weighted average variance of marks for clusters when similar submissions are grouped together is 47% less compared to the case when all programs are grouped together.
“…These assignments were completed on a custom web-browser based IDE, which records all intermediate code attempts. This dataset has previously been used by multiple state-of-the-art repair tools in literature [19], [12], [8], [11].…”
Section: Student Code Repositorymentioning
confidence: 99%
“…Potential hardness (x-axis) of resolving an error-group plotted against potential performance improvement (y-axis) offered by our example generation tool. E7 expected ";" in "for" statement Example Feedback 3 for(i=0; i<n; i++) 3 for(i=1; i<=n; i++) (b) EG19 = {E7} Sample programs and top-2 example suggestions, for (a) EG 25 where students with access to TEGCER perform poorly, (b) EG19 where examples seems to work better.…”
We present TEGCER, an automated feedback tool for novice programmers. TEGCER uses supervised classification to match compilation errors in new code submissions with relevant pre-existing errors, submitted by other students before. The dense neural network used to perform this classification task is trained on 15000+ error-repair code examples. The proposed model yields a test set classification Pred@3 accuracy of 97.7% across 212 error category labels. Using this model as its base, TEGCER presents students with the closest relevant examples of solutions for their specific error on demand. A large scale (N > 230) usability study shows that students who use TEGCER are able to resolve errors more than 25% faster on average than students being assisted by human tutors.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.