{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/89072"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/89072","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Auto grading tool for introductory programming courses","abstract":"Using automated grading tools to provide feedback to students is common in Computer Science education. The ﬁrst step of automated grading is to ﬁnd defects in the student program. However, ﬁnding bugs in code has never been easy. Current automated grading tools do not focus on identifying defects inside student code. Comparing computation results using a ﬁxed set of test cases is still the most common way to determine correctness among current automated grading tools. It takes time and eﬀort to design a good set of test cases that can test the student code thoroughly. In practice, tests used for grading are often insuﬃcient for accurate diagnosis. Meanwhile, automated testing tools have been developing for some time. Even though it still takes some eﬀort to apply automated testing tools to real software development, we believe that automated testing tools are ready for automated feedback generation in the classroom. The reason is that for classroom assignments, the code is relatively simple. A well understood reference implementation provided by the instructor also makes automated testing tools more eﬀective. In this thesis, we present our utilization of industrial automated testing on student assignments in an introductory programming course. We implemented a framework to collect student codes and apply industrial automated testing to their codes. Then we interpret the results obtained from testing in a way that students can understand easily. Furthermore, we use the test results to classify erroneous student codes into diﬀerent categories. Instructors can use the category information to address the most common conceptual errors eﬃciently. We deployed our framework on ﬁve diﬀerent introductory C programming assignments here at the University of Illinois at Urbana-Champaign. The results show that the automated feedback generation framework can discover more errors inside student submissions and can provide timely and useful feedback to both instructors and students. A total of 142 missed bugs are found within 446 submissions. More than 50% of students receive their feedback within 3 minutes of submission. By doing grouping on one of the assignments with 91 submissions, two groups of student submissions of 15 and 6 are identiﬁed to have the same type of error. The average grading code setup time is estimated to be less than 8 hours for each assignment. We believe that based on the current automated testing tools, an automated feedback framework for the classroom can beneﬁt both students and instructors, thus improving Computer Science education.","abstract_html":"Using automated grading tools to provide feedback to students is common in Computer Science education. The ﬁrst step of automated grading is to ﬁnd defects in the student program. However, ﬁnding bugs in code has never been easy. Current automated grading tools do not focus on identifying defects inside student code. Comparing computation results using a ﬁxed set of test cases is still the most common way to determine correctness among current automated grading tools. It takes time and eﬀort to design a good set of test cases that can test the student code thoroughly. In practice, tests used for grading are often insuﬃcient for accurate diagnosis. Meanwhile, automated testing tools have been developing for some time. Even though it still takes some eﬀort to apply automated testing tools to real software development, we believe that automated testing tools are ready for automated feedback generation in the classroom. The reason is that for classroom assignments, the code is relatively simple. A well understood reference implementation provided by the instructor also makes automated testing tools more eﬀective. In this thesis, we present our utilization of industrial automated testing on student assignments in an introductory programming course. We implemented a framework to collect student codes and apply industrial automated testing to their codes. Then we interpret the results obtained from testing in a way that students can understand easily. Furthermore, we use the test results to classify erroneous student codes into diﬀerent categories. Instructors can use the category information to address the most common conceptual errors eﬃciently. We deployed our framework on ﬁve diﬀerent introductory C programming assignments here at the University of Illinois at Urbana-Champaign. The results show that the automated feedback generation framework can discover more errors inside student submissions and can provide timely and useful feedback to both instructors and students. A total of 142 missed bugs are found within 446 submissions. More than 50% of students receive their feedback within 3 minutes of submission. By doing grouping on one of the assignments with 91 submissions, two groups of student submissions of 15 and 6 are identiﬁed to have the same type of error. The average grading code setup time is estimated to be less than 8 hours for each assignment. We believe that based on the current automated testing tools, an automated feedback framework for the classroom can beneﬁt both students and instructors, thus improving Computer Science education.","abstract_has_math":false,"creators":["Gao, Jianxiong"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Electrical & Computer Engineering","degree_department":null,"school":null,"contributors":["Lumetta, Steven S."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2016,"date_issued":"2016-03-02T19:44:54Z","date_published":"2016-03-02T19:44:54Z","updated_at":"2026-07-22T22:26:32Z","subjects":["Computer Science Education","Auto-Grading","Software Verification"],"languages":["en"],"rights":["Copyright 2015 Jianxiong Gao"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/89072","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Lumetta, Steven S."]},{"key":"dc:creator","label":"Author","values":["Gao, Jianxiong"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2016-03-02T19:44:54Z","2015-12-09","2015-12"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Electrical & Computer Engineering"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Computer Science Education","Auto-Grading","Software Verification"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2015 Jianxiong Gao"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/89072"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Using automated grading tools to provide feedback to students is common in Computer Science education. The ﬁrst step of automated grading is to ﬁnd defects in the student program. However, ﬁnding bugs in code has never been easy. Current automated grading tools do not focus on identifying defects inside student code. Comparing computation results using a ﬁxed set of test cases is still the most common way to determine correctness among current automated grading tools. It takes time and eﬀort to design a good set of test cases that can test the student code thoroughly. In practice, tests used for grading are often insuﬃcient for accurate diagnosis. Meanwhile, automated testing tools have been developing for some time. Even though it still takes some eﬀort to apply automated testing tools to real software development, we believe that automated testing tools are ready for automated feedback generation in the classroom. The reason is that for classroom assignments, the code is relatively simple. A well understood reference implementation provided by the instructor also makes automated testing tools more eﬀective. In this thesis, we present our utilization of industrial automated testing on student assignments in an introductory programming course. We implemented a framework to collect student codes and apply industrial automated testing to their codes. Then we interpret the results obtained from testing in a way that students can understand easily. Furthermore, we use the test results to classify erroneous student codes into diﬀerent categories. Instructors can use the category information to address the most common conceptual errors eﬃciently. We deployed our framework on ﬁve diﬀerent introductory C programming assignments here at the University of Illinois at Urbana-Champaign. The results show that the automated feedback generation framework can discover more errors inside student submissions and can provide timely and useful feedback to both instructors and students. A total of 142 missed bugs are found within 446 submissions. More than 50% of students receive their feedback within 3 minutes of submission. By doing grouping on one of the assignments with 91 submissions, two groups of student submissions of 15 and 6 are identiﬁed to have the same type of error. The average grading code setup time is estimated to be less than 8 hours for each assignment. We believe that based on the current automated testing tools, an automated feedback framework for the classroom can beneﬁt both students and instructors, thus improving Computer Science education.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2016-03-02 without embargo terms","The student, Jianxiong Gao, accepted the attached license on 2015-12-08 at 13:28.","The student, Jianxiong Gao, submitted this Thesis for approval on 2015-12-08 at 13:33.","This Thesis was approved for publication on 2015-12-09 at 17:04.","DSpace SAF Submission Ingestion Package generated from Vireo submission #8969 on 2016-03-02 at 12:52:28","Made available in DSpace on 2016-03-02T19:44:54Z (GMT). No. of bitstreams: 2 GAO-THESIS-2015.pdf: 521456 bytes, checksum: d00f20bd76ed185590c163ecd41bbdd2 (MD5) LICENSE.txt: 4210 bytes, checksum: 4dd19f47bdfca2f39646e5635a058d7a (MD5) Previous issue date: 2015-12-09"]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Auto grading tool for introductory programming courses"]}]}],"canonical_facts":{"dc:contributor":["Lumetta, Steven S."],"dc:creator":["Gao, Jianxiong"],"dc:date":["2016-03-02T19:44:54Z","2015-12-09","2015-12"],"dc:description":["Using automated grading tools to provide feedback to students is common in Computer Science education. The ﬁrst step of automated grading is to ﬁnd defects in the student program. However, ﬁnding bugs in code has never been easy. Current automated grading tools do not focus on identifying defects inside student code. Comparing computation results using a ﬁxed set of test cases is still the most common way to determine correctness among current automated grading tools. It takes time and eﬀort to design a good set of test cases that can test the student code thoroughly. In practice, tests used for grading are often insuﬃcient for accurate diagnosis. Meanwhile, automated testing tools have been developing for some time. Even though it still takes some eﬀort to apply automated testing tools to real software development, we believe that automated testing tools are ready for automated feedback generation in the classroom. The reason is that for classroom assignments, the code is relatively simple. A well understood reference implementation provided by the instructor also makes automated testing tools more eﬀective. In this thesis, we present our utilization of industrial automated testing on student assignments in an introductory programming course. We implemented a framework to collect student codes and apply industrial automated testing to their codes. Then we interpret the results obtained from testing in a way that students can understand easily. Furthermore, we use the test results to classify erroneous student codes into diﬀerent categories. Instructors can use the category information to address the most common conceptual errors eﬃciently. We deployed our framework on ﬁve diﬀerent introductory C programming assignments here at the University of Illinois at Urbana-Champaign. The results show that the automated feedback generation framework can discover more errors inside student submissions and can provide timely and useful feedback to both instructors and students. A total of 142 missed bugs are found within 446 submissions. More than 50% of students receive their feedback within 3 minutes of submission. By doing grouping on one of the assignments with 91 submissions, two groups of student submissions of 15 and 6 are identiﬁed to have the same type of error. The average grading code setup time is estimated to be less than 8 hours for each assignment. We believe that based on the current automated testing tools, an automated feedback framework for the classroom can beneﬁt both students and instructors, thus improving Computer Science education.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2016-03-02 without embargo terms","The student, Jianxiong Gao, accepted the attached license on 2015-12-08 at 13:28.","The student, Jianxiong Gao, submitted this Thesis for approval on 2015-12-08 at 13:33.","This Thesis was approved for publication on 2015-12-09 at 17:04.","DSpace SAF Submission Ingestion Package generated from Vireo submission #8969 on 2016-03-02 at 12:52:28","Made available in DSpace on 2016-03-02T19:44:54Z (GMT). No. of bitstreams: 2 GAO-THESIS-2015.pdf: 521456 bytes, checksum: d00f20bd76ed185590c163ecd41bbdd2 (MD5) LICENSE.txt: 4210 bytes, checksum: 4dd19f47bdfca2f39646e5635a058d7a (MD5) Previous issue date: 2015-12-09"],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/89072"],"dc:language":["en"],"dc:rights":["Copyright 2015 Jianxiong Gao"],"dc:subject":["Computer Science Education","Auto-Grading","Software Verification"],"dc:title":["Auto grading tool for introductory programming courses"],"dc:type":["text"],"thesis:degree_discipline":["Electrical & Computer Engineering"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:26:32Z"}