面向卓越工程师培养的C++教材研究与建设

2013-04-29 20:11白忠建李巧勤
教育教学论坛 2013年6期
关键词:立体化教材教材建设卓越计划

白忠建 李巧勤

摘要:结合C++课程的实际教学情况,对一些C++经典或常用教材进行了研究和分析,提炼出其中的精华,找出其中的不足,筛选出一些最能满足实际教学需求的教材作为模板。然后以此为基础,以“卓越工程师教育培养计划”为指导,建设一套以案例驱动为主线的、包含各种教辅资源的、突出实践能力培养的C++立体化教材。

关键词:C++;教材建设;卓越计划;案例驱动;立体化教材

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)06-0193-03

一、引言

《C++程序设计》是许多高等院校的学生学习面向对象技术的一门重要课程,甚至是初学程序设计技术的基础课程。因此,对这门课教材的选用就显得非常重要了。目前国内教材市场上有非常多的C++教材。虽然这些教材一般都配有大量的常规习题和编程题目,但大多数教材没有一条贯穿全书的、以实践为主题的线索,从而使学生在学习时,做的更多的是一些验证型的实验,而未能在设计型和综合型上走得更远,因而不能使学生对一个工程项目有更完整的认识。因此,教材和课程改革是在必行。不少同行曾从不同的角度出发,进行了C++教材和课程的建设[1,2],但都依据本单位的具体情况。笔者的C++课程组所在高校是教育部“卓越工程师教育培养计划”[3]的实施单位之一。而卓越计划的重点就是培养学生的工程意识和实践能力。为达到此目的,笔者所在高校对人才培养方案就行了大力度的调整,加强了课程之间的衔接,提出了在课程中突出实践能力锻炼的思路,并以此提出教材建设的要求。根据学院的要求,结合实际情况,笔者对国内外的一些经典或常用教材进行了研究,并整理出一些C++建材建设的思路,并付诸实践。

二、C++教材研究

为了能更好地进行教材建设,笔者首先对国内高等院校选用的一些经典或常用的教材进行了分析和研究。

1.选用教材。笔者选用了6本教材进行了分析和研究,其中3本国内,3本国外。选用的依据是:这些教材都属于经典教材,发行量都较大,被国内多所高等院校选用。

2.教材基本结构。笔者对上述6本教材的结构进行了分析。分析内容包括:篇幅、涉及OOP(Object-Oriented Programming,面向对象程序设计)的章节数等。分析结果如表2所示。

单就篇幅而言,前三种特别适合做教材,而后三种则因内容太多而作为教辅材料更合适。从内容的角度出发,【N】版非常适合没有任何编程经验的初学者,因为它将C++的基础语法讲述得特别清楚和细致,但其最大的问题是涉及OOP的内容太少,学习者必须选用其他的教材来配合。【S】版虽然从表面上看不需要C语言基础,但从实际的学习过程来看,学习者最好还是具备一定的C基础更容易上手。【B】版作者Bjarne Stroustrup是C++语言的奠基者,因此他的著述中包含了非常多的内容,教师和学习者需要在其中做出选择,这对初学者可能比较困难。而其他3本国内作者的著述在基础语法和OOP内容之间有较好的平衡,很适合初学者作为教材使用。

3.教材知识体系。C++的知识体系非常之庞大繁杂,所有教材都不可避免地要从中进行筛选,强调基础,突出重点。以公认的观点来看,选择的知识单元应分为程序设计基础、数据封装、继承、多态和泛型编程5大类。表3列出了C++可能涉及的知识单元。

笔者对6本教材的知识体系进行分析和总结。为了能更好地得出结论,笔者主观地对6本教材涵盖的知识单元进行了详细程度定量。定量范围从0-5。0表示未涉及,1表示仅提及,5表示详细,2~4表示不同的详细程度。结果如表4所示。

