以兴趣为导向“面向对象程序设计C++”教学实践

2016-05-14 08:11韩冰郭咏梅候慧玲
软件工程 2016年6期
关键词:兴趣

韩冰 郭咏梅 候慧玲

摘 要:面向对象程序设计是计算机专业学生的专业基础课,但学生普遍反映C++程序设计语言学习难度大,兴趣不高,教学效果差,难以完成即使小项目的编程实现。通过分析教学过程中存在的问题,例如学生对控制台应用程序不感兴趣、例子老套、与其他课程联系少,以提高学生兴趣为导向,培养学生面向对象思维能力以及编程实践能力为目标,对面向对象程序设计C++教学方法、教学内容、教学形式、考核评价手段等进行了一些改革,并通过调查法、定量分析法对教学实践改革的成果进行了总结,结果也表明,学生越感兴趣,那么对课程的掌握也就越好。

关键词:兴趣;面向对象程序设计C++;教学实践改革

中图分类号:TP311 文献标识码:A

文章编号:2096-1472(2016)-06-59-02

Abstract:The course Object Oriented Programming is an important professional course of computer science major students,but during the teaching process,many students thought that it was hard to learn C++ programming language,and they were not much interested in it.After having the class,they couldn't program with C++ efficiently and failed in finishing even small project programming.So through analyzing the problems in the teaching process,for instance,students are rarely interested in the console application,the examples used are mostly clichés,the teaching gets little connection with other courses and so on,this paper starts with improving students' interests,and sets the goal that this course could develop the object-oriented thinking and programming practice abilities of students,finally gives some reforms about teaching method,teaching content,teaching form and evaluating method of object-oriented programming C++.It also summarizes the result of the reform in education with survey method and quantitative analysis,all in all,the more students are interested in,the more they understand the content of the course.

Keywords:interest;object-oriented programming C++;reform in education

1 引言(Introduction)

面向对象程序设计是高等院校计算机专业的重要课程,学习的具体语言不止一种,例如C++、Java、C#等,虽然语言不同,但基本的面向对象的思想都是相同的。在面向对象程序设计教学中,Michael Dawson[1]将每个知识点的理解和学习都通过一个游戏来进行,但需要大量的学习及实践时间,Ronald Shehane、Steven Sherman[2]提出应该基于学习内容,结构和菜单、代码、编译、执行、调试、文件组织、输出等方面来开展教学,并列出了常见错误,从学习结果的角度来探索教学方式和方法,Mutua Stephen等[3]探讨了使用可视化编程工具对于教学和学习编程的影响,例如Jeliot3、BlueJ并比较了使用前和使用后学生的得分分布情况,出发点也是基于如何激发学生对于课程的兴趣,使得编程过程更有趣,但要求教师对这些工具非常熟悉。骆斌、邵栋等[4]的教学理念是培养学生采用工程化方法构建个人及小规模软件系统能力为目标,以一个计算实例为线索,循序渐进讲授独立类开发、多个类开发、具有图形用户界面和网络功能的相对复杂系统开发。国伟[5]提出在面向对象程序开发中学习情境的引入会激发学生学习的兴趣。沈炜、庄巧莉[6]提出内部视角为出发点的教学方法。白霞等[7]提出使用内容重组式和方法推动式方法将计算思维能力培养融入C++程序设计授课过程中,他们认为计算思维不仅对于计算机学科,而且对于其他学科也是非常重要的,教学重点应该放在理解程序设计的理论和方法上。陶乾等[8]提出基于BTEC模式来组织教学,BTEC是根据职业导向设置课程大纲,以学生为中心进行教学,让学生在体验中学习,而教师则围绕学生的学习来实施教学。但在实施上有些难度,例如让学生以项目中不同角色来完成项目,仅针对面向对象程序设计一门课来讲,难度很大。不管教学方法和教学模式有多么不同,学生在教学过程中形成积极、主动的学习态度是非常重要的。

本文主要描述在面向对象程序设计C++教学中如何提高学生兴趣,从而更好的掌握面向对象编程思想,最终达到学生可以具有小项目开发能力这一目标的教学实践以及实践成果。

2 教学过程中存在的问题(Problems of teaching process)

