Student programming assignments are a foundation of most computer science courses. Programming assignments allow students to engage with course concepts and develop their programming skills. As a student moves through their computer science courses, it can be easy to focus on whether each program performs its desired function, without thinking about their work's overall quality (documentation, style, and functionality). Specification grading is one method that attempts to solve this problem by requiring students to meet a set of standards for each assignment that focuses on the overall quality of the work, which can include programming style, functionality, and documentation. In this paper, we discuss the implementation of specifications grading to motivate students to write high-quality programs.
We applied specifications-based grading to the third course in the introductory computer science sequence. In our course, each programming assignment is graded as “Excellent,” “Meets Expectations,” “Revisions Needed,” and “Not Gradable.” Grades are based on a clearly defined set of criteria focused on functionality (does the program do the right thing) and quality (does the program have a logical flow, is it well documented, etc.). A student must meet most or all the criteria to receive a grade at the “Excellent” or “Meets Expectations” level. Students are encouraged to revise and resubmit their work until it reaches the “Meets Expectations” level. Final grades are based on exam scores and the number of programming projects completed at the “Excellent” or “Meets Expectations” level.
In creating this grading system, we hoped to achieve two goals: 1) motivate students to produce high-quality programs by making style, logic, and documentation a fundamental part of their grades, and 2) lower student stress and reduce cheating by removing late penalties and allowing for revision and resubmission. At the same time, the grading system has some inherent risks. Removing late penalties and allowing for resubmissions could lead to student procrastination, especially with first-year students who are still developing their time management skills. In addition, we were still determining how many resubmissions would be submitted and how this would increase the grading workload.
This paper presents preliminary results using this grading system in Fall 2024 with 90 students. To assess the impact of the grading system on students, we analyze students' submission and resubmission patterns and relate their persistence with the material to their overall course grades. We also compare the quality of the final project to projects submitted in prior years to see if students in the specifications-based system produce higher quality work. We discuss the impact of resubmission on academic integrity and the time needed to grade resubmissions. Finally, we discuss the challenges of applying this system in a 7-week term and our plans to implement this system in larger enrollment sections of the same course.
The full paper will be available to logged in and registered conference attendees once the conference starts on June 22, 2025, and to all visitors after the conference ends on June 25, 2025