樊广军
【摘 要】本文根据高校学生在学习C++程序设计课程中常见的问题,从明确教学目标,改革教学理念、模式、方法出发,阐述了以学生为主体,以教师为主导的“双主”教学观念,介绍了优化教学内容和课时配置的教学改革尝试,探讨了笔者在教学和课程考核等环节方面所进行的一些教改方法。
【关键词】C++程序设计 教学改革 能力培养
1 引言
目前高校的非计算机理工科专业基本上都开设了计算机程序设计这门公共基础课程,各种专业院系根据本身的特点和需要该门课程所讲授的程序设计语言也有所不同,但由于其功能的强大和运用的广泛性,绝大多数专业还是选择了C++程序设计语言作为该课程所讲授的内容,因此搞好C++程序设计语言课程的教学改革对提高本课程的教学质量具有十分重要的现实意义。
2 C++程序设计课程教学中存在的问题
笔者从近些年的教学实践及教学效果来看,感到C++程序设计课程教学主要存在以下几个方面的问题:
2.1教学内容繁多而教学课时有限
C++程序设计课程教学内容从知识体系上应该使学生全面了解并掌握面向的对象的控制台编程、界面模式的API编程、基于微软的MFC的编程三个方面的知识,否则学生的编程能力和水平难以达到满足现代工程实践应用软件开发的基本要求。由于目前高校教学改革普遍精减本课程的教学课时约为48个学时(其中16学时为实验,32学时为理论教学),另外再加两个星期的课程综合实践。熟悉C++程序设计课程教学的人都知道:如此繁多的教学内容如何保证在这有限的学时内圆满地完成教学任务的确是一个令人棘手的问题。
2.2部分学生对本课程学习思想上缺乏应有的重视
由于部分学生认为本课程不是非计算机专业学生核心专业基础课程,不了解工程应用软件开发的必要性,产生了学好本课程与否不重要的错误想法。一旦有这种错误思想的产生,再加上本课程本来内容就难学,随着教学过程的深入,学生会遇到一些抽象的概念和理论难以及时地理解和消化,从而影响到后续内容的学习,而且随着这些未理解消化的问题的越积越多,不可避免地会影响学习效果。
2.3 部分学生编程实践能力不强
目前大部分C++程序的设计开发环境都采用VC++的集成开发环境,该环境集成了C++程序的编辑、编译、调试等各个环节,功能十分丰富。部分同学由于上机编程练习的机会比较少,在那有限的实验课时里,只能照搬书中的实例做些基础与验证型实验,难以有效地运用VC++集成开发环境完成一些设计与开发型实验。这主要是由于他们自主编程的实践能力不强,还需要加大力气加强培养。
上述问题的形成原因是多方面的,要想解决这些问题有必要在教学理念、教学方法及手段、教学内容、实验教学及课程考核方式等方面对现有的教学方案进行改革。
3 教学改革的措施
3.1明确教学目标,变革课堂教学理念、模式和方法
高校C++程序设计课程的教学目标应定位于培养基础知识扎实,应用程序设计编程能力强,在应用程序设计方面具有一定创新精神的高素质人才为目标。要实现这一目标,必须突破传统的以培养“知识型”人才为目标的观念和模式,采取“主导—主体”双主式的教学模式,即强化以学生为主体,以教师为主导的教学理念,不要片面强调教师或学生单方面的作用,这样既有利于发挥教师的主导作用,又能充分发挥学生的认知主体作用,从而达到培养“应用型”人才的目标。
根据构建主义的学习理论我们可以知道:学生(学习的主体) 是在与客观环境(所学内容)的交互过程中构建自己的知识体系结构的。目前高校C++程序设计课程教学的客观现实条件就是教学课时少,教学内容繁多,如果片面强调教师讲授的作用,教学内容面面俱到的话,一是时间上做不到,二是教学内容重点不突出,学生会从思想上产生依赖性,认为老师上课反正都会讲解,从而不主动去自学和思考,放弃了自主与所学内容不断交互的机会,这样教学效果未必会好。基于上述原因,在教学方法上,我们强化多元化方法教学,主要采用多媒体教学方式和互动式教学方式与传统教学方式相融合,精讲多练。多媒体教学方式能够在有限的时间里丰富教学内容,并将有些难以理解的内容配以动画,使学生便于理解内容的同时,激发出一定的学习兴趣;这样既突破了教学中的重点和难点,又能让学生对所学的内容留下比较深刻的印象。互动式教学方式要求教师从主讲者转变为学生学习活动的设计者和指导者,教师把以教为主转变为学生以学为主。 通过给学生布置课后自学内容,在讲解过程中为学生设置问题,检查自学效果,引导学生与教师课堂讲授时面对面的交流,启发学生思考,然后让学生及时理解与消化所学内容,最后教师对自学内容进行归纳总结,进一步强化学生的学习效果。另外在课堂上教师还可以通过现场编程,使学生能够参与到程序的编辑和调试过程中,能够跟随教师共同解决问题,获得正确的结果。这种教学方式增强了学生的参与意识和兴趣,同时也能顺便让学生学会利用VC++集成开发环境进行程序的编辑、编译与调试过程,使学生由被动学习转变为主动学习。
3.2优化教学内容和教学课时的配置
优化教学内容的首要环节就是要精选一套优秀的教材。笔者认为作为优秀教材应该要内容完整,组织合理,简明扼要,实例经典,实验编程配置的练习题既要能验证学生所学的知识内容,又要能使学生举一反三,进行一些应用开发方面的训练。在充分利用好现有精选教材的同时,可以组织编写更为适合自己专业特色的新教材。
此外由于C++知识体系复杂,内容繁多,但教学时数相当有限,所以为了更好地提高教学质量,教师在理论讲授时必须要做到教学内容系统连贯,一般内容点到即可(如C++的基本数据类型、程序的三种基本结构等等),留给学生自学练习,重点难点内容要多讲(如指针概念的应用、虚函数与多态性、重载与模板的应用等等),而且还要注意精讲多练,这样一方面可以有效地解决教学课时少内容多的矛盾,另一方面也可以充分调动学生自学的积极性,培养学生的自学能力。endprint
针对教学计划所规定的教学内容科学合理地分配教学课时也是至关重要的问题,为了有效地提高教学质量,我们把教学内容传授分为两个阶段:第一阶段就是在前面48个基本学时内把C++的基本内容全部传授完毕;第二阶段就是在另外两周的课程综合实践的时间里,利用学习时间相对集中的优势,结合以前学过的内容,简练地介绍一下界面模式的API编程,系统而精练地重点讲授基于微软的MFC编程。
3.3改革实践教学
C++程序设计是一门实践性很强的课程,实践训练环节相当重要,实践能力的培养也是该课程的核心任务,而且学生也只有通过大量的上机实验才能真正理解和消化教材上的理论知识。实践教学包括课程实验和课程综合实践两个环节。
课程实验主要是检查学生对基本知识点的理解和掌握情况,侧重单元知识点的强化培训。采取的主要措施有: 根据课堂讲授的实例,恰当设置实验,注意使学生学习编程逐步从模仿转向设计,要求学生事先编好程序填写实验报告再进实验室,提高实验课的效率,学生在自己成功地编制、调试、运行实验程序后,及时将经过整理后的实验结果通过实验室的局域网提交至服务器,同时要求学生自己也要及时用移动硬盘把自己的实验程序保留下来,以便将来进一步的复习参考。要求学生这样做的目的,一方面可以督促学生按时按量地完成要求的实验作业,另一方面让学生保留下自己的程序,能让学生有种成就感,从而激发学生的学习兴趣。实验过程中指导教师要注意两个方面的问题,第一就是从一开始就注意培养学生编程的规范化及标准化素质,因为一个高质量的程序需要规范的命名、科学的编码风格及必要的注释;第二就是要使学生能学会及时发现问题及时地利用调试工具、手段等解决程序中出现的问题。实验课后教师必须做些归纳总结,对于一些共性的问题,教师必需提出来进行重点总结讲解,以利于学生全面掌握。
课程综合实践这个环节有两周时间集中进行学习,在这两周的时间里,除了要对MFC编程理论知识进行重点介绍,强化训练外,更为重要的是要对已学过的程序设计内容进行综合性的运用来编制一个功能比较复杂的应用程序。为了更好地提高综合实践的教学质量,我们强调学生要按软件工程的思想对一个应用程序要首先进行需求分析,明确应用程序要实现的各项功能;接下来采用面向对象的程序设计思想对应用程序进行总体设计和详细设计,即设计出应用程序中所需要的各种类及类与类之间的关系,并完成每个类的属性和方法设计;然后再进行编码调试运行开发。在这个环节的代码编写过程中我们要求学生充分利用MFC强化训练中学习的内容进行可视化编程,即学即用,发现问题指导教师要教会学生充分利用VC++集成开发环境的调试工具进行调试,及时地解决程序设计中出现的各种问题,这样既可以充分调动学生学习MFC编程的学习兴趣,又能充分保证学生综合编程练习的顺利完成。
3.4改革考核环节
怎么考核对学生的学习有着十分重要的导向作用。以往的考核中以笔试为主,忽略了对学生编程能力的考核,这不能全面反映出学生学习的真实水平和教师的教学效果。为了更好地运用考核指挥捧作用,我们对考核环节作了如下改革:
1)改革考试方式,注重提高学生动手能力。为了改革C++程序设计课程的考试方式,我们制定了详细的课程考核计划,注重加强教学过程考核,且考核形式也注重多样化、强化教学过程中学生能力培养。
2) 改革考试内容,注重提高学生综合能力。在检验学生基本知识掌握情况的同时,注重学生思维能力、实践能力、创新精神的培养和综合运用知识分析问题、解决问题的能力考核。
3) 赛考结合,注重提高学生创新能力。课程考试与课程竞赛相结合,制订将比赛成绩与考试成绩挂钩的相关管理办法,激励学生奋发学习,提高学生创新能力。
为了搞好该课程的考试改革,任课教师须将考核方式、要求等提前告知学生,并使学生充分了解成绩评定方案(如课堂表现、回答问题、各种测验、作业、竞赛等实施计划以及在课程最终成绩中所占比例等)。实施过程中,任课教师须认真做好过程成绩记载,对每一学生的每一项评定结果及时记录在案,在课程结束后、期末考试前向学生公布。同时将过程考核标准、结论等资料进行归档。通过上述考核环节的改革,基本能有效地发挥考核指挥棒的作用,激发学生对本课程学习的主观能动性,引导学生将更多的精力投入到实际编程能力的培养.从而达到这门课程的教学目的。
4 结束语
高校C++程序设计课程改革的思路、方法多种多样,但不管怎么变化,其宗旨都是为了不断提高教学质量,培养学生应用C++程序设计语言编写各种实际应用程序的编程能力。在这个教学过程中,教师和学生都要充分发挥“主导—主体”作用,即教师和学生都必须充分发挥各自的主观能动性才能收到良好的教学效果,近些年来,笔者在教师如何教学,学生如何才能学好C++程序设计课程两个方面进行了不断的探索和努力,积累了一些经验,通过后续跨学年的追踪观察发现:将这些教学改革中所取得的成功经验运用于该课程教学过程中后,学生在后续的学年中应用C++程序设计语言解决其他学科中的应用编程问题能力有显著的提高。
【参考文献】
[1]齐新军,宗明魁. C + + 程序设计课程教改与学生实践能力培养[J]. 中国新技术新产品,2009(19).
[2]吕智林,龚文英. VC++程序设计课程教学改革的探索[J]. 广西大学学报(自然科学版),2004(9).
[3]王晓磊,汪强. 高校 Visual C++程序设计课程教学改革初探[J]. 电脑学习, 2009(6).endprint