作者:王海龙 李晓楠 郑秋生
【摘 要】C++程序设计是高等院校计算机专业教学体系中的一门重要的主干课。本文就该课程教学中存在问题,提出了改进措施和解决方法。强调学生要学以致用,加强对学生程序设计能力的培养,提高C++程序设计的教学效果。
【关键词】C++程序设计教学方法教学改革
1引言
在计算机课程中,“C++程序设计是计算机专业的一门必修基础课,该语言以其高效而又实用的特性:既可以进行过程化程序设计,又可进行面向对象的程序设计,因此逐步成为各高校程序设计课程中的主流。C++语言既是进行软件开发的直接工具,又是“数据结构”、“操作系统”、“编译原理”、“软件工程”以及其它相关课程的先修课程,因此,在整个教学体系中占据十分重要的地位。
中原工学院计算机科学与技术专业从2007版培养方案开始,将2006版培养方案中“高级语言程序设计C++”课程分解成“高级语言程序设计C++(上)”、“高级语言程序设计C++(下)”,两门课程,分别在大学一年级的第一、二学期开设,第一学期主要教授过程化程序设计,第二学期主要教授面向对象程序设计,以Visual C++6.0为实验教学平台。
笔者根据自身教学经验和讲授过程中出现的问题, 在此进行分析和探讨, 以期能进一步提高本课程的教学效果和教学质量。
2存在的主要问题
(1)程序设计类课程一般以程序设计语言自身的体系为教学路线,侧重于编程语言的基本概念、基本语句和语法的详细讲解,而没有把逻辑与实际编程解题思路作为教学的主线。 达不到培养学生分析问题和解决问题的实际能力的目的。学生面对的是一大堆语言符号,需要记忆的内容过多。在教学过程中学生们感觉学习相应的知识点(语法)并不困难,听老师讲解例题时也容易明白。但真正让学生去解决实际问题,有相当一部分学生感到无从下手,觉得问题太难。学生对于课本上的例子容易理解,但不会举一反三。
(2)实践性教学薄弱。只有在上机实践中学生才能真正学会如何编写程序和调试程序,才能更好地掌握程序设计的理论知识。可在C++语言实践教学中,由于课时有限、教学条件有限等没有把编程思路和程序调试放在首位,对学生分析问题和解决问题的能力训练不够;上机内容基本上都是立足于C++语言本身的一些语法规则,和实际开发应用脱节,无法激起学生的兴趣。
(3)学生学习差距较大
由于学生水平不一,并且部分学生学习自觉性较差,学生学习的效果相差十分明显,学生的编程能力逐渐下降,学生不原意写C++/MFC程序,而是写 C#/JSP等网站程序设计。如果开展有效的教学研究,使大多数学生都能学懂C++程序设计的基本概念、掌握常用的语法及算法、能用C++编写通用程序,是值得研究的问题。
3教学与实践改革的具体措施
3.1 以"深入浅出,边学边用"作为指导思想组织教学内容
对于枯燥的语言叙述,改用生动的比喻进行引导。比如,学生学习指针概念时,对"间接存取"难以理解,就借用比喻:将A 房间的钥匙放在B 房间里, 若要取A 房间里的物品, 就需要先打开B房间,取出A 钥匙,再打开A 房间,取出A 房间的物品,这就是"间接存取"。学生很快就能理解,也加深了指针的概念。再比如,将给数组分配存储单元比喻成住旅馆分配连续的房间, 学链表时比喻成分配不连续的房间,使学生由抽象变具体,达到深入浅出,容易接受的目的。变更教学形式,结合实际生活,组织教学内容以" 提出问题--分析解决问题的方法--归纳出概念或一般规律"为线索,侧重学以致用。每堂课都安排简单实用的程序学习并编制,让学生全部可以接受,每堂课都有一点成就感, 打消往届学生带给他们学习C++语言的畏难情绪。比如学生学习了输入输出函数的使用,就提出"简单的超市算账问题",仅仅使用顺序结构程序设计方法就能解决;将问题加深一点,购物达到一定的金额商品会打折,金额不同折扣率不同, 引入选择结构的程序设计方法, 利用类似的方法逐步深入,培养学生分析解决问题的方法,边学边用,展示C++语言的用武之地,激发学生学习的兴趣。
3.2 加强实践教学环节
C++语言课程是一门实践性很强的课程,一定要动手多写设计、编写程序才能有所进步。在实践教学中必须做到循序渐进,对所学的每一部分内容都应该要求学生完成一定数量的实验内容。每部分的上机习题必须精心挑选,既要有基本的、较简单的题目,又要有一些具有挑战性的新颖有趣的题目。学生自己编写的程序一定要到机器上去实现,通过调试程序来修订语法错误,排除逻辑错误,进而提高编程能力,通过做一定量的习题,可以积累一定的经验,同时对程序设计的精髓会有所领悟,从而重视上机实验。
强调学以致用,展示学生能够理解而且又容易提起兴趣的用C++语言设计的软件以及往届学生的设计成果,给学生布置了几个专题,比如:设计班级成绩管理系统、简易的图书管理系统、简易的通讯录管理系统、小游戏等让学生利用课余时间去思考、收集资料,以教师为主导,以任务为主线,以学生为主体,过一段时间在课堂上组织学生发言和讨论一次, 看看大家对这些问题的思考程度,提提建议,鼓励加引导,最后到完成。这种教学法不仅可以让学生获得许多课外知识,同时也促进教学内容的改革,而且也有利于充分挖掘学生的学习潜力。
通过一个阶段C++语言的学习, 选拔出一批优秀的同学,单独培养,结合所学专业, 加宽加快加深学习内容, 使他们尽早切人实际应用, 有条件的进入相关的开放实验室, 参与计算机应用的小课题研究或参与大学生创新设计大赛等,培养学生中的学术带头人[2]。以榜样的力量促进良好的学风建设, 形成良好的学习氛围, 促进整体的学习进步。在C 语言教学中,培养学生的自学能力尤为重要,如果学生的学习完全依赖教师才能掌握,而没有一定的自学能力,其所学的知识很快就会被淘汰。对于多数学生,则把精力放在最基本、最常用的内容上,让他们学好基本功,掌握程序设计的方法,为后续课程的学习打下基础。
3.3开展4年不间断的C++编程训练
仅靠一个学期的c++语言的学习是远远不够得,需要在后续课程中进行巩固提高。C++兼容C语言,C语言是C++的子集,我们把C语言和C++融合为一门课程,第一学期授课以C语言为主,第二学期讲授以C++为主,所有程序都以VC++为调式环境。经过这样的整合,知识内容显得很连贯,一气呵成,为第三学期的Windows程序设计课程奠定了基础。该课程利用MFC类库进行Windows应用程序开发。后继的数据结构、算法分析与设计、计算机网络原理、操作系统、编译原理等课程实践环节都利用C++语言进行开发,开展4年不间断的C++编程训练。
3.4 改革课程的考核方法
对学生学习情况的考核不应以停留“期末试卷”为中心的传统考试观念,应该进行改进,以此提高学生对知识的运用能力、自学能力、分析和解决问题的能力。
(1)加大平时成绩的考核。平时考核的方法有:课堂提问、作业与练习、阶段性测试、包括学生提出有价值的问题都给予记分。平时考核成绩占总成绩的比例为20%。加大平时成绩的考核,有利于全面测评学生能力。这样可以激励学生学习的积极性和主动性,并将这种积极与主动精神贯穿于课程学习的始终。
(2)加大上机考核。对C 语言的掌握情况主要看上机的调试,要对上机过程和结果给学生进行考核,既要看结果,也要看过程。应鼓励学生在程序的设计上精简优化。上机考核成绩占总成绩的比例为20%。
3.5 应用现代化教学手段提高教学效率和效果
形式多样的教学手段课堂教学要应用现代化教育技术, 使用多媒体进行课堂教学, 给学生营造一个良好的程序设计环境。与传统教学方式相比, 多媒体教学具有形象生动、图文并茂、交互性好、信息量大、减少文字书写等显著特点, 对课程中难以理解的抽象内容, 可以给予直观展示和动态模拟, 达到既能辅助教师形象地讲授课程中的难点和重点的目的, 又能激发学生学习的兴趣, 从而提高教学效率和教学效果。并且, 把讲授法、练习法、实验法、演示法和网络技术结合起来, 将课程中抽象的、难以理解的教学内容, 进行形象化, 这样就更利于学生理解与记忆。
4 结语
本文针对笔者在连续几年“高级语言程序设计C++”教学过程中出现的问题, 进行了思考和探索, 并将所提出的方案在教学活动中实施, 较好地激发了学生的兴趣, 调动了学生的学习积极性, 培养学生的自学能力, 提高学生的编程思想和解决实际问题的能力,取得了很好的教学效果。
参考文献
[1] 张庆岚.提高《C 程序设计》课程教学质量的探讨[J].福建电脑,2009年第1期.
[2] 施敏华,等.计算机专业实验教学体系探索[J].计算机教育, 2007(10).
[3] 马苗,等.“面向对象程序设计与C++”教学中的问题与思考[J].计算机教育, 2008(6).
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。