高职程序设计语言课程实验教学探讨
2010-08-15李英杰
龚 静, 李英杰
(湖南环境生物职业技术学院 信息技术系,湖南衡阳 421005)
高职院校计算机专业都开设了一门或多门程序设计语言课程,程序设计语言是一门实践性很强的课程,学生通过上机可掌握程序设计的一些基本方法和技巧,实验教学是该课程不可缺少的重要组成部分.根据学院现行教学大纲,实验课时所占比重为 1/2左右,这就要求学生不仅要在课堂中认真听讲,还要在上机实验时认真调试程序.笔者从事多年程序设计语言的理论、实验、实习教学,不断地总结和积累经验并运用于实验教学的实践中,取得了较好的教学效果,这些经验有助于学生在有限的教学时间内,以最快易懂的方式,掌握程序设计语言的内容.下面浅谈几点看法与建议.
1 培养激发学习兴趣
高职学校计算机专业的学生,他们的文化基础差异较大,高考相差百多分,学生文化素养参差不齐,相当部分学生有厌学情绪.兴趣是最好的老师,要想学生能够学好程序设计语言,培养学生的兴趣就是关键.当学生对所学的课程知识产生兴趣和爱好时,就会从内心发出向往和求知的强烈欲望,产生积极、主动的学习动机,那么学习过程也就不再是一种负担,而是一种愉快的体验,学习效果也会事半功倍.为了避免学生出现对程序语言这门课的误解,对它失去兴趣.在刚上课程序设计课时,老师可以演示用语言开发的相关程序,让学生领悟到程序设计语言在今后专业岗位上的作用,多讲一些程序设计语言在现实生活中的应用.例如让学生玩一些由程序设计语言开发设计的五子棋、俄罗斯方块等游戏,或用计算器按要求计算求值,通过实例的有效引入,可以让学生了解程序设计语言的实用性,培养学生的学习积极性.然后让学生亲自上机操作,验证运行程序,逐渐培养他们的兴趣,树立学生学习程序设计语言的信心,激起学生学习的兴趣[1].学生学习的积极性调动起来了,这对教师来说,就已经成功了一半.
2 养成良好的编程习惯
在编程时,笔者强调代码的规范性,它不仅可以改善程序质量,简化调试工作,而且对于程序的查错是非常重要的,可以方便地确定发生错误的代码段,然后认真分析错误所在.良好的编程习惯主要体现在以下几方面.
2.1 对象、变量的命名要规范
编程中要保存大量的数据,需要定义许多变量,必须对这些变量进行命名.在教学中发现,学生由于英语词汇量的匮乏或者缺乏规范意识,对每个变量不能起一个合适的名字,经常使用诸如A,B,C,D之类的名字,这样导致的后果有二:一是当变量很多时,不知道该名称保存的是什么数据,原因是名字没有表示出该数据的含义;其二是当应用程序出现错误时,查错纠错困难.所以对变量和对象的命名要基于容易记忆容易理解的原则,一般采用匈牙利命名法,其基本原则:变量名=属性 +类型 +对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分,保证名字的连贯性是非常重要的[2].
例如,表单的名称为 form,那么在匈牙利命名法中可以简写为 frm,则当表单变量名称为Switch board时,变量全称应该为 frm Switchboard.这样可以很容易从变量名看出 frm Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成lbl Switchboard.可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性.
2.2 为程序添加注释
适当地在程序中加入注释可以增强程序的可读性,注释对调试程序和编写程序亦可起到很好的提示作用.学生在程序中书写注释是一种良好的习惯,在平时学习和实践时要注意培养这种良好的素养.
2.3 程序结构要清晰、模块化
在编写程序解决较复杂的问题时,为了使整个程序结构清晰明了,通常根据程序需要实现的主要功能,划分为若干个相对独立的部分,使其中每个部分解决一个较小的功能,把某个语句序列作为一个整体,写成一个子程序.在程序的开始对子程序进行说明(包括子程序的名称和语句序列).这样,就可以把一个复杂的程序设计为一个主程序和若干个子程序.在主程序中调用子程序,来完成程序的功能.这样编写的程序,结构显得清晰明了,便于理解和维护.一般的高级程序设计语言提供两种子程序:过程和函数.
3 精心设计实验内容
根据教学的要求和学生的认识规律,为达到最佳的教学效果,将实验分成验证性、综合性和设计性实验等不同层次,使教学内容更符合学生的实际和各专业后续课程的需要.
3.1 验证性实验
验证性实验包括基本操作技能训练实验和基本方法原理验证实验两类,主要目的是使学生掌握必要的实验基本知识、实验基本技能和实验基本方法;掌握程序的编辑、编译、运行过程;掌握程序凋试方法和步骤;掌握程序调试时出现错误信息的含义和解决方法,为以后的实验打下基础.其占实验总课时的 50%.
3.2 综合性实验
综合性实验是将各章节基本原理、基本课程训练和基本实验方法综合在一起,给出较为详尽的实验方案,让学生在完成实验的基础上,以全面培养学生的程序设计能力.此类实验难度中等,占实验总课时的 20%.
3.3 设计性实验
设计性实验是指学生在经过全面的基础训练后,按照给定的实验要求,运用所学知识,通过查阅资料,独立(或在教师指导下)撰写实验方案,拟定实验步骤,上机完成实验.例如在一门课程完成后进行课程设计.设计性实验提高了学生的学习主动性和创造性,进行了科学实验全过程的初步训练,有利于培养学生的自学创新能力,科学思维能力和知识的综合运用能力.设计性实验占实验总课时的 30%,无论是哪一类型的实验,实验课结束后,学生必须写出实验报告,实验指导教师根据每个学生实验课前的预习情况、实验课中程序调试能力以及实验报告的质量评定实验分数.实验报告的主要内容是:实验题目、实验目的、实验内容、实验过程.实验过程包括:算法的设计思想(框图),程序代码;上机实践:输入内容,得到结果;过程分析:在哪里出现错误,机器提示类型,怎样改正等内容.
4 重视算法,抓住核心
在教学中经常存在这样一种现象:很多学生对语法、结构等知识掌握得很好,但一旦碰到实际问题就束手无策,不知道如何用学到的知识解决实际问题,其实这是算法能力欠缺的一种表现,教师经常注重于分析每条语句的含义,却忽略了算法描述过程的展现,造成学生知其然不知其所以然.实际上,在程序设计语言中,算法是编程的精髓,有了算法,即有了编程的方法和步骤.如果学生掌握了良好的算法设计能力,也就掌握了钓鱼的本领,无论遇到什么问题都可以很好的解决[3].那么在实验教学中可以通过多种方法培养学生的算法设计能力.
(1)实验课中讲授并演示常用的算法.算法有很多种,学生一般只要掌握常用的就可以满足编写模块的需要;
(2)在实验教学鼓励领学生多阅读程序,分析过程,吸取他人的经验和成熟的算法,使学生少走弯路或不走弯路;
(3)开展实践性学习,引导学生积极参与编程实践,促进思维的飞跃,在课程结束后举行了课程设计和程序设计大赛.让学生亲自动手解决具有一定难度的实际问题,为之设计合适的算法,经过实践去培养学生的创新意思、应用意识和探究能力[4].这些意识和能力一旦形成,就会使学生利用程序设计语言分析与解决实际问题能力得到很快的提高.
5 注重因材施教,分层协作教学
在教学中,对于那些“吃不饱”的学生,可以介绍一些书籍给他们,并指导他们实践.而对那些“吃不了”的学生要因势利导,及时巩固所学内容.实验教学过程中,实验指导教师根据学生具体情况对各层次学生提出不同的要求,使所有学生通过实验课都能“吃饱、吃好”.在实验课中,笔者每次都为学生出一套上机实验题目:其中包括易、中、难和附加各一题.多数学生应当完成易、中难度的实验题目,部分学生根据个人能力完成难和附加题.这样以来可以使学生在实验教学过程都获得程序设计方法和上机调试能力的提高,让学生在编制程序和上机调试过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的.
6 利用网络优势,辅助实验教学
程序设计语言本身是一门实践性比较强的课程,利用多媒体手段可以演示一些复杂问题的操作过程,也可以形象化将一些抽象问题展示给学生.首先教师通过多媒体软件制作工具,可以将这此问题制作成演示程序,发布在教学网站上让学生访问和学习.例如程序的编辑、编译、调试和运行过程;程序的动态变化过程,例如程序执行过程中的输入输出及内存变化.其次,可以利用教学网站,解答学生的所提出的问题,也可以发表教师对某些问题的见解和建议.布置作业和实验内容,学生将作业和实验报告上传到网站,教师可以在网上点评作业和实验报告,并提供多种解题思路给学生.再次,师生们可利用教学网站,可将语言学习中的经验、心得以文字的形式进行网上交流,使师生相互改进,达到师生的学习过程中的全方位互动.因此,通过以上办法,可以集跬步以成千里,逐渐完善既有的教学风格,发展探索新的教学方法和思路.
7 完善成绩考核办法
计算机语言是一门实践性很强的编程课程,它不仅要求学生牢固掌握基础知识、基本概念,而且更重视培养学生的实际编程能力.建立一套适合程序设计语言实验教学特点的实验考核制度和对学生成绩的评价方法,其核心是突出“加强素质提高和能力培养、循序渐进、因材施教”的宗旨[5],真实地反映出学生达到的实际实验的水平和层次.实验考核要求学生应能较独立地上机完成设计的实验,教师可给予适当辅导.验证性实验根据要求提交实验成果软件,设计性实验提交实验报告和实验成果软件.实验作业应在布置后 1周内完成,迟交或缺交作业的次数不得多于作业总次数的 20%,否则将影响最终成绩的评定.提倡并鼓励与同学讨论作业,但最终必须独立完成,抄袭或复制其他同学作业者,该次作业成绩以 0分计,被抄袭或复制者当次作业成绩酌情处理.对学生实验成绩的评定不仅根据完成的验证性实验、综合性实验和设计性实验的情况,还要兼顾到完成开放性实验的学生表现来进行评价,对于完成开放性实验的学生可予以适当加分.实验总成绩占课程总成绩的 40%.
随着计算机软件技术的日新月异,社会对软件技术人才也日益需要.对于计算机专业的学生都应具备一定的程序设计能力.学会一种计算机语言,掌握编程思想,对于学习其它计算机语言可以起到触类旁通的作用.而学习计算机语言课程当然离不开上机实践环节,否则只是纸上谈兵,只有通过实践,才能真正的学会使用语言来解决各种实际问题.因而按照程序设计语言课程特点,适应时代的需要,需不断探索适合培养学生分析问题、解决问题和培养创新思维能力的实验教学方法.
[1] 龚 静.问题导向学习在计算机教学中的应用[J].西北医学教育,2008,(1):103-105.
[2] 易福华.Visua lBasic典型系统实战与解析[M].北京:电子工业出版社,2007.
[3] 张俊华.实验教学培养学生创新能力的研究与实践[J].教学研究,2006,(4):81-83.
[4] 艾长春.高职程序设计课堂教学的思考[J].甘肃科技,2008,(4):175-176.
[5] 卢向群.程序设计语言课程创新能力培养探析[J].中央民族大学学报(自然科学版),2007,16(2):185-188.