从不同教材的知识体系构成看出,【N】版只能作为程序设计基础的教材,而不适合作为面向对象技术教材。【B】版虽然体系非常完备,但内容过于繁杂,因此势必在教学和学习过程中对内容进行筛选,这可能对双方面造成困扰,另外其近百元的价格也极不适合作为教材使用,而最好作为教辅材料。同样地,【S】也存在着相似的问题。此外该版较早地引入了标准库并大量使用,这也会对学习带来困难。因此,该书也最好作为教辅材料使用。反观国内作者的三本教材,都不同程度地在基础语法和OOP中做出了均衡,都适合作为教材使用。其中,【吕】版教材要弱于【谭】和【沈】版。因此,后二者更是最佳选择。即使这样,教材的选用也必须根据不同高校的实际情况来定。笔者所在学院将C语言、数据结构与算法和C++三门进行了融合,分别开设在第1、2、3学期,这使学生从基础到高级编程的学习过程呈现阶梯型,更有利于学生全面掌握面向对象技术。这样一来,上述所有教材在基础语法的篇幅就显得比较多了,而实际情况是学生只需要简单地复习这些知识就可以了。此外,作为高级编程的重要内容,【谭】和【沈】版教材在泛型编程方面都存在不同程度的不足。综上,根据实际情况,编写一个更适合自己的教材势在必行。

三、C++教材及课程建设

在对上述教材进行了分析和研究之后,笔者选定【谭】和【沈】版作为主要参照,并以【B】和【S】为补充参考资料,对自己的C++教材进行了规划和建设。

1.新建教材的特点。为符合学校“卓越工程师教育培养计划”要求,同时结合学院的具体情况(学生已经有C和数据结构的基础知识),建设教材《C++程序设计与实践》应该具有这样的特点:①弱化“程序设计基础”部分。在第三学期,学生对所学的程序设计知识有些淡忘,所以要对这部分内容进行复习,但内容要删繁就简,只花少量篇幅和课时。不过,对C++新增的内容,例如引用、new和delete、函数重载等要重点讲解;②强化“面向对象”部分。教材要将面向对象的四个核心概念数据封装、继承、多态和泛型编程讲解得非常清楚,但弱化语法部分,突出概念和应用。对学生首次接触的“类”这一概念要讲深讲透;弱化多继承;增加泛型编程的篇幅;[10]③采用“案例驱动”模式。教材以一个案例为主线,该案例贯穿全书,驱动C++知识单元由浅入深地展开。所有章以对案例的局部问题分析开始,引出问题,由问题的解决过程抛出相关的知识单元,最后提出案例的局部解决方案。以“提出问题、解决问题”的形式加深学生对知识单元的理解和掌握;④突出实践性。除了附带的小型习题外,每一章学习完成后要求学生完成案例的阶段性编码工作,边学边做。所有章节学习完成后,要求学生提交案例的整体解决方案。如果条件允许,教学过程能在实验室进行则更好,更能体现“做中学(learning by doing)”的教学理念;⑤强调标准化。教材采用的语法规范严格遵循ANSI C++标准。书中所有示例程序、重要代码片段、案例解决方案均用VC9和gcc交叉编译通过。这不仅能保证代码的标准化,同时还能消除代码的编译器依赖。

2.教辅资源的建设。除了一本好的教材,丰富的教辅资源是学生充分理解和掌握知识的重要补充。为此,笔者所在课程组也对C++课程的教辅资源做出了规划和建设。①设计和制作精良的电子教案。电子教案不是教材内容搬家,而是对其的精选和补充。在注意这一点的同时,充分利用工具软件的功能,制作的电子教案清晰、美观,对教学起到了很大的促进作用;②设计和制作学习辅导网站。利用.Net构建基于B/S架构的课程网站,有助于学生课外自主学习。学生可以根据自己的需要查看相关课程资料,包括下载课件和作业,以及上传作业、留言等,教师可以发布教学资源、发布通知、在线批改作业、回答学生提问等功能。③实验和实践项目的设计。实践环节由验证型实验和综合设计型项目实践两部分构成。其中,验证型实验是对知识单元的体验与验证,主要在课后完成;项目实践要求学生完成教材中案例的解决方案,主要在课内上机时间(总64学时中的32学时)完成。

