{"title":"Explaining program code: giving students the answer helps - but only just","authors":"Simon, S. Snowdon","doi":"10.1145/2016911.2016931","DOIUrl":null,"url":null,"abstract":"Of the students who pass introductory programming courses, many appear unable to explain the purpose of simple code fragments such as a loop to find the greatest element in an array. It has never been established whether this is because the students are unable to determine the purpose of the code or because they can determine the purpose but lack the ability to express that purpose. This study explores that question by comparing the answers of students in several offerings of an introductory programming course. In the earlier offerings students were asked to express the purpose in their own words; in the later offerings they were asked to choose the purpose from several options in a multiple-choice question. At an overseas campus, students performed significantly better on the multiple-choice version of the question; at a domestic campus, performance was better, but not significantly so. Many students were unable to identify the correct purpose of small fragments of code when given that purpose and some alternatives. The conclusion is that students' failure to perform well in code-explaining questions is not because they cannot express the purpose of the code, but because they are truly unable to determine the purpose of the code - or even to recognize it from a short list.","PeriodicalId":268925,"journal":{"name":"Proceedings of the seventh international workshop on Computing education research","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2011-08-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"25","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the seventh international workshop on Computing education research","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2016911.2016931","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 25
Abstract
Of the students who pass introductory programming courses, many appear unable to explain the purpose of simple code fragments such as a loop to find the greatest element in an array. It has never been established whether this is because the students are unable to determine the purpose of the code or because they can determine the purpose but lack the ability to express that purpose. This study explores that question by comparing the answers of students in several offerings of an introductory programming course. In the earlier offerings students were asked to express the purpose in their own words; in the later offerings they were asked to choose the purpose from several options in a multiple-choice question. At an overseas campus, students performed significantly better on the multiple-choice version of the question; at a domestic campus, performance was better, but not significantly so. Many students were unable to identify the correct purpose of small fragments of code when given that purpose and some alternatives. The conclusion is that students' failure to perform well in code-explaining questions is not because they cannot express the purpose of the code, but because they are truly unable to determine the purpose of the code - or even to recognize it from a short list.