《C++程序设计》课程改革探索

2022-09-11

C++程序设计语言是所有程序设计语言中最有活力和应用最广的一种。C++程序设计的教学自20世纪90年代中期开始, 逐步成为各高等学校, 尤其是理工科专业的程序设计课程的主流。它是一种面向对象的语言, C++语言不仅可以用来编写系统软件, 也可以编写应用软件, 灵活性强, 对培养学生的抽象思维能力有很大帮助。正是由于C++语言的这些特点, 必定导致了C++语言较以往的结构化语言来说, 要难学一些。这就要求老师在教学中, 注重选择教学内容和教学方法。

1 C++课程的教学现状

1.1 C++教学存在以下问题

C++是从面向过程的C语言发展而来的, 并非是纯面向对象的语言, 面向过程和面向对象教学分离, 不利学生掌握先进的面向对象程序设计方法。C++语言语法要求严格, 少一个标点程序都无法正常运行。客观上, C++语言的运行环境太抽象, 工作平台相对陈旧, 未能使用主流的图形化的面向对象的操作系统平台, 不能从感官上吸引学生。教师往往过于注重语句、语法等细节的讲解, 学生难以看到该课程的全貌, 只会感到内容枯燥难学。在教学方法的设计上, 教师往往只注重C++语言知识点之间的系统性, 而对学生认知、学习兴趣的关注不够。另外, 学生的情绪对教师有很大的影响, 学生缺乏学习热情, 教师感觉上课费劲, 没有成就感。教学内容相对陈旧, 新的C++9 8标准的重要发展没有体现[1]。

1.2 学生与教学整体环境的现实情况

学生更重视数理化和外语, 计算机课的精力分配仅排第五、六位。本科生总学时数下降, 尽管计算机课程重要性上升, 但总学时不可能增加。学生认为应试教育天经地义, 大学应延续中学的应试教育, 不懂得主动学习。尽管中学教学大纲对计算机要求提高, 但学生水平未提高。大学生上机实践环境大大改善。大学生对计算机学习的期望值很高, 但对学习将遇到困难的心理准备不足。

2 教学改革的思路及对策

本课程改革的出发点是:与时俱进和实事求是。与时俱进是指教学内容要跟上计算机技术的最新发展;实事求是是指教学要切合当今大学生的实际情况, 切合本课程在开设的课程中的地位。

2.1 课程体系改革的思路

培养面向对象与参数化程序设计的能力。突出C++关键技术进行教学, 要有重点, 不要贪多嚼不烂。选择最新的C++体系 (98标准) 作为教学内容。突出程序设计, 强调算法而不是语法。立足于教学大纲, 让学生学到实实在在的应用技能。基础教学与实践教学相结合。突出编程能力的培养。解决面向对象与面向过程分离的问题, 直接讲授面向对象程序设计方法。培养大学生的自学与研究能力[2]。

2.2 C++教学改革对策

C++教学方法可以分为两类:一类是细细地讲, 所有的难点、问题和细节都举大量的例子一一交待清楚。把知识嚼烂了再反哺给学生。这样学生学习的难度是下来了, 但学生的能力很难提高。另一类是粗犷地讲, 讲重点、讲关键技术, 其他留给学生自学, 留给学生通过实验来掌握。教师主要起引导的作用, 让学生不走或少走弯路。我们提倡后一种教学方法。

要解决C++语言课程中存在的突出问题, 就要进行课程改革。改革的思路同样可以从主、客观两种角度出发, 遵循“教师是主导、学生是主体”的“双主”原则, 注重发挥学生的主观能动性, 重视教师的主导作用。该课程改革的目标是帮助学生学好C++语言知识, 同时提高学生的学习能力。具体的建议和对策可以归纳为:

2.2.1 围绕关键技术精讲多练

强调掌握面向对象C++的关键技术。与之有关的精讲, 无关的泛读。要求学生能熟练应用多态 (重载和超载) , 熟练应用模板, 熟练应用派生。习惯在构造函数中动态分配资源、在析构函数中释放资源和异常处理的方式。围绕关键技术教学是精简学时的关键。C++的内容很丰富, 只要达到以上三个熟练应用和一个习惯的目的即可。为了达到精讲多练, 应安排大量同步实验, 每个实验包括多个范例和练习, 当然可以选做一部分。

