M. Najimi, S. Yazdani, M. Ahmadzadeh
Automated grading tools play a crucial role in programming education by ensuring consistent evaluation, providing real-time feedback, and fostering student engagement. This paper presents a Java-based auto-grading system, Gradify, specifically designed to support programming courses. The system incorporates two distinct graphical user interfaces (GUIs): one for students and one for instructors, ensuring controlled access to resources and maintaining confidentiality. Students can submit their code and receive a grade and detailed feedback without accessing the actual test cases, preserving the integrity of course materials. A key pedagogical advantage of this system lies in its support for scaffolded learning, a structured approach that progressively builds student competency. By allowing students to test their code incrementally against a hierarchy of test cases, starting with basic cases and advancing to more complex ones, the system facilitates a gradual learning curve. This structured feedback mechanism encourages students to refine their understanding step by step, reinforcing conceptual clarity and reducing cognitive overload. Moreover, real-time feedback during the learning process, rather than merely at final submission, fosters active engagement, self-correction, and iterative learning. Such an approach mitigates the common issue of students focusing solely on grades instead of conceptual mastery. By continuously guiding students in debugging and improving their code, the system nurtures problem-solving skills and promotes independent learning, aligning with best practices in computer science education. From an instructor’s perspective, the system streamlines grading by allowing batch processing of student submissions and storing test cases as binary large objects (BLOBs) in a database, enabling cross-course applicability. Instructors can efficiently upload a batch of student submissions, which the system processes simultaneously, ensuring scalability for large classes. Each submission is systematically evaluated against predefined test cases, generating detailed individual reports while compiling a comprehensive summary of student performance, including grades, error diagnostics, and statistical insights. This framework enables educators to detect coding errors, track student progress, and refine teaching strategies based on data-driven analysis. A key feature of the system is its robustness in handling edge cases, such as infinite loops and compilation errors, ensuring uninterrupted grading. By integrating automated, formative assessment with structured learning pathways, this tool significantly improves both student engagement and instructor efficiency in programming courses.
Keywords: Automated Grading System, Scaffolded Learning, Programming Education, Code Evaluation.