APP下载

C++语言程序设计教学的思考和建议

2012-11-27裴大容

电脑知识与技术 2012年29期
关键词:面向对象指针程序设计

裴大容

摘要:该文针对目前C++程序设计教学中学生感觉内容多、难而零乱,实际编程应用能力差等问题进行思考,并结合自己的教学经验在教学内容、教学思路、教学手段、实验实训等方面提出了建议。

关键词:C++程序设计;教学建议

中图分类号:G642文献标识码:A文章编号:1009-3044(2012)29-7028-02

1 目前存在的问题

C++程序设计语言因为其语言简洁、紧凑,语法灵活,语言表达能力强,代码容易维护、可移植性强、执行效率高,支持数据抽象、支持面向对象程序设计和泛型程序设计等优点而被广泛应用,成为当今软件开发的主流语言之一,也逐渐成为许多高校计算机专业程序设计基础编程语言的首选。。但由于C++语言本身是从C过渡来的一个面向对象的程序设计语言,所以C++即支持c的面向过程的编程又支持面向对象的编程应用,因此C++教学内容非常多,知识点多,语法多,并且C++中有很多比较难的知识点,比如指针、多继承等,而教学课时一般都比较少,理论加实践72学时左右安排在一学期上完。总体导致的结果就是,本课程学完后,学生感觉学习内容多而且零乱,没有系统性,一旦遇到实际面向对象编程应用问题时感觉无从下手,无法编程。针对这些现象进行思考后,结合自己的教学经验提出了一些教学建议。

2 教学中的建议

2.1 教学内容的裁剪

总体思路是突出重点,适当降低难度;把面向对象关键性技术的知识点尽量前提,增加学习熟悉、使用和掌握的机会。

在面向过程内容学习中重点为:基础数据类型、常量变量、控制结构、数组、指针、函数、结构;在面向对象学习中重点:类、对象、封装、继承、多态和输入输出流。

数组虽然是重点,但教学中只以一维数组和字符数组为重点平时也应用最多,而对于二维数组及多维数组只需弄清楚其含义就可以了,到具体要应用时补充再自学。对于指针既是一个重点又是一个难点:虽然指针是C++一个最重要的特性,它的灵活性、方便性和快捷性令其他语言望尘莫及,但同时也带来了不安全性的隐患和学习的难度。但现在C++中又引入很多技术代替指针的很多功能。比如C++中的引用,其功能可以代替指针实现间接访问,但比指针安全也比指针的使用简单,另外成员函数可以取代函数指针等等。因此在讲解指针内容时,我们可以适当的降低难度,简化内容。重点是要弄清指针的含义,指针对一维数组的引用就可以了。

对于面向对象部分的内容我们可以适当弱化语法方面的问题,而重点强调面向对象程序设计方法,语法方面的问题主要在应用中进一步强化和巩固。

对于面向对象的关键性技术我们可以尽量让学生提早接触,比如多态,我们在讲解函数时,就可把函数重载和函数模板提前到这部分讲解,让学生无意中先接触和使用多态技术,到后面真正讲解面向对象的这部分内容时,学生实际上早已熟悉相关知识,只是加强理解和应用而已。

2.2 教学思路

C++的内容,从总体上而言由2部分构成:面向过程和面向对象;在这2个部分的教学及衔接中要各有侧重点,良好过渡;

在面向过程教学中主要强调算法、流程图和程序跟踪调试的学习;在从面向过程向面向对象的过渡过程中,把面向过程与面向对象之间的内在关系凸显出来(见图1和图2),让学生意思到面向对象程序设计包含面向过程程序设计,是面向过程程序设计的发展。可以这么理解,面向对象程序设计主要勾勒出了程序的整体框架,体现程序各部分及各层次之间的内在关系,而面向过程的程序设计方法可用在面向对象的底层开发中,即对象内部(或者说类内部)的算法实现中。不然学生会觉得2者之间很突兀,不能衔接起来,有一种抵触或觉得难以接受的思想。而在面向对象的教学中,重点突出面向对象程序设计的方法。如何针对具体的问题进行对象的划分和对象设计的过程。