3.考核方式的改革。目前很多高校的计算机语言类教学仍然采用“一考定乾坤”的笔试模式。这种模式的弊端非常明显:无法验证学生的阶段性学习成果、无法考察学生的实际编码能力。因此,为了消除上述弊端,课程采用多阶段机考+期终笔试的考核方式。在每一个重要知识单元学习完成后,组织学生进行一次上机编程考试,而学生的最终成绩由多阶段机考成绩+实践成绩+期终笔试成绩+平时成绩构成。这就是多阶段机考的思路。当然,这种考核模式必然增加教师的阅卷工作量。为解决这个问题,笔者已研发出一款简易的计算机辅助自动评测软件,在很大程度上提高了阅卷效率,从而为多阶段考核提供了有力保障。

四、结束语

经过多年的建设,课程组承担的C++课程改革取得一定的成效:

1.“卓越工程师培养软件工程专业系列教材:《C++程序设计与实践》教材建设”是2011年获四川省“高等教育质量工程”建设项目“软件工程专业综合改革”之子项目;

2.《C++程序设计与实践》教材于2012年5月由机械工业出版社出版;

3.课程相关网站已上线,已有多名学生使用,效果良好;

4.多阶段机考由于首次使用,效果有待考验。

课程组深知,教学改革一直是今后工作的主题。在今后的工作中,将以现在的工作为基点,不断探索改革新路,建立一套有效的理论和实践有机融合的教学机制、考核机制和反馈机制,在教学中不断改进方式方法和手段,使C++课程更能符合卓越工程师培养计划的要求。

参考文献:

[1]高枚,杨志强,许兰兰,龚沛曾.C/C++教学改革的探索与实践[J].计算机时代,2005,(11):8-10.

[2]刘维富,陈建平,王春明,葛建芳,邱建林,顾晖.C++程序设计课程研究与教材建设[J].计算机教育.2010,(14):153-158.

[3]教育部.教育部关于实施卓越工程师教育培养计划的若干意见[EB/OL].(2011-01-08).

http://www.moe.edu.cn/publicfiles/business/htmlfiles/moe/s3860/201102/115066.html.

[4]谭浩强.C++程序设计[M].北京:清华大学出版社,2004.

[5]吕凤翥.C++语言程序设计教程[M].北京:人民邮电出版社,2008.

[6]沈显君,杨进才,张勇.C++语言程序设计教材[M].北京:清华大学出版社,2010.

[7]Bjarne Stroustrup.The C++ Programming Language[M].北京:机械工业出版社,2010.

[8]Stanley B.Lippman,Josee Lajoie,Barbara E.Moo.C++Primer[M].李师贤,等,译.中文版.北京:人民邮电出版社,2006.

[9]Nell Dale,Chip Weems,Mark Headington.Programming in C++[M].第二版?摇影印版.北京:高等教育出版社,2001.

[10]陈文宇,白忠建,戴波.面向对象程序设计C++[M].第二版.北京:机械工业出版社,2008.

作者简介:白忠建(1969-),男(汉),河南邓州人,讲师,硕士,主要研究方向为软件工程和数字媒体;李巧勤(1972-),女,重庆人,讲师,博士,主要研究方向为无线传感器网络。

猜你喜欢
立体化教材教材建设卓越计划
基于“知识+技能”双系统的数字化课程开发与实践
关于核科学技术专业英语教材建设的思考
关于卓越计划的《交通运输商务管理》课程教学改革探索
湖北民间舞蹈课程体系的建构
中高职衔接教材建设的思考与实践
依托“卓越计划”构建创新型工程技术人才培养模式
基于卓越计划的金属结构材料课程实践化改革与建设
控制工程基础教学内容优化及教材建设的实践
丰富大学英语立体化教材内容的对策
工程图学立体化教材建设的研究与实践