Week 3 (6/03/24 - 6/07/24)
This week was more focused on working and completing my first individual autograder. This autograder was for a lab focused on students creating art output using a while loop. I noticed many things while working on this autograder. This included things like the different types of errors students could make, changes to lab instructions to be more open-ended, and how autograders are constantly changing. There were a large number of edge cases that were brought up in our meetings for this week. I was able to address all of these edge cases and moved the code for this autograder into peer review. I was able to complete peer review and move the code into faculty review. I have also read two papers this week more focused on different types of autograders.
- Automatic Assessment of Programming assignment by Surendra Gupta and Shiv Kumar Dubey
This paper focused on designing a new approach to designing an autograder. Typical autograders will run certain test cases by providing specific inputs to a student’s code and expecting a certain output. However, this paper proposes an inverse approach to grading student’s programs. The approach takes the student’s ouput and uses it as input to a verification program. If the verification program produces the correct output, then the student’s program is deemed correct. The researchers tested this verification program on an introductory programming course in C and noticed favorable results. However, the assignments used were pretty basic, which is a limitation of the study.
- The Marmoset project: an automated snapshot, submission, and testing system by Jaime Spacco, William Pugh, Nat Ayewah, and David Hovemeyer.
This paper focused on presenting a new framework for student submissions that would be more beneficial. The approach proposed in this paper was to store snapshots of each student submissions but also limit their submissions. Students would be given 2-3 tokens (submissions) for each assignment. Upon using a token, it would take roughly 24 hours for a new one to be given, which encourages students to start and submit early. Also, the autograder only presented the name of the first two errors of a student’s program, which encouraged students to try and find the bugs on their own. This approach is meant to move students away from the trail and error approach which can be beneficial in some cases.