周 昕
(哈尔滨理工大学计算机科学与技术学院,哈尔滨 150080)
C++程序设计课程教学方法改革
周 昕
(哈尔滨理工大学计算机科学与技术学院,哈尔滨 150080)
针对“C++程序设计”课程原有教学模式中存在的局限性,结合计算机应用专业的实际,提出了以明确教学目标、强化教材建设、采用“案例教学,任务驱动”的教学方法、通过教与练完美结合的各层次实践能力训练,以及充分发挥网络教学平台作用等特色的新型教学方法的改革,达到了增强学生理论水平,提高实践能力,提升学习兴趣,促进教与学的双向互动,提高学生编程能力、改善教学效果的目的。
C++程序设计;教学方法;实践
基于VisualC++6.0可视化开发平台的C++程序设计语言,以其强大的开发功能受到 IT业界的一致认同,是众多理工科院校开设的计算机基础必修课。该课程具有很强的可操作性,其实践教学是培养学生编程能力的重要手段[1]。
目前,各高校普遍是以《C++程序设计》[2]为讲授内容。伴随着一系列的教学改革,旧有的教材、教学方法、教学模式和教学手段都不再适用,探索一套适应当前 C++课程教学的教学法势在必行。本文旨在初步探究一套让学生重视 C++编程应用能力,提高学生的学习兴趣,促进教与学的双向互动,增强学生解决实际问题能力的教学方法。
(一)以理论作为教学的首要目的
长期以来,理论教学作为主导型教学模式,一直在我国高等学校的教学中占据着核心地位。目前,C++课程的教学仍采用课堂讲授、布置作业及实验,这种“教本位”的教学模式中,教师是课堂的中心,注重教的原发性和主动性,把着眼点放在“教”上,忽视了学生的主体性,让学生的学习始终处于被动状态,师生之间缺少互动,无法发挥学生的主观能动性[3]。学生普遍反映对知识应用缺乏整体感,按部就班地学习 C++程序设计的知识点,而没有依托于完整的实际项目,会令学生感到所学的知识点支离破碎,不成体系,学完以后容易遗忘。而且,缺乏实际工程项目开发体验,只是停留在知识点学习以及例题的练习上,没有实际工程项目开发的历练和体验,就无法直接感受所学知识在实际工作中的作用和地位,将会抑制学生的学习兴趣,影响学习效果[4]。
(二)教材选择不当
选择教材是教学过程中非常重要的一个环节,是直接反映教学重点风向标。选择重于理论的教材,教师很容易偏向介绍理论知识;反之则偏向介绍应用知识。早期教学中,教师容易落入教材千年不变的窠臼,不能审时度势地伴随当今数据库发展趋势,而片面讲解通用性理论,这些将最终影响到学生能力和兴趣的培养。
(三)教学手段陈旧
由于课堂教学学时有限,只能传授基本知识点,而且我们的学生一直是在考试体制的管制下学习的,因此学生学习不主动、教学效果不明显,加上部分学生对实践环节不够重视,导致学生在上机时不会融会贯通,缺乏独立解决问题的能力。
由于教材内容、重点和教学条件的限制,传统的教学手段一般比较单一、落后,教师在教学的过程中侧重陈述,学生重书本、轻实践的最终结果恰好适得其反,导致了学生的实践能力无法提高,程序的阅读能力差。
(一)明确教学目标,突出重点、把握难点
C++语言程序设计课程的教学目标为:通过该课程的教学,使学生掌握程序设计语言的一些基本概念和语法规则,掌握程序设计的一般方法,掌握过程化程序设计与面向对象程序设计方法,进一步培养学生的软件开发能力。
根据此目标,面对内容繁多的 C++语言,必须突出重点,突出实用性。主要教导学生能正确运用 C++语言编写程序,从思想与算法上去学习面向对象编程[5]。
1.突出重点:C++的内容繁多,不可能在有限的课堂时间内全面讲解,而应该有重点地去讲授知识要点。如 C++基本数据类型、语法结构、程序结构、传统结构化程序设计、数组、指针类和对象、继承和派生类、多态性和虚函数、面向对象编程等内容。
2.把握难点:教学内容中涉及很多的抽象概念,既有难度,又有深度。如数组、指针、继承、多态性等。
(二)加强教材建设,提高学生理论水平和实践能力
教师在教学的过程中应当选择合适的教材,对教学的内容能作合适的安排。由于学生学习该课程的能力和兴趣往往差别很大,对于学有余力的学生,应该为他们创造深入学习的机会。教材应该是一个学习的园地,不是演讲稿,教师的讲课就好像是导游,为学生游览整本书提供指导。
我们将“授课要精练,教材内容要广”作为教学改革的一项措施,这样有利于加强素质教育,从而提高教学质量。教材中以一个重点案例贯穿全书,使各章知识既相互独立又相辅相成,让学生在一学期的学习后,以本案例为基础,掌握完整开发一套数据库系统的全过程。
除此之外,还要向学生推荐适当的参考资料和文献,作为教材的有益补充。让教材为教学服务,最大程度地提高学生的理论水平和实践能力。
(三)采用“案例教学,任务驱动”的教学方法
在教学过程中,给出具体的案例,即提出问题,引导学生在问题中学习,给学生时间思考、讨论,以解决问题,从而更深入地展开学习。实践证明,这种教学方法能够充分调动学生学习的积极性和主动性[6]。
例如在讲数组的概念时,教师先设置问题编程计算个人的数学平均成绩。根据以前所学,学生会想到定义一个变量,通过循环来实现。进一步要求计算个人的数学成绩的均方差。学生想到需要说明个类型相同的变量用于存放这个人的数学成绩。再进一步要求计算个人的数学成绩均方差。这时候如再说明个变量,则会将问题复杂化,学生此刻需要讨论该如何合理说明变量。最后,再深入一步求个人的数学平均成绩。此时,当教师引出数组的概念、分析数组的性质时,学生不仅能够很容易记住数组的性质,还能够知道在什么情况下使用数组类型,达到事半功倍的效果。
在案例的选择上,要注意以下几点:
1.实践性强,应符合教学的实际,不能主观臆造。
2.启发性好,必须包括一定的问题,能启发学生的思维。
3.代表性强,使之反映同类问题的一般特征,能够对学生起到举一反三和触类旁通的作用。
4.难易适中,可以考虑总体看有难度,但通过层层分解,得到由一序列学生易于想出的子问题,让学生感到自己有能力实现,愿意主动积极地参与。
我们常用案例有:聊天程序、通讯录、商品库存管理、图书馆管理等。
任务设计与制定要有可操作性、趣味性和拓展性[7]114。可操作性保证学生都能完成实验而促进学生学习信心的建立,让每一位学生都有收获,使所有学生都“动”起来。趣味性体现在提高学生学习的兴趣,让学生带着兴趣来做任务,即便遇到困难也不会轻易放弃,对每一个任务都跃跃欲试,对进一步的学习充满期待。拓展性是让学有余力的学生有发挥的余地,激发他们进一步钻研的斗志。因此,最好在满足教学要求的前提下选择一些与现实生活联系比较紧密的题目做任务。
(四)加强实践教学
C++程序设计是一门实践性很强的课程[7]113,仅仅靠教学中“精讲多练”是不够的,还应该配套其他的实践学习。程序设计的实验教学通常分为三个层次:
(1)基础与验证型实验;(2)设计与开发型实验;(3)研究与创新型实验。
只有把它们贯穿整个教学过程,通过逐步提升,才能完成 C++程序设计课程的教学目标,培养学生分析问题、解决问题的能力,培养学生的创新意识。我们在“C++程序设计”的基础教学中主要以第一层次为主,在“C++课程设计”环节中完成第二层次的任务,并在其后的课外科研设计中,向第三层次推进。
教学活动中,把基础教学与课程设计相结合,各有侧重,互为补充。在基础教学中采用W indows平台下的控制台编程,突出编程基础能力的培养。在课程设计中引入标准W indows图形界面编程,把面向对象的编程思想应用于解决实际问题,提高学生编程应用能力,使教学的难点得到较好地分解,降低学习的难度。
整个实践教学组织过程中,教师可从以下几个方面进行考虑。
1.理论教学与上机实践紧密衔接。实践尽量在理论讲授之后立即进行,随讲随练,趁热打铁,会取得比较理想得效果。有条件时,在电子教室授课更为理想,教师可以在讲课之余,现场辅导学生上机演练。
2.明确实践目的和任务。根据教学内容,编写含有实例和习题的上机实践指导书,实践前,先熟悉实践指导书给出的主要步骤;上机实践过程中,让学生模仿实例进行操作,细心体会实例中所包含的理论知识,然后独立完成上机习题。实践结束要求完成实践报告,之后就普遍存在的问题进行课堂讲解。
3.做好辅导工作。学生上机时,应随时注意同学的实践过程和情况,并及时给予指导,有问题及时纠正,这样上机实践效果会更好。
4.认真批阅实践报告。让学生每次实验都应有详细的实验报告,写出收获和体会,已解决和尚未解决的问题,进一步完善的方法或设想。对课程设计后期阶段,还应该有小型设计答辩会,分组都来谈谈设计方案的制定,汇报分工与合作的情况,演示运行自己的系统。
(五)充分利用网络教学平台
使用形象化资料可以激发学生的学习兴趣,并加强教学效果。因此教师要精心策划教案,提供丰富的实例,精心制作 CA I课件,使教学内容紧凑有序,形象直观生动,便于学生实时理解掌握概念和方法,提高教学效果。
充分发挥网络教学平台的优势,作为课堂教学的补充,使学生能随时交流、复习和了解 C++语言的最新动态。在此平台之上,学生可以反复下载课件,可以进行在线答疑,同时鼓励学生参与网上论坛,开展各种学习讨论与交流,使其在积极、活跃的学习氛围中掌握相关知识。
(六)结合学生课外科研活动,培养学生解决实际问题的能力
根据我院倡导的,以提高学生解决实际问题能力为主旨,广泛开展学生课外科研活动的精神,从去年开始,我以 C ++语言课程为平台,收集一些典型问题布置给学生,形成小课题。让学生自由选题,单独承担,利用本教学阶段的学习内容,通过亲自调研、查阅文献、收集资料、分析研究、设计实施来解决问题,将学到的理论知识和现实生活实际问题紧密结合。
小课题完成后,让学生在“学生课外科研活动总结”上介绍自己的成果,互相交流,并训练表达能力。在教学内容的下一个阶段,教师可以为学生再布置新的题目,或让学生用新学到的知识对上一阶段的课题进行改进,得到更好的解决方法介绍给其他学生。
以上教学方法在计算机专业的C++程序设计课程中进行试用,教学效果反映较好。学生对该课程普遍表示感兴趣。通过实践,明显提高了学生的编程能力和应用能力。教师在今后的教学工作中,还要继续关注课程的发展方向和趋势,选择适当教材,更新知识体系和教学手段,使学生适应编程的实际需要。
[1]邹晓华,华伟.C++程序设计语言教学改革与实践[J].今日科苑,2008,(21):117.
[2]郑莉.C++语言程序设计[M].北京:清华大学出版社, 2006:19-20.
[3]顾勋梅.C++课程教学改革的探讨与研究 [J].科教文汇,2009,(8):39.
[4]赵香会,贺萌.项目教学法在高职 C++课程教学中的探索和应用[J].科技信息,2009,(33):299.
[5]余战秋.《C++语言程序设计》课程教学方法研究[J].巢湖学院学报,2007,(9):140-142.
[6]贾振华,李瑛.《C++程序设计》课程教学方法探析[J].华北航天工业学院学报,2006,(8):47-49.
[7]刘彦宾.C++课程设计教学实践与探讨[J].萍乡高等专科学校学报,2009,(6).
Abstract:This paper explores the teachingmethodsofC++coursewhich is based on pointingout the limits in the teaching course at present,and concerning computermajored students'practice.The methods aims to enhance the students'ability of theory and practice,arouse their interest and promote the interactivity be tween teaching and learning,enhance the students'abilityof programming and application.
Key words:C++programming;teachingmethods;practice
(责任编辑:侯秀梅)
Research on TeachingM ethods of C++Programm ing
ZHOU Xin
(Harbin University of Science and Technology,Harbin 150080,China)
G642.0
A
1001-7836(2010)06-0072-03
2010-04-19
周昕(1968-),女,黑龙江哈尔滨人,讲师,从事面向对象程序设计课程理论教学研究。