不同学校面向对象程序设计C++的先修课程不同,有的直接学习C++,有的先修C语言,在本文中以先修C语言为例,主要存在的问题有:(1)通过C语言的学习,学生已经熟悉面向过程的编程,C++从名字上看很相似,所以学生开始学习时疑问多,兴趣不大;(2)C语言建立的是控制台应用程序,C++的教学中如果也同样只建立控制台应用程序,很难吸引学生,学生的编程积极性普遍不高;(3)课程内容抽象,教学严谨但是一旦缺乏生动活泼,就会大大降低学生的积极性和主动性;(4)教材中的例子老套,例如有的教材[9]采用的例子是迭代实现银行管理信息系统,每一章都会把新的知识点加入到已经做好的系统中,但是银行的存取款、利息的计算及支取逻辑本身比较复杂,增加了学生实现系统的难度;(5)学生的实践非常重要,但是实践的考评非常困难,很难避免作业的抄袭,有些作业中的错误个数、内容都一样;(6)面向对象程序设计C++这一课程不是孤立的,与其他课程,例如软件工程、数据结构、数据库技术、计算机网络都有关系,在教学过程中只单纯以掌握知识点为目标,对学生学习体系的建立、职业化发展有不利影响。

3 提高学习兴趣的措施(Methods to improve students' interests)

在以往的C++教学过程中存在着以上这些问题,为了解决这些问题,就需要采用以兴趣为导向的案例和任务驱动教学法并适当调整教学内容。爱因斯坦说过:“热爱是最好的老师”,激活学生的学习兴趣,是学好一门学科的良好开端和动力。编程语言是枯燥的,面向对象的思想,类的开发,继承和多态,STL等知识点的掌握以及编程技能的融会贯通都离不开一个前提:学生有求知欲,学习态度端正。为了实现该目标,可以采取用兴趣、知识点和相关案例相结合的方式来设计教学过程,尽量用对话框程序作为学生需要完成的目标。

(1)选择可以激发学生兴趣的案例

学生对学习该课程带来的结果感兴趣毋庸置疑[10],学生们都希望得到学分以及好成绩,另外通过学习进行一些系统开发所带来的成就感也是结果之一,所以教师可以在教学过程中将知识点和一些案例相结合,然后学生通过动手实践掌握知识以及技能。面向对象程序设计C++教学重点主要有类和对象、STL、继承、多态等,教师可以根据不同的教学重点采用有针对性的案例。

大家普遍对游戏感兴趣,如果可以实现简单游戏开发学生会有很强的成就感,所以游戏应该作为案例的第一选择。单个类的设计比较简单,但类如果包含其他类的对象或是一个类使用其他类的对象就比较抽象,可以选择俄罗斯方块游戏的实现为内容,单元格类CCell、游戏区域类CGrid和方块类CPiece之间包含、使用的关系非常适合用于理解类之间的关系以及实现多个类开发。STL的内容非常广泛,可以选择一种容器进行教学,例如vector,计算器程序可以很好的用来理解并掌握vector这一容器。继承和虚函数的学习可以选择的案例同样很多,例如画图程序,元素类CElement、圆类Circle、矩形类CRectangle、线段类Cline的实现可以很好的令学生理解并掌握知识要点。运算符重载的掌握可以根据一连串的需求为出发点,例如日期之间的比较,计算相差的天数,相差的秒数等,通过时间类CTime、日期类CDate、日期时间类CDateTime的实现来进行学习。

(2)开发图形用户界面系统

如前文所说,学生如果一直建立控制台应用程序,对面向对象程序设计C++的学习兴趣会大打折扣,所以应尽量建立MFC项目的对话框程序,这样图形用户界面非常容易设计,只需要专注于程序逻辑。在教学过程中,教师需要适当引入消息处理机制和MVC框架,案例实现时将MFC类及一些函数的使用略讲。

(3)教学时运用教学艺术

享受学习过程,对所学内容感兴趣是更高层次的动机,而且对学习的激励有持续的作用[2]。如果教学内容枯燥无味,教师的讲授不能吸引学生,大部分学生昏昏入睡、开小差,那么也许教师准备的很充分,仍然不能提高学生的主动性和积极性,所以教师要掌握上课的节奏,一旦发现大家的注意力不集中,可以适当调剂一下氛围。面向对象程序设计课程的特点是学生不仅要掌握知识,更要掌握技能,拥有进行小型系统开发的能力,所以只通过多媒体设备传递知识,学生很容易注意力不集中,为了提高学生的动手实践能力,教师如果能够直接现场书写代码,这种方式更直接,更容易吸引学生的注意力。

(4)强调与其他专业课之间的关系

在教学过程中强调《面向对象程序设计C++》与后续课程之间的关系,并且通过实例验证可以更好的激发学生学习的兴趣及积极性。例如访问数据库或聊天室的建立,一个涉及《数据库技术》这一课程,一个与《计算机网络》《TCP/IP协议》相关。

(5)采用侧重学生实践能力的考核评价方法

学生的动手实践过程非常重要,《面向对象程序设计C++》的实践是通过不同系统开发来完成的,系统完成的时间先后、完成度、系统功能的扩展都作为评分的标准。为了在一定程度上避免抄袭,要求学生的项目名、类名中包含自己的名字,每个类、成员名旁要求有注释。最终的成绩实践占60%,期末试卷成绩占30%,平时成绩占10%。

4 教学实践总结(Results of teaching practice)

通过以上措施的实施,学生对《面向对象程序设计C++》的兴趣浓厚,完成的代码行数大约2100行,对93名学生做问卷调查后结果如表1和表2所示。

从以上两张表可以看出,兴趣与掌握程度基本成正比,将近七成学生通过学习实践基本掌握了C++语言,可以进行小型系统的开发,学生对游戏的兴趣最高。数据库访问程序因为涉及到后续课程内容,学生的积极性不是很大。其中对教学内容完全没有兴趣或完全没有掌握的学生大部分是C语言基础差,函数、指针等没有掌握,对新的知识也就提不起兴趣,所以前期课程的掌握对后续课程非常重要。

5 结论(Conclusion)

本文主要论述了在《面向对象程序设计C++》教学过程中,以兴趣为导向,调整教学方法及内容,使得学生尽可能的掌握用C++开发系统的能力,教学过程中应多与学生进行交流,授课时控制语速及课堂节奏,实践课时应适当增加。如何在有限的课时下,更好的激发学生兴趣,使得课堂教学生动有趣,仍然是今后要努力研究的方向。

参考文献(References)

[1] Michael Dawson.Beginning C++ through game Programming third edition[M].Course Technology PTR,2011.

[2] Ronald Shehane,Steven Sherman.Visual teaching model for introducing programming languages[J].Journal of Instructional Pedagogy,2014(4):1-8.

[3] Mutua Stephen,Wabwoba Franklin.Teaching Computer Programming in the 21st Century[J].International Journal of Science and Technology,2011,1(6):247-252.

[4] 骆斌,邵栋,任桐伟.软件开发的编程基础[M].北京:机械工业出版社,2012.

[5] 国伟.《C#面向对象程序设计课程》教学改革探讨与实践[J].科技创新导报,2013(02):154.

[6] 沈炜,庄巧莉.基于内部视角的C++面向对象教学实践[J].中国校外教育,2010,4:161-162.

[7] 白霞,高飞,赵娟.基于计算思维的C++面向对象程序设计教学改革[J].计算机教育,2014(11):7-9.

[8] 陶乾,顾春琴.基于BTEC模式的《面向对象程序设计》教学改革与实践[J].现代计算机,2012(06):37-39.

[9] 郑莉.C++语言程序设计[M].北京:清华大学出版社,2015.

[10] 吕金城.浅谈课堂兴趣激励与高等数学教学改革[J].教育与职业,2006(5):88-89.

作者简介:

韩 冰(1983-),女,硕士,讲师.研究领域:软件工程,图形图像处理.

郭咏梅(1963-),女,硕士,副教授.研究领域:软件工程,软件开发.

候慧玲(1982-),女,硕士,讲师.研究领域:软件工程,网络工程.

猜你喜欢
兴趣
浅谈农村中学生英语阅读兴趣的现状和优化
小学数学学习兴趣的培养
授人以鱼不如授人以渔
关于开展农村小学花样跳绳运动的实践研究
在初中语文教学中培养学生的学习兴趣
听障儿童美术教育方法研究
新课改下构建高效课堂的研究
巧用游戏构建快乐体育课堂研究
智力因素在语文教学中的作用研究
试论培养学生的问题意识