Automated Computer Program Evaluation and Projects -- Our Experiences

Bama Srinivasan,Mala Nehru,Ranjani Parthasarathi,Saswati Mukherjee,Jeena A Thankachan
2024-04-06
Abstract:This paper provides a few approaches to automating computer programming and project submission tasks, that we have been following for the last six years and have found to be successful. The approaches include using CodeRunner with Learning Management System (LMS) integration for programming practice and evaluation, and Git (GitHub) for project submissions and automatic code evaluation. In this paper, we describe the details of how we set up the tools and customized those for computer science courses. Based on our experiences, we also provide a few insights on using these tools for effective learning.
Software Engineering,Programming Languages
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the inefficiency and manual operation problems existing in traditional programming courses and project submission processes. Specifically, the author points out the following challenges: 1. **Programming environment setup**: In traditional programming laboratories, teachers need to spend a great deal of time setting up environments suitable for different programming languages. 2. **Code logic verification**: Teachers need to check the code logic written by students one by one to ensure its correctness. 3. **Debugging assistance**: When students encounter logical or grammatical errors, teachers need to provide help for debugging. 4. **Manual evaluation**: Teachers need to manually check the code execution of each student and give feedback and scores. These problems are particularly prominent in large - class teaching. For example, when there are 60 students in a class, it is almost impossible for teachers to complete all tasks within a limited time. To solve the above problems, the author introduced automated program evaluation and project submission tools, mainly including: - **CodeRunner (CR)**: An automated tool for programming practice and evaluation, which supports multiple programming languages (such as C, C++, Java, Python, etc.) and is integrated with the learning management system (LMS). - **GitHub Classroom (GHC)**: A tool for project submission and automatic code evaluation, which supports team collaboration and version control. By using these tools, the author has achieved the following improvements: - **Reduce manual operations**: Teachers no longer need to check the code output of students one by one, and all evaluations are automated. - **Immediate feedback**: Students can immediately see whether their code passes the test cases and make adjustments according to the feedback. - **Support multiple languages**: There is no need to set up an environment separately for each programming language, and one platform can support multiple languages. - **Promote collaboration**: Through GHC, students can collaborate on project development in a team environment, and teachers can track the progress in real - time and provide feedback. In general, this paper aims to improve the teaching efficiency and quality of programming courses by introducing automated tools, reduce the workload of teachers, and provide students with a better learning experience.