论文部分内容阅读
随着计算机技术的发展和社会信息化水平的提高,将计算机应用于教育测量与评价的全过程,即计算机辅助评价(computer-assisted assessment,简称CAA)已成为当前计算机教育应用的热点研究问题之一。但已有的研究成果所能解决的多为客观题测评问题,而主观题的测评问题则仍处于发展阶段。C程序设计课程是高等院校学生的一门基础性课程,大量的编程作业,要求教师给出及时、正确、客观、一致的评价,造成教师沉重的评价负担。C程序作业的自动化测评问题亟待解决。
程序作业属于主观题,与自然语言相比,C语言是一种结构化程序设计语言,它具有结构化控制语句,且C语言的函数实现了程序的模块化。所以,C程序作业具有结构化、模块化程序设计的特点。另外,学生程序多为中小程序,规模较小,因此,C程序作业的自动化测评与反馈研究具有一定可行性,可作为主观题测评领域的一个研究突破点。
本研究以建构主义学习理论为理论基础,以形成性反馈理论为根据,以学习性评价理论为导向,以培养学生的问题解决能力为目标,提出了面向问题解决的程序作业自动化测评与反馈系统模型,在已有研究成果IT技能测评系统iTAS和IT技能训练导师系统iTutor的基础上,扩展实现了C程序作业的自动化测评与反馈功能,设计和实现了面向问题解决的程序作业自动化测评与反馈系统;创建了高度交互的、面向真实问题解决的编程环境,通过对学生程序作业的自动化测评及反馈,为学生提供有意义、可行的知识建构情境,使学生在实际编程练习中更好的理解程序设计语言的语法规则,正确处理算法与语法的关系,把握算法在程序设计中的核心、灵魂地位,掌握设计程序的思路,学会用计算机语言编写程序,解决现实生活中的实际问题。
在该系统中,根据学生程序的编译情况,判断学生的语法正确性;根据程序输出结果正确与否,判断程序的功能正确性;通过对比教师模板程序和学生程序的结构而实现程序的结构测评;通过将局部代码表示为抽象语法树的形式,测评程序的算法及复杂度指标。上述测评结果综合表现为程序的质量指标。为了使系统具有评分与反馈功能,教师在命题时,需要设定好本题目所考察的知识点及其所占分数比重。然后,系统根据上述测评结果,向学生提供具体、针对性的反馈信息,供学生进一步完善程序算法等操作,以实现预期的“智能导师”功能。
根据中国高等院校计算机基础教育课程体系规划《C程序设计教材》的教学内容与目标,本文选取了“循环结构程序设计”部分内容对本文所设计的测评与反馈系统做了试验。试验结果表明:系统能够测评的知识点范围覆盖了C程序设计中的主要章节,包括基本语法、选择结构程序设计、循环结构程序设计、数组、函数调用等内容;不管学生程序完整与否,系统均能有效地识别学生程序的错误;在程序的语法和功能正确性、执行效率、结构和质量(算法及复杂度)方面,即使程序有多种算法实现方式,系统的测评结果仍具有良好的客观性;系统的反馈功能具有较强的准确性和有效性。