Mohamed Ashraf, Abdelrahman Sayed, Mohammed Tarek, Abdelrahman Sayed
January 5, 2022
Since the 1960s, tools to assist students in learning programming have been created. Such technologies simplify the programming environment, employ visualization or animation to provide greater understanding into executing a program, help students towards the proper program through suggestions and feedback messages, or automatically grade student answers. The following are two compelling reasons to create tools that aid in the learning of programming: Learning programming is difficult, and students require assistance to progress. Programming courses are taken by thousands of students worldwide, and helping individuals personally with their challenges necessitates a significant time investment on the part of professors. Feedback is a crucial aspect in learning. Feedback is “the process through which learners get information about their work in order to fully understand the similarities and differences.”
1.1 Purpose of this document
Computer programming is always a challenge for students in basic programming classes. Every semester, a substantial percentage of students fail due to a lack of programming skills. No one can learn to program in a day since it requires both proper supervision and regular practice with programming tasks. Instructors’ involvement in the development of students’ learning skills are crucial in providing feedback on flaws and increasing students’ knowledge as a result. On the other hand, due to the large number of students, teachers are overworked and unable to focus on each student’s flaws. To address these issues, Zahid Ullah et al have developed a number of Automatic Assessment (AA) systems that not only assess students’ programs but also provide immediate feedback on flaws, easing the strain on teachers. It is hard to include all of the existing systems in a single study due to the enormous number of them. As a result, this document studying Evalseer Automated Assessments Tool.
1.2 Scope of this document
This document provides the detailed functional and non-functional requirements, as well as the main functionalities of our system, such as analyzing the student’s code. It will also provide detailed descriptions of the system’s architecture, methods, and the various stages it goes through.
1.3 System Overview
Evalseer consists of multiple components which are used to monitor students’ performance and to provide an automated formative feedbacks on their submissions and reports. All generated data are stored to track performance level of each student
1.4 System Scope
• EvalSeer shall provide students with rapid, detailed and individualized feedback on their programming projects in order to help them address their deficiencies.
• EvalSeer shall evaluate the following assignment components: compilation, style, syntax mistakes, plagiarism percentage, logic, and feature test.
• EvalSeer shall provide ongoing challenges that make advantage of automated evaluation to generate current visual insights about learners’ progress
• EvalSeer shall offer a gamified environment includes a leaderboard, badges, and score-based assignments (coding and peer-review), so that learners shall be rewarded points based on their performance.
• Evalseer shall be able to generate test cases for the instructors on assignments they create automatically.
• Evalseer shall support the evaluation of other courses like Algorithms and OOP (object oriented programming ) that use language like JAVA .
• EvalSeer shall rank the students on a leaderboard based on their score grades, and the top students shall get rewards.
• Syntax Errors: Using the LSTM network, the system should detect possible syntax mistakes and provide a repair, backed up by an example and explanation with sources.
• Style Check: Cpplint, a Google-developed tool, shall be used to examine the C++ code style.
• Logic Check: Applying dynamic test cases The system shall validate the student’s code by running test cases against it using the instructor’s inputs and expected outputs.
• Feature Test: The system shall check for teacher-supplied characteristics such as loops and conditions, as well as any unique features in the student’s code.
• Plagiarism check: By comparing all students’ solutions, JPlag was integrated with the current version of Evalseer to provide plagiarism checking on student submissions, so the system shall be able to detect plagiarism in student assignments.
• Time Complexity : The system shall Calculate the time complexity for each code submitted by the students.
• EvalSeer shall save Instructor’s time and work by not having to mark each assignment individually and give each student feedback on the assignments .
• Students receive immediate, detailed, and effective feedback on each aspect of the assignment’s grading criteria, allowing them to gain a better understanding of programming concepts by gradually improving their solutions and programming skills as a result of the provided tools and formative feedback on their assignments.
• Improving the learning environment through peer education and pair programming, which influences students’ judgments about a class work and yields better results than might be projected from solo performance alone.