由图2中的框出部分能很容易看出,对象内部的算法实现部分依然要用面向过程的方法设计。

2.3 教学手段

综合利用多种教学手段:多媒体+板书+网络;以多媒体为主,板书为辅,同时课外充分利用网络进行交流等多种教学手段;因为利用多媒体讲课可以图文并茂、形象生动、同时交互性好、信息量大等特点。对课程中难以理解的一些比较抽象的内容,可以给予直观展示和动态模拟,起到事半功倍的效果。比较在讲到指针变量概念时,说指针变量是指向同类型变量的变量,这个概念听起来很饶口,并且不好懂。通过多媒体讲解时,在给出一个指针变量赋值语句之后,紧接着用一个图形动态表明这个指针变量的内容和所赋值的那个变量之间内存地址的关系,然后用一个箭头动态表示出这种指向,学生很快就可以清楚明白的理解指针变量的含义了。传统的板书教学虽然速度有些慢,但是在讲解一些难点时,却可以作为必要的辅助手段。比如讲解算法的设计过程,由于放慢了讲解速度,正好可以方便学生理解和回味。另外由于课堂上时间总是有限的,当课余学生想和老师探讨问题时,就可以充分发挥网络的便利。学生可以利用电子邮件或QQ等给老师提问或留言,老师可以很方便及时的答疑解惑,这样也进一步促进和提高了学生学习的兴趣和积极性,加强了师生互动。

2.4 实验实训

现在一般学校都由于学时紧张,安排的实验课课时很有限,在这些规定的课时中只能针对所学的知识点进行相应复习、巩固和应用,而不能将相应知识点连贯起来,所以所有知识点都是孤立的,感觉很零碎。因此当他们遇到一个综合性应用或稍微复杂一点的问题时,就感觉无从下手。因此非常有必要在本课程学习完后,利用假期时间增加一个为期2周的小型综合应用项目的课程设计,比如图书管理系统或者成绩管理系统等。让学生把面向对象程序设计从分析、设计、实现到测试这个完整的流程走一遍,将所有的知识点综合起来形成一个系统性的知识结构。虽然是小型应用项目,但麻雀虽小五脏具全,使得学生有了一个整体设计的概念后,就不至于以后在工作中遇到一个实际应用的编程时毫无头绪。注意在实训过程中老师要给予必要的指导,但主要依靠学生自己完成。

2.5 学习习惯

凡是程序设计语言课,要想学好都无一例外的要求:多想、多写、多上机调试。因此从学生开始实习时多就要求他们养成这些好习惯。另外编程时,为了增加程序的可读性,为以后工作打下良好的基础,在书写程序时要求有良好的编程习惯。比如代码的缩进、必要的空格空格和空行;标识符的命名最好做到见名知义、简洁、易区分;变量名小写,宏和常量大写。对代码进行必要的注释等。这些看起来很简单的一些编程习惯,对增强程序的可读性有非常大的作用,但是平时学生为了图省事或方便都不愿意坚持这样做。因此在学习编程初期老师要坚持不懈的多强调这些问题。

3 结束语

针对目前学生学习C++程序设计教学中遇到的一些问题,进行思考和总结后提出了自己的建议。把这些建议的内容在近2届学生中贯彻和执行后,发现学生编程应用能力有较大的提高,学习积极性和主动性也比以前强。

参考文献:

[1] 温秀梅,丁学钧,李建华.C++语言程序设计教程与实验(第三版)[M].北京:清华大学出版社, 2012.

[2] 卫春芳.“C++程序设计”课程改革[J].计算机教育,2009(23).

[3] 李琳,徐雨明,王樱.浅谈C++课程教学方法的研究与应用[J].科技信息,2009(16).

猜你喜欢

面向对象指针程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
高职高专院校C语言程序设计教学改革探索
面向对象Web开发编程语言的的评估方法
基于改进Hough变换和BP网络的指针仪表识别
PLC梯形图程序设计技巧及应用
ARM Cortex—MO/MO+单片机的指针变量替换方法
面向对象信息提取中影像分割参数的选择