2.2.2 提倡庖丁解牛的方法

面向对象程序设计的原代码通常比较庞大, 原因是数据与数据的操作封装在一起, 原则上包含的操作要全面, 正是众多的成员函数使学生认为自己面对的是一个庞然大物, 吓也吓蒙了。教师应该指出成员函数是一个个独立的操作, 每一个成员函数都是简单的。可以给学生讲讲庖丁解牛的故事, 要求学生做到目无全牛, 也就是面向对象的程序要一个一个函数来编。

2.2.3 正确处理编程细节与大局观

教学中对算法的描述, 侧重于采用C++语言编程的细节的讲解。要求学生学会先分析算法, 再画流程图, 最后进行编程。特别是在“基本控制结构程序设计”和“函数”的教学中要严格贯彻这一要求, 之后是过渡阶段, 对编程的细节的讲授随教学推进而逐渐淡化, 对程序的整体掌握的要求逐渐加强, 使学生的编程能力上一个台阶。

算法表述的细节基本留给学生自己看, 教师重点讲解脱离具体C++语言的算法本身的描述和程序整体的构造。一方面提高学生的自学能力;另一方面引导学生的编程的大局观。

2.2.4 强调入门时对编程细节的指导, 提倡学生互相帮助

学生尚未入门时具体指导尤其重要, 最好是在实验室里配大屏幕显示, 教师为学生同步演示具体操作。在辅导实验时只可能解决少数学生的少数问题, 提倡上机时学生互相讨论互相帮助。提倡较难的题可以同学之间先讨论再独立完成, 规范化编程主要是灵活应用通用算法, 不是创造别人看不懂的算法, 初级阶段主要是模仿。要有讲评, 这是一个总结提高的过程。

2.2.5 培养学生调试程序的能力

教师在教学初期的课堂教学中应多做控制台应用程序设计全过程演示。学生调试程序的能力主要在这时培养, 不仅是C++, 而且以后“微机系统”等后续课程用D e b u g调试各种程序的基本功都是在这里打下的。

3 结语

在教学实践中, 我们发现C++程序设计是一门实践性很强的课程, 仅在基础教学中“精讲多练”还是不够的, 通常有课程设计作为实践教学。实践教学与基础教学应各有侧重, 互为补充。这样基础教学可以专攻一项, 教学难度也可以下降。在基础教学中采用W i n d o w s平台下的控制台方式, 以突出编程基础能力的培养。在实践部分比较全面地学习标准的W i n d o w s图形界面编程。操作性内容安排学生提前自学, 教师进行重点内容的演示。教学中尽可能采用研究型学习方法。让学生自选课题, 自定解决方案, 在掌握了基本方法和解决问题的途径后, 对自己感兴趣的内容, 自然愿意努力去寻找答案, 这比从老师那里得到答案要强得多。如果小组成员搭配合理, 基础较差的同学也可以跟上进度, 至少有一次全过程的学习机会[3]。

以上是针对C语言课程教学过程中存在的突出问题的改革建议与对策, 希望能够对该课程的改革起到抛砖引玉的作用。

摘要:本文针对《C++程序设计》教学过程中存在着内容抽象、学生缺乏学习兴趣、教师上课费劲、教学缺乏成效等问题, 从主观因素和客观因素两方面分析了其原因。通过教学实践, 在教学原则、教学内容和教学方法方面提出了该课程改革的建议和对策, 并作了有益的尝试。

关键词:C++语言,课程改革

参考文献

[1] 张静.一堂观摩课和最近发展区理论[J].烟台教育学院学报, 2005 (4) :29~31.

[2] 李宇翔、李端明、王大志.提高《C++语言程序设计》教学效果的思考[J].福建电脑, 2006 (1) :167~197.

[3] 张海玉.C语言程序设计教学方法探析[J].山西财政税务专科学校学报, 2006, 8 (1) :72~74.

上一篇:试谈如何做一名幸福的幼师下一篇:论油气储运过程的静电防范