宁丹
【摘要】程序设计类课程的实验教学是整个课程教学的重要环节,本文分析了当前程序设计类课程实验教学的现状及弊端,提出了一种与ACM竞赛相结合的程序设计类课程实验教学模式。实践证明,在实验教学中应用该模式能够提升教学效果,有利于提高学生的实际应用能力。
【关键字】程序设计 实验教学 ACM
一、引言
近来年,随着信息技术在社会各个应用领域的渗透和普及,程序设计类课程已经发展为高校计算机教育的重点课程。理论教学与实验教学是程序设计类课程的重要组成部分,其中,实验教学是完整教学过程中的不可或缺的实践性教学环节。实验的目的不仅仅是为了验证所编程序的正确与否,也是为了加深对程序设计语言知识的充分理解,更重要的是培养学生的实际操作能力和积累丰富的编程经验,从而引导他们利用程序设计语言编程来解决实际问题。基于此,本文对如何更好的进行程序设计类课程的实验教学作一些探讨。
二、现状分析
目前,我校计算机学院开设了高级语言如C、C++等多门程序设计类课程,这些课程的共同目标就是让学生通过上机实验和课程设计来巩固课堂上讲解的语法规则和算法技巧,锻炼编程能力。但是现有的程序设计类课程实验教学存在着很多问题,导致整个教学效果得不到提高,与教学目标的要求不相符。本节将主要从三个方面对其存在的问题进行总结:
2.1 实验教学安排
我院程序设计类课程的上机实验课时是有限的,一般都是每周安排两个课时,或者最多四个课时,通常会在连续的几周内结束。由于一般程序的编写和调试比较费时间,要是学生不事先做好充分的准备,仅仅靠在两个课时内去完成一个完整的程序编写是不太可能的,对所学内容也没能充分理解,很难在课堂上培养学生的实际编程能力。
2.2 实验教学内容
我院专业实验中心的机房环境是一个内部的局域网,不能连接到互联网,教师都是通过课件投影或屏幕广播教学软件来完成主要的实验教学过程。实验内容基本卜^都是对课堂理论教学内容进行验证和实现,学生按照教材或课件来完成实验。整个的实验教学环节中,教师根据实际的情况来选择是否进行案例教学,而当前多数实验教学过程中的案例所覆盖的知识点范围不够理想,不能将新旧知识点都包含进来。案例陈旧,缺少更新,实用性和趣味性也不强,因此不能很好的激发学生的学习热情,不利于培养学生的独立思考和动手操作能力,未能达到教学目标的要求。
2.3 实验教学考核
实验课程主要是通过实验报告中的程序编写情况来考核的。由于时间有限,实验报告的批改都是教师在课后另找时间检查,教师往往只能通过纸质的实验报告来分析学生的程序,要求程序能正常通过,看到运行结果就可以了,而忽略了程序中的调试环节,而这些环节中通常都是学生未掌握的知识点。这种考核方式不利于教师对学生学习情况的掌握,也不利于培养学生的创新能力。
三、ACM学习模式的特点
现在,随着ACM国际大学生程序设计竞赛(简称ACM)在高校中的推广,越来越多的学生参与进来了。在迎接ACM竞赛的学习过程中,形成了一种具有ACM竞赛特点的学习模式,这种学习模式的特点如下:
l、ACM竞赛所涉及的知识面十分广泛,算法电极具复杂性。通常在平时的训练过程中为了能深刻而透彻的理解各个知识点,教师会引入大量的案例教学。运用典型案例可以将学生带人特定的问题进行案例分析,通过学生的独立思考或团队合作,进一步提高其解决具体问题的能力。
2、ACM竞赛是通过在线测评系统上实时提交程序代码,给出评判结果的竞赛形式。ACM测评系统能够实时的给出参赛队的排名情况和每道题的通过率以及通过人数,教师可根据题目的通过率来掌握学生对知识点的学习情况,也可以反思其教学方法和教学内容中存在的问题。
四、基于ACM模式的程序设计类课程实验教学的做法
将ACM学习模式应用到我院现有的程序设计类课程实验教学过程中,具体措施运用如下:
4.1 实验课程的开设
我院高级语言(C、C++)程序设计实验课程都是在大一这一学年开设的,大一第一学期是面向过程的C语言编程学习,大一第二学期是面向对象的C++语言编程学习。这样开课的结果就使得大多数学生连面向过程的编程都还没有完全搞清楚,就直接跳到了面向对象的编程,可以说整个大一学期都是处于混沌的编程状态。因为对程序设计语言的思想和语法还没完全掌握,所以很多学生不具备基本的编程能力,甚至对编程有恐惧感。为了解决这些问题,我们结合ACM的竞赛模式来调整开课计划,把原计划2个学期的高级语言程序设计实验课程的教学时间调整为5个学期,这样可以贯穿整个计算机专业课的学习过程,从而将程序设计语言和其他计算机专业课的学习更好的结合起来,让学生有时间去深刻地理解程序设计语言的思想和方法,不断地锻炼实践操作能力和积累编程经验。
4.2 实验内容的选取和实验课程的考核
对实验环境来说,要求将我院专业实验中心机房连接到我校的源程序在线测评(Onlinejudge,简称OJ)平台上。根据程序设计类课程的实验内容和具体要求,每次实验前,教师可以从我校或者其他高校的OJ平台上的ACM竞赛题库中挑选或改造2-3个相关题目作为实验内容挂到我校的OJ上。在实验课阶段,由学生独立完成或者自由组队来编写程序,调试程序,解决问题,编写好的程序提交给OJ来判断正确与否。通过每次实验在OJ上完成的做题数量,教师可以由此掌握到学生对知识点的学习情况,对欠缺的知识点再给与重点讲解。同时教师可以根据OJ上的排名很轻松的完成实验课程的考核。学生也可以通过每次实验的做题和排名情况,来检查自己的学习方法和学习内容,从而达到熟练掌握所学内容的实验教学目的。
五、结束语
在整个程序设计语言的教学过程中,实验教学是非常重要的实践性教学环节。把ACM学习模式应用到程序设计类课程实验教学过程中,同时把ACM的竞赛机制引入到实验课程的考核当中,使其成为程序设计类课程实验教学的一个重要组成部分。不但增强了师生之间的互相沟通和交流,培养了学生的自主学习与合作学习能力,也使教师能不断调整教学策略来完善教学,更重要的是学生掌握了程序设计语言的思想和方法,提高了教学效果。