基于技能和思维强化训练的程序设计课程在线实践教学探讨
来源:用户上传
作者:张翠莲
[摘 要]程序设计是一门实践性很强的课程,其强调技能和思维的训练。文章从程序设计课程在线实践教学的问题出发,针对如何训练编程技能、提升计算思维能力和做好在线实践教学进行了实例研讨,列举了五种引导方法,旨在使学生能按教学要求进行程序设计实践。
[关键词]实践教学;程序设计;在线教育
[中图分类号]G642;TP311 [文献标识码]A [文章编号]1008-7656(2021)05-0034-06
引言
程序设计是计算机类专业的一门核心基础课程,也是一门实践性很强的课程。学习这门课程需要掌握复杂的语法规则,还需要能动手编写程序解决问题。对于初学程序设计课程的学生,刚开始能读懂例题程序,但动手写程序却感觉较难,需要课程教师手把手指导编写程序。通过在线教育学习的学生,程序设计课程的整个教学环节全部在网络上完成。怎样有效引导在线教育的学生学习该课程,强化他们的动手编程技能,做好这门课程的实践环节,需要进一步探讨。
一、程序设计课程的在线教学现状
程序设计课程是一门比较难学的课程,因此,很多高校对这门课程的教学模式、方法等方面作了很多研究,提出各N教学改革措施。
(一)程序设计课程的在线实践教学现状
大部分开设有程序设计课程的普通高校,都使用了在线评测系统作为学生实训编程作业与考试提交的平台。在线作业与考试评测系统,即在线评测(online judge,OJ)系统,该系统最早是应用于ACM国际大学生程序设计竞赛,随着多年的发展和应用,很多高校也搭建起自己的OJ系统,用于开展程序设计类课程实践教学,例如浙江大学的ZOJ、北京大学的POJ、杭州电子科技大学的HDUOJ等,这些高校的评测系统很好地应用在程序设计课程的教学中[1]。其中,使用率较高的是北京大学的在线评测系统,实训编程练习的题库也较多。由此可见,程序设计课程使用在线评测系统作为实践教学辅助系统,有利于训练学生的编程技能,也为教师省去了许多批改程序作业的工作,提高了教学效率,也便于教师开展实践教学。
在成人高等院校中,对于程序设计课程,由于成人学生是利用业余时间学习,存在学习时间相对较短、督促不足等情况[2],很多成人学校对该课程的考核侧重于理论方面,采用传统的选择、填空、阅读程序问答题等考核方式,实践编程方面的训练不足。
(二)程序设计课程的在线实践教学指导主要采用的方式
随着在线教育的发展,程序设计课程也在线上开展实践教学,主要的教学指导方式有使用远程视频课堂介绍课程中的具体实践、实践辅助教学平台、用互动交流平台指导、实训过程自动提示与评判等。实践辅助教学平台主要是提供给学生编程实训作业提交与编程实践操作考试的平台,目前大多还是使用在线评测系统(OJ)。实践互动交流平台主要是使用QQ群、QQ远程协助、远程操控、TeamViewer、向日葵等远程工具,以及钉钉、微信群等各种社会性交互工具作为在线互动交流平台[3]。而使用专门在线教学平台的院校,一般相应的平台提供有交流互动的论坛,教师与学生可以在论坛交流,例如,MOOCs教学交互主要发生在MOOC论坛中[4]。实训过程自动提示与评判,是程序设计过程中使用单元测试模块测试学生的程序,给予错误信息和启示性提示,从而让学生获得即时反馈和成绩[5]。
二、在线程序设计课程实践教学存在的问题
(一)在线教育学生的知识水平各异
参加在线教育学习的学生,知识水平各异,他们的自学能力相差也较大,而且成人教育学生存在工学矛盾的缘故,可以用于自主学习的时间较少,因此,完全参照普通高校的教学方法不太适用。
(二)部分在线程序设计课程的实践训练效果需要提升
对于初学程序设计的学生,面对各种复杂的语法,如何独立编程解决问题,是一件较困难的事,需要教师在旁边引导,手把手教学生操作,提示学生如何入手写程序,并及时纠正学生写程序出现的各种错误操作。而对于没有教师在旁边指导的在线教育学生,很难把程序设计课程学好,这也是很多在线教育开展实践性较强的课程效果不理想的主要原因之一。
使用OJ系统作为程序设计实践教学平台,对于实施面授课程开展程序设计教学的学生,提供了较好的编程训练平台。而对于通过远程在线教育授课的学生,这种仅仅在在线评测系统上提供实训题目、提交程序、反馈程序结果对错,而没有教师在旁边实时指导的学习模式,学生在做编程实训时,会出现写程序作业题无从下手的情况,或是没有严格遵循在线课堂教师讲的编程思路和操作方法设计、编写与调试程序。动手编写程序的技能原本就不容易掌握,导致在线教育学生学习程序设计课程的效果不太理想,实际动手设计、调试程序的能力需要加强。
(三)有效在线辅导的人力和时间成本偏高
前文提到的使用单元测试实现自动提示和自动评判的方法应用于程序设计过程中[5],提示指导侧重于检测、判定学生设计程序作业的结果,给予学生程序作业打分以及错误提示信息,对学生的编程过程提供了有效的帮助。但教师需要花费较多的时间在编程的准备工作中,实现方法不够便捷;另一方面,出现学生看到编程实训作业无从下手或者未按照编写规则书写程序的情况。
在线互动答疑,是为在线教育学生提供辅导的平台,学生遇到问题可以通过答疑平台提问。而作为初学者,当不知道如何入手时,提出的问题大多是“这题怎么做?”“我不会做,怎么办?”等,表现出没有思路。这时在答疑平台的指导教师,需要大量时间对学生一对一回复,引导学生一步一步地做实践题目。如果简单地发给学生正确的实践程序题答案,就达不到训练学生编程技能的效果。这样的在线答疑、辅导方式需要耗费大量的人力和时间,但实际较难真正指导到位。如何弥补在线教育缺少指导教师做实践提示和引导的不足,让自学程序设计的初学者更容易掌握用程序解决问题的技能,找到一种便捷、有效的引导方法,是一个值得探讨的问题。
转载注明来源:https://www.xzbu.com/1/view-15423259.htm