研究生VC++课程进阶教材建设研究

2019-04-27 01:40陈松刘君刘洋
课程教育研究 2019年10期
关键词:教材建设课程

陈松 刘君 刘洋

【摘要】教材建设是高校课程建设的重中之重,本文根据研究生VC++课程教材的现状,结合编写《C++程序设计进阶教程—从C到VC++》教材的实践,探讨了研究生VC++课程进阶教材建设中的若干问题。

【关键词】研究生VC++课程 进阶教学 教材建设

【中图分类号】G643.2 【文献标识码】A 【文章编号】2095-3089(2019)10-0030-02

VC++课程是重庆交通大学近年来,面向全校非计算机专业硕士研究生开放的课程,一直保持着较高的选课率。该课程旨在培养学生掌握VC++语言的基本语法规则,养成规范的编程习惯,具备一定的的软件开发能力,为下一步在工程项目中的应用打下良好的基础。

一、教材建设的必要性

现在,全国各大高校VC++的课程开设得非常普及,出版了许多教材,但是这些计算机语言教材一部分是面向计算机专业的学生,而面向非计算机专业学生的另一部分教材,却主要是针对等级考试编写的。作为非计算机专业的研究生,他们不作计算机方向的理论研究,也不参加计算机等级考试,而是直接面对实际应用,参加各自导师的项目。这类教材缺非常少,近年来随着各高校对研究生招生规模的扩大,这个问题显得突出起来。

在任何课程的教学实践活动中,教材始终是一个不可或缺的第一要素,教材是体现教学内容和要求的载体,是保障教学质量的重中之重。一本适合的教材,不但可以启发同学们的思维,便于同学们的自学,也方便老师的教学。多年来的教学实践,使我们深深的体会到,一套适用的教材,是确保一门课程教学质量的关键。

重庆交通大学历来十分重视教材的建设,我们在研究消化了国内外多部专著、教材的基础上,结合非计算机专业研究生的教学实践特点,自编讲义进行了这门课程的讲授,随后在不断总结经验,改进课程内容和教学方法的基础上,编写了《C++程序设计进阶教程—从C到VC++》教材。并由清华大学出版社出版,作为正式的成熟教材使用。

二、进阶教材建设的特点

这本教材作为非计算机专业研究生的教学用书。和其它有关的VC++教材相比,有如下的一些特点:

1.本书总体以Windows平台的VC++编程为目标,采用进阶教学的方法,全书共分为三个部分,内容从C到C++再到VC++,C部分讲述了C语言编程的基本概念和方法;C++部分在C语言的基础上,围绕类和对象两个核心,以封装、继承和多态为主线展开学习;VC++部分重点讲述MFC的运行机制,对MFC的核心结构文档视图做了详细的分析。全书在内容的编排上,在C语言编程和C++基础部分,去掉或者弱化掉和Windows编程关系不大的部分,使得本课程尽早的进入到Windows平台。

2.第一部分C语言编程:是全书的基础,介绍C语言涉及的基本概念,C语言编程的基本方法,这一部分的内容包括:C语言概述、C语言的基本元素、C程序的构成、构造类型与指针、文件;目前,市面上提供的绝大部分 C 语言程序设计教材都偏重于语法规则的介绍,教材的大部分篇幅都在反复介绍各种C语句的正确或错误的用法,耗费了学习过程中的大部分精力,而真正使用 C 语言的编程能力没有得到培养。针对这些问题,《C++程序设计进阶教程—从C到VC++》教材在这部分,充分考虑了 C 语言结构化程序设计的特点,在章节的安排上,没有像一般的教材那样,将函数、指针、结构体等单独作为独立的一章,而是按照C 语言的结构构架,放入相应的部分,同時去掉或者弱化那些针对等级考试的多而杂的语法规则介绍。从而使学生将重点放在程序设计思路和编程技能的培养上来。

3.第二部分C++基础:在C语言的基础上,增加了类和对象这两大核心概念,围绕着封装、继承和多态展开C++的学习。这部分的内容包括:封装、继承、多态、输入输出流。

这部分的难点是让学生理解类和对象这两大核心概念,本教材在引入这两大核心概念上,针对非计算机专业的学生,特别注意避免过于专业化的描述,力求做到通俗易懂。下面是本教材具体引入类和对象的语言组织:

传统的面向过程的程序设计,如C程序,是围绕功能进行的。用一个函数来实现一个功能。所有的数据都是公用的,一个函数可以使用任意一组数据,而一组数据又能被多个函数所使用。因此程序设计者必须考虑每一个细节,什么时候对什么数据进行操作。当程序规模膨胀、数据量增大、操作种类很多时,程序设计者往往感到难以应付。就如大部队的司令直接指挥每一个士兵作战一样,一会儿让一连的某士兵到A高地架机关枪,一会又让八团的某士兵去B阵地前打坦克,这显然是非常劳累和不现实的。

为了解决这些问题,必须采用面向对象程序设计的新思路。它面对的不再是一个个函数和一组组数据,而是一个个对象。那么什么是对象呢?世界上任何一个事物都可以看成是一个对象,如单位是一个对象,汽车是一个对象,同样,每个人也可以看成是一个对象。

