An Online System for Enhancing Students' Programming Skills
CUHK(SZ) has offered several UG and PG courses (e.g., CSC1001, CSC1003, CSC2003, CSC3002, CSC3100, CSC6001, and DDA6050) to teach student’s programming skills and over 1,000 students will select these courses each year. In the assignments of these courses, students are often asked to solve some problems by writing programs. Most of the programming assignments are often manually graded by teaching assistants (TAs), which not only involves huge amount of labor work, but also gives little comprehensive feedback or opportunities for students to correct their mistakes since TAs only provide scores.
To address the above issues and foster coding practice, we initiated an online judge system by borrowing an open-source tool for automatically grading programs in 2022, which is called SchOJ (http://oj.cuhk.edu.cn/). We have received very positive feedback from both students and professors, since it significantly reduces TAs’ workload. Moreover, it gives students a lot of feedback/hints when the submitted programs cannot give correct answers, so the students know how to improve the codes, thereby enhancing the practice. Nevertheless, it still has several serious issues: (1) SchOJ does not provide the function of code plagiarism, but around 10% of students copy assignments from others, leading to the academic integrity issue; (2) Many students request us to prepare more exercise program problems there so that they can practice more; (3) SchOJ can only grade a single program each time, so it cannot produce a report for all the students in the class, which will be useful when uploading scores to CUHK-SZ Blackboard. Thus, we propose to develop an enhanced system for enhancing students’ programming skills by tackling these three issues.