在线评判在数据结构实践教学中的应用论文 1背景 数据结构是计算机及相关学科的核心课程,教学环节包括理论教学与实践教学。实践教学不仅是帮助学生理解基本的数据结构及实现方法,培养学生算法设计和实现能力的主要教学环节,更是培养学生实践探索兴趣、科学研究素养、……
在线评判在数据结构实践教学中的应用论文
1背景
数据结构是计算机及相关学科的核心课程,教学环节包括理论教学与实践教学。实践教学不仅是帮助学生理解基本的数据结构及实现方法,培养学生算法设计和实现能力的主要教学环节,更是培养学生实践探索兴趣、科学研究素养、工程创新能力、团队协作精神的重要手段。在教育部实施的“高等学校教学质量与教学改革工程中,提出要“高度重视实践环节,提高学生实践能力”,并通过重点建设一批国家级实验教学示范中心,大力推进实验内容和实验教学模式的改革和创新。随着国家对高等教育资金投入的不断增加,高校实验室的设备和环境得到了极大的改善。然而,良好的实验设备和环境与实验教学质量并未成正比,数据结构课程的实践教学就是其中的一个薄弱环节,学生动手能力差,教师考核难,其原因在于实验教学内容、实验教学手段、实验考核方法不能适应大众化教育。存在的问题主要有:学生的程序设计能力较弱,影响了数据结构实现能力的训练;实验学时有限,师资相对不足,学生不能得到及时有效的指导,难以在有限的学时内完成实验任务;考核方式落后,达不到评价与激励的作用等。将在线评判应用于数据结构课程的实践教学,有利于改善实践教学环境,提高实践教学质量。
2基于在线评判的数据结构实践教学设计
在线评判(online judge)基于Web工作模式,允许用户在线提交代码,自动进行编译、运行,给出评判结果,将其用于程序设计类课程的实践教学,可以不受时间和空间的限制,随时学习与实践,并得到实践结果,既方便学习者实践,也提高过程的监控力度、减轻教师的工作负担。针对数据结构课程实践教学中存在的实验时间不足、考核结果不客观等问题,我们将在线评判应用于数据结构实践课程,借鉴ACM(association for computing machinery)竞赛模式,对实践教学的内容、方式方法、考核模式等进行改革,坚持“以学生为本”的教学理念,分层次设计实践教学内容;开放实验的时间和空间,变目标考核为过程考核,加强师生之间、学生之间的交流;不定期组织程序设计竞赛,以个性化培养为基础,以创新精神、实践能力培养为目标,充分调动学生参与实践的积极性,赛学结合,因材施教,提高数据结构课程的实践教学效果。
2.1研发实验教学软件“数据结构实验平台”
国内已有成熟的在线评判软件,如北京大学的“PKU Judge Online”、浙江大学的"ZOJ",这些软件建立了丰富的题库资源,学生可以自由注册、自主选择题目进行练习和训练,对提高学生的算法设计与实现能力有着巨大的作用。但是这些软件更适用于竞赛,如果直接拿来用于数据结构的实验教学,题库的题目难度过大,而且学生要通过所有的测试数据并且在规定的时空范围内,才能得到正确的评判。这种非成功即失败的.评判方式不适合初学数据结构课程的学生。对于初学者,代码设计考虑不周全是常态,上述评判方式会使学生不知所措,而且过多考虑算法的效率、边界等问题,也不利于学生把注意力放在核心算法的实现上,不符合学生的认知规律,甚至会使学生失去学习与实践的信心。
基于在线评判开发数据结构实验平台,功能应包括题库维护、学生管理、数据结构实验、数据结构考试、程序设计竞赛、抄袭检测、成绩分析、论坛、排行榜等。该实验平台既能用于数据结构的实验教学、考试,也能用于程序设计竞赛,其核心功能是对学生提交的代码在线评判,提供多组测试数据,根据通过测试数据的组数,评判学生的实验或考试成绩,使学习与训练循序渐进、逐渐提高。由于在线评判,学生能立即知道自己的实验结果,有问题可以在论坛留言,教师和学生都可以解答,部分解决了教师不足、指导不到位的问题。其中,排行榜按学生获得正确结果的题目数排序,给学生以良性刺激,使学生学有干劲,赶有目标,既有压力,也有动力,积极参与实验与竞赛。
2.2开放实验教学平台
“数据结构实验平台”不仅应用于平时集中的实验教学,也24小时对学生开放,只要有浏览器,能够登录校园网,均可以学习、训练、答疑、讨论、测试,扩展了实验的时间和空间。通过查看平台上学生的实验记录,可以看出学生的参与率达到了98%。平台调动了学生的学习兴趣和自主学习意识,为学生营造了一个全天候的数据结构与程序设计实践环境,使学生能够随时上机实验并及时获得实验结果,随时提出问题并得到解答。由于实验平台开放,学生有足够的训练时间,能通过循序渐进的实验体验到进步与成功,增强自信心,逐步提高程序设计能力、计算思维能力、实践能力与创新能力,解决实验时间不足的问题。
学生通过“数据结构实验平台”进行实验,其学习行为与实验过程及结果都保留在平台上,有助于教师分析学生的个体学习策略和协作学习策略,总结学生的基本学习和实践活动。在此基础上,能规范教师的基本教学活动,改变传统的实践教学管理模式。以学生为中心、以在线评判系统为工具,可以为学生提供集中和开放相结合的实践教学环境;在实验室集中辅导,能面对面解决学生实验中的问题;开放环境不限时间、地点,学生随时可以通过"数据结构实验平台"选择实验项目完成实验,并利用在线评判系统对实验结果进行测试,同时利用平台的交流工具得到帮助和指导,解决实验指导力度不够的问题。
2.3按类、分层次设计实验内容
学习者的认知能力是有差异的,教育工作者必须承认并尊重智力差异,才能采取有效的措施,使受教育者都能得到最大的提高,教育效率达到最大化。在数据结构课程的实验教学中,应建立有层次、有梯度的实验与考核项目库。有层次指将其分为验证型题目、设计型题目,如线性表的实验,分为两类题,一类是线性表的顺序存储结构与实现及链式存储结构与实现,属于验证型题目,一类是集合的交、并集运算,即应用线性表解决实际问题,属于设计型题目。每一个教学层次应准备多道参考选题。有梯度指同一层次的题目有不同的考核指标。“数据结构实验平台”改变ACM竞赛平台非对即错的评判方法,将测试数据分为多组,包括理想数据、边界数据、特殊数据等,根据学生提交的代码通过测试数据组数,评定学生的考试成绩,只有通过全部测试数据才能得到满分。题目的分层与评判的梯度性符合学生的认知规律,使学生能依据自己的知识水平和实践能力,有计划、循序渐进地在实践中得到提高,保证了数据结构实践教学的质量。
2.4组织程序设计竞赛
竞赛是课外延伸训练,贯穿教学始终,目的是使学有余力的学生与校内、校外学生同台竞技,既增加了学习的趣味性,也培养了学生的创新精神,锻炼了学生的挑战能力。由师生共同研发与维护的在线评判系统(Judge Online),从各高校的ACM题库中选取适合本校学生的题目,也自主设计一些题目供学生练习,并给予学生一定的指导。学生可以自主地选择并完成若干道题目。通过开放的在线评判系统,学生可以自主练习,也可以参加院内组织的竞赛,还可以通过竞赛选拔“基础扎实、具有潜力”的优秀学生参加国内组织的ACM竞赛,既提高学生的程序设计能力、算法设计能力、英语阅读能力,也加强校际间的合作与交流,使“课程与竞赛”形成良性的互动循环机制。
2.5全程实验考核
在线评判数据结构的实验结果,一方面实现了数据结构实验与程序设计题的自动批阅,解决了数据结构实验考核中算法设计题阅卷强度大、主观性强的问题,另一方面在数据结构课程的实验教学中,可以在线评判程序的正确性,解决了学生人数多,教师不能检查所有学生的程序代码而影响实验教学进度的问题。由于程序自动评判的效率很高,使得过程考核成为可能,通过实验平台提供的抄袭检测功能,能够在一定程度上解决抄袭的问题。通常按知识点将实验分为6个单元,分别是线性表、栈与队列、树与二叉树、图、查找、排序,实验与理论课程同步进行。每一单元都设置开始时间与结束时间,学生必须在结束时间之前完成实验。考核分为4个阶段,即线性表、树与二叉树、图、查找与排序,实验考核在相应的实验结束之后进行,4个阶段的考核成绩合计作为实验课考核成绩,最终并入课程的考核总成绩。由于采取全过程实践教学考核模式,学生必须注重平时的实践训练,聚沙成塔,才能顺利通过考核。全过程考核能够比较真实地考核学生的实践能力,有利于培养学生的自我约束能力和自我管理能力,解决了实验考核结果不客观的问题。
3结语
经过多年的教学实践,在线评判应用于数据结构课程的实践教学,教学效果有显著的提高,也得到了大多数学生的认可。“数据结构实验平台”为学生营造了一个全天候的实践环境,使学生能够随时学习与实践,压力适度、阶梯递进、自主互动,逐步提高了算法设计与实现能力。近年来,学校有30%以上的学生获得“挑战杯”、ACM、数学建模等省级以上竞赛奖励;35%的学生参加大学生创新创业训练计划项目;学生第一作者发表论文多篇。今后我们要依据"最近发展区"理论,关注学生的个体差异,以学生为本,修改和完善实验项目库和考核项目库,使之层次分明、梯度合理,为提高数据结构及程序设计课程的实践教学质量不断探索与实践。