实际上,用专业的术语来说,对象就是把相关的数据和操作放在一起,形成的一个整体。只要给它一个命令或通知,它就能按规定去完成相应的任务,对外界来说,它就像一个“黑匣子”,这就是所谓的“封装”性,及把数据和操作代码封装在一个被称为“对象”的东西里面。

现在,大部队的司令不再直接指挥每一个士兵作战了,给一连这个对象下命令,一连这个对象用属于自己的士兵和装备去完成任务,给八团这个对象下命令,八团这个对象也用属于自己的士兵和装备去完成它的任务。

每个对象都属于某个类型,在C++中,对象的类型被称为“类”(class),类代表了某一批对象的共性和特征,可以说类是对象的抽象。如张三、王五属于人这个类,一连、八团属于单位这个类。这样,程序设计者就不用去研究每个单独的对象,而去研究类,搞清楚了某种类的特点,就搞清楚了属于这种类的一批对象的特点。

以上,从现实世界的角度介绍了“类”和“对象”这两个重要的基本概念,那么如果单纯从计算机的角度来看,应该如何具体描述它们呢?

通过前面章节的学习大家知道,对一个单独的数据,系统用一个独立的变量来描述它,如一个整数,系统用int AA,来描述它。当程序员向AA里加同样类型的数据时,系统用数组来描述它,如10个整数,系统用int AA [10]来描述它。当程序员向AA里加不同类型的数据时,用数组不行了,就得用结构体来描述它,例如,再向AA里加一个字符串表示姓名时,系统用struct AA {int [10]; char *name}来描述它,这里面可以装10个整数和一个字符串。那么现在,程序员能不能向AA里加一个函数呢?

完全可以,这样AA就变成了大名鼎鼎的“类”了,称为AA类,所以换句话说,把函数加到结构体里面,就变成了“类”。那么另一个大名鼎鼎的“对象”又是什么呢?它就是类的变量,就像整型变量、结构体变量一样。只因为类里有了函数,它带来了质的变化,使类不再像以前的数组和结构体那样,只具有存储 功能,它还具有了操作的功能,为了突出这个质的变化,C++特地给类的变量取了一个新名字叫“对象”,如此而已。

4.第三部分VC++入门:首先重点讲述MFC面向对象的特点,MFC程序的运行机制,接下来,以对话框和菜单为例,讲解我们平时首先看到的Windows程序的那些可视化界面元素的工作原理。然后,对MFC应用程序的核心文档视图结构做了详细的分析。最后,介绍了Windows设备无关性的特点,以及实现绘图和文本输出的方法。这部分的内容包括:Windows编程基础、界面元素、文档和视图、图形和文本。

Windows编程是一种完全不同于传统的DOS(控制台)方式的程序设计方法,传统的程序设计方法是面向过程的,程序直接控制事件和过程的顺序,按照不可改变的模式进行工作。Windows编程是一种事件驱动的程序设计模式。Windows程序提供给用户许多可视的界面元素,如按钮、菜单等,用户操作这些可视的界面元素,将会产生特定的事件,而事件会发出消息,然后接受消息的对象调用预设的消息处理函数来完成相应的操作,因此,Windows的应用程序是没有固定流程的。所以本教材在章节的组织上,首先介绍Windows程序的运行机制,紧接着引入Windows程序的界面元素。然后詳细的分析了文档与视图之间的基于消息的信息交换,最后是Windows编程的输出方法,使得学生能够快速的进入到Windows平台的实际编程。

三、结束语

C到C++再到VC++是一个庞大复杂的体系,学生在学习的时候,不要试图面面俱到,开始阶段哪怕走的是一条羊肠小道,只要能通过这片沼泽到达对岸就是胜利,不要试图把基础打得很宽,希望修一条宽敞大路通过去,使今后开发项目写代码时能左右逢源,但是,这样做多半会半途而废的。本教程在这些方面作了许多应对,如只向学生推荐写代码用到的常用方法,而不像等级考试教材那样详细列举各种可能等等。

现在市面上介绍C++的教材非常多,但针对研究生基础课的教材却很少,尤其是研究生的基础课有一个非常大的特点,面向全体研究生的基础课,其学生来自不同的专业,一部分学生完全没学过编程,一部分学生已经学过C语言,还有一部分学生已经开始涉及C++编程了。针对这种特殊性,本教程在编写时作了很充分的考虑,内容的安排从C到C++再到VC++,每个学生可根据自身的实际情况,选择在不同的点加入,最后一起到达终点完成课程的学习。

参考文献:

[1]黄璐,于红,李向军,李然.C 语言程序设计课程教材建设研究. 吉林省教育学院学报,2013(03)

[2]杨树林,胡洁萍.简谈软件技术类课程教材建设.计算机教育,2011(10)

[3]刘钢,程克明.浅论数据库教材建设中内容的撷取.计算机时代,2005(11)

猜你喜欢
教材建设课程
《无机化学》课程教学改革
数字图像处理课程混合式教学改革与探索
软件设计与开发实践课程探索与实践
为什么要学习HAA课程?
A—Level统计课程和AP统计课程的比较
“学而时习之”的课程值得赞赏