基于在线评判系统的程序设计教学

时间:2022-05-15 05:27:02

基于在线评判系统的程序设计教学

摘要:本文介绍了以在线评判系统为平台的程序设计教学模式,这一教学模式将教师与学生、课堂教学与实验教学、课内学习与课外学习融为一体,既减轻了教师低层次重复性工作量,又能吸引学生主动学习、主动实验,从而切实提高学生的程序设计能力。

关键词:在线评判系统;程序设计实验;教学改革

中图分类号:G642 文献标识码:A

1引言

程序设计课程教学共识的基本原则是精讲多练。学生必须通过大量的上机实践,循序渐进地提高程序设计基本能力,这也符合建构主义教学观念。但在具体教学组织中,教师普遍感觉有许多不如意的地方,具体表现在这几方面:大多数院校在一年级开设程序设计课程,对于还没有建立有效计算机模型的学生来说,繁杂的语法规则让学生总感觉概念抽象,入门困难,部分学生可能会对课程学习丧失兴趣;教师总感觉教学时数少,学生经常跟不上教师的教学进度;课程教学难以逃脱对语法概念强调的低层次怪圈;课程教学没有切实落实到程序设计能力的培养上,没有突出培养应用计算机编程求解问题的能力上;后续课程学习中,教师总感觉学生程序设计能力欠缺等。

究其原因,还是教师做到了精讲但学生并没有真正做到多练,也就是在教学过程中,学生上机实验还是少了,学生死机硬背纸上谈兵还是多了。很多高校确实也加强了课程的实验环节,取得了一定效果,但在实验教学组织,实验教学投入方面仍存在不少困难。

我们在多年的程序设计教学中,按照精讲多练这一基本原则,对课程教学方案如课程讲授与上机实验教学时数分配,课程考核重点、考核方式等作了很多尝试探索,取得了良好的效果。这得益于我们对程序设计课程实验教学大胆改革,在实验教学中使用了程序设计在线评判系统和网络辅助教学等手段。

2课程教学改革思路

2003年计算机专业培养方案修订将“C程序设计”和“C++面向对象程序设计”两门课程合二为一,并将教学时数由原来合计128学时缩减到现在的96学时,其中课堂讲授64学时,实验上机32学时。教学过程中,根据不同教学内容采取不同的教学方法,即基本的入门知识和基本概念采用传统的讲授法。学生有了初步的程序设计概念后,则主要采用案例法,淡化语法规则的讲授,让学生掌握程序设计的思路方法。概念和语法规则的掌握贯穿于对程序的分析、编写和上机调试过程中。最初教学改革尝试中暴露出了一些问题,最突出就是学生上机实验时间不足,课内32学时远不能达到学生实践训练要求,我们不得已增加学生自由上机时间,要求学生在课余时间编写调试程序,32学时的课内实验主要用来答疑解惑并检查学生的掌握情况。

由于加强了对学生学习过程的跟踪管理,淡化语法规则,重视学生程序设计基本能力(上机实验),在教学时数减少的情况下,学生程序设计能力提升比较明显。但在教学过程中加大了教师的工作量,实验教学组织增加了难度,实验资源显得比较紧张,学生课余上机出现困难等。我们坚持这一正确改革思路,从实验教学存在的问题入手,借鉴ACM程序竞赛在线评判系统,开发了程序设计在线评判系统,解决了学生课余上机实验问题,降低了实验教学组织的难度,提高了实验教学效率。经过几年的实践,我们发现在线评判系统的应用带来了许多预想不到效果。

3课程实验教学

3.1程序设计实验系统

程序设计实验系统借鉴了ACM大学生程序设计竞赛系统。该系统面向专业程序设计教学、程序设计爱好者、程序设计竞赛等不同类型的需求,集程序设计教学、竞赛、学生科技活动为一体。系统主要由程序在线评判(Judge Online)系统、实验教学辅助模块及程序设计社区论坛组成,如图1所示。

其中程序在线评判系统移植北京大学“百炼”(北京大学程序在线测评系统)系统部分模块,并根据自身教学及学生程序设计竞赛需求,对系统进行了功能扩充,加入了实验题目管理、实验代码收集、成绩统计等教学辅助模块,集成了程序代码雷同判别系统,最终形成了一个较完善的,可满足程序设计课程(C语言、C++语言、Java语言等)、数据结构、算法分析等课程实验教学需求的实验系统。系统为程序设计类课程的教学组织,如网上布置作业题目,学生随时完成作业、提交并及时获得评判结果,在线检查学生作业完成情况,教学过程中的答疑解惑;在线实时考试等提供了良好的服务,如图2所示。

图2部分程序设计竞赛及实验题目

3.2实验选题

程序设计在线评判系统最初应用于ACM程序设计竞赛训练、组织。为满足程序设计教学需求,除对系统单一的评测功能进行了扩充,满足互动的网络教学功能外,必须有精选的实验题目供教学选择。实验题目设计、选题基本原则是:

(1) 难易覆盖面广,既有最基本的实验题目,也有较高难度的设计题目;

(2) 实验题目的兴趣性,挑战性,能不断激发学生学习兴趣;

(3) 实验题目的相对独立性和集成性,简单实验代码在后续的应用设计实验题目中可复用;

(4) 经典算法及基本数据结构的应用,为学生后续课程提供基础。

目前针对程序设计课程实验教学需求,提供了400多道实验题目。题目按照教学内容单元及学生程序设计知识和能力的建构过程,从简单到复杂分层分级,每一层次提供丰富的题目供学生选择。

3.3实验教学组织

程序设计教学入门阶段以讲授法并辅以例程验证,主要引导学生熟悉语法规则、理解程序设计的基本概念及方法步骤。随后主要以例程讲解并现场分析代码、调试的教学方式为主,以程序设计能力为主题――编写代码应用计算机求解问题的能力。教师课堂所讲例程来源于在线评判系统题库,学生课后可以登录系统自行验证,加深对课堂知识理解,并在线讨论、反馈学习中的存在的问题。

依靠在线评判系统,课程教学中课后作业和上机实验题目实现了一体化。教师根据课程教学重点及难点给出课后学习任务,布置作业(上机实验题目),要求所有作业通过在线系统完成。32学时的实验课时即相当于现场的答疑解惑,对学生通过在线系统完成题目过程中存在的共性及典型问题集中予以指导、答疑。避免了学生利用有限的实验学时进行代码录入、调试等过程,极大的提高了实验课堂的教学效率。

在线评判系统使用,加强了对学习过程及学习效果的反馈,推动了课程考核的改革,即根据32学时课内实验情况给出平时成绩,实现了对学生学习情况的考查日常化,避免课程结束给学生“算总账”。学生课程考核成绩分为几个部分:第一部分:学生平时在线提交代码由系统判定,是对学生学习过程的考查依据,第二部分,课程结束后,组织学生在线考试,其中第一部分在学生总成绩中占较大比例。课程教学中还规定,应用在线评判系统完成一定数量的题目,可以免去课程结束后的上机考试。

4课程教学效果

经过几年的实践,基于在线评判系统的程序设计课程教学改革取得了良好的效果。主要表现在以下几方面。

(1) 教学组织更有效。

基于在线评判系统的程序设计课程教学,将课堂讲授、实验、课外作业、答疑等教学环节融为一体,一方面可以在线布置作业题目,学生随时完成作业、提交并获得评测结果;另一方面教师亦可在线检查学生作业完成情况,并就存在的问题进行解答。在线的编程考试,更能考查出学生的动手能力,同时有助于威慑和杜绝作弊现象。因此教学组织相对简化,并将教师从低层次的批改作业等繁杂的工作中解脱出来同时增强了批改的准确性,教师重复性、简单性工作量下降,教师专注于教学设计和教学方法及教学效果上,集中精力思考如何上好每一堂课,不断精华课程内容,不断推进教学改革。

(2) 课程资源建设成效显著。

基于程序设计在线评判系统,课程教学资源积累、优化加速。围绕学生程序能力这一教学改革目标,开放的系统允许教师学生自主丰添加富实验题目及其他教学资源。程序设计社区论坛中积累了大量的学习资料及学习体会、学习过程中的典型问题。这些资源有助于教师改进教学方法,也方便学生自学。

(3) 学生自主学习能力快速提高。

依靠程序设计平台系统,教和学的交流渠道更加畅通――学生和学生之间、教师和学生之间通过论坛多对多的交流,对于刚刚步入大学的一年级学生这可以促使其尽快形成自主学习的能力。

(4) 有效激发学生程序设计学习兴趣。

“兴趣是最好的老师”,课堂教学、实验教学、课后学习因在线评判系统而融为一体。尤其是对现代大学生来

说,个人电脑、网络基本普及,学生课后可以在任何场所进行上机练习。在线系统提供了大量的趣味性、挑战性的题目,吸引主动学习,增强学生对程序设计学习的兴趣和成就感。程序设计课程学生注册成为系统用户,教学结束后,大多数学生还继续使用在线系统进行学习交流,不断提高自身程序设计能力。

(5) 课内学习与学生课外科技活动相结合。

在线评判系统最初程序设计竞赛训练目的,程序设计课程教学使用该平台后,更加广泛地调动起了学生的积极性,学生程序设计社区队伍越来越壮大,目前系统校内外注册用户达3000余人。由学生组织的程序设计联赛每月坚持比赛一次,在全校范围内培养了一大批程序设计爱好者,并在校外产生较大影响。

5结束语

程序设计课程教学知识与能力并重,实践性极强,极富创造性,其教学重点和难点在于多练。通过引入在线评判系统,建设优质教学、实验资源,减轻教师低层次的工作量,营造并吸引学生主动学习的氛围,达到了将课内、课外学习、学生科技兴趣活动融为一体,切实提高了学生程序设计能力。在程序设计课程教学中,按照分析青年大学生的学习特点,引导和维持学生学习的兴趣和动力、创造性的改革教学方法方式这一正确思路,我们还需要不断的实践探索。

参考文献:

[1] 刘梅彦,杨根兴. 基于建构主义的程序设计基础教学改革探索与研究[J]. 计算机教育,2007(7):51-34.

[2] 中国计算机科学与技术学科教程2002 研究组. 中国计算机科学与技术学科教程[M]. 北京:清华大学出版社.

Programming Teaching Based on Judge Online System

CHEN Nian-nian, LI Yu-feng,LI Hui-zhuo

(School of Computer Science and Technology, Southwest University of Science and Technology, Mianyang 621010, China)

Abstract: This paper present that using programming judge online system as a platform, by integrating case library and teaching aids modules into the system, teachers and students, classroom teaching and experimental teaching, curricular and extracurricular are tightly integrated. It not only alleviates the teacher low-level repetitive work, but also attracts students to take the initiative to experiment. Thus student ability to programming has been enhanced effectively.

Key words: judge online system; programming experiment; teaching reform

上一篇:小组软件开发过程实践训练 下一篇:“计算机组成原理”的课程改革与实践