C++面向对象程序设计课程教学研究

2020-03-18 09:42张海林夏传良
智能计算机与应用 2020年10期
关键词:面向对象程序设计课程设计

张海林, 夏传良

(山东建筑大学 计算机科学与技术学院, 济南 250101)

0 引 言

C++程序设计是中国高校计算机科学与技术专业普便开设的一门专业基础课程,一般在第二学期开设。由于本课程涉及到的面向对象编程的相关概念抽象性比较强,学生在理解接受时有一定难度,加之许多大一新生在第二学期还没有完全适应大学里快节奏学习多门课程的特点,这给本课程的教学实践中的各个环节都增加了难度。在C++的教学实践中,文献[1]提出了不仅要从主观上对学生进行教育,还要创新性的设计一些符合学生专业特色的实验来进行教学;文献[2]提出了基于游戏的C++实验教学系统;文献[3]提出程序设计基础的教学实践应以提高学习兴趣为导向;文献[4]介绍了面向对象程序设计的教学内容的选择、与MFC的衔接等;文献[5]分析了计算机专业学生的程序设计能力的提高路径;文献[6]提出以提高学习兴趣为导向,培养学生面向对象思维的编程能力;文献[7]分析了面向对象程序设计教学中存在的问题,提出了针对性的课程群建设、师资队伍建设等方案。

综合上述分析及本身的教学体会,本文认为目前C++程序设计课程的教学情况还存在以下问题:

(1)课程偏重理论教学,实验学时较少。以目前安排的实验学时而言,无法进行太多实用内容的教学。学生毕业之后就业困难,部分有学习能力的学生设法在毕业前联系相关的培训机构进行培训。

(2)实验环节安排的内容过于简单,与实际应用脱节。

(3)受限于教材的选择,无法选择案例类书籍作为教材。教学内容不能很好地体现目前的企业需求。

(4)学生还习惯于高中的教育模式,刻苦钻研和自主学习的能力缺乏,对课程学习中遇到的困难准备不足。一旦遇到困难,往往会逃避、逃课甚至完全放弃。

1 课程定位与教学目标

在计算机科学与技术专业的软件类课程中,C++程序设计课程起着承上启下的作用。专业课程结构如图1所示。本课程接第一学期的C语言及程序设计课程,同时也为后续Java程序设计、算法设计与分析、大数据基础算法和数据仓库与数据挖掘等课程的学习打下基础。

本课程以C++语言为例,主要培养学生面向对象程序设计方面的编程能力。通过本课程的理论学习、上机实践和课程设计,让学生熟练掌握C++语言的基本概念和编程方法,能够独立运用C++语言编写程序,为后续计算机软硬件系统的学习研发打下良好基础。

2 教学内容设计

2.1 理论教学

C++面向对象程序设计课程,主要介绍了面向对象的编程思想,包括类和对象、封装、继承、重载和多态等知识点的编程方法。对于初学者来说,这些重要的概念和思想,理解和掌握起来并不容易。因此在教学过程中,应做到深入浅出、重点突出,并准备容易理解的案例,配合概念的理解。本课程的思维导图如图2所示。

图1 C++面向对象程序设计课程在计算机科学与技术专业课程体系中的地位

图2 C++面向对象程序设计课程思维导图

本课程的重点是对C++面向对象程序设计思想的理解和掌握,MFC框架编程不是本课程的教学重点。如果界面编程部分安排太多学时,会影响到面向对象基本编程思想的讲解,这不利于学生对基本概念的理解和掌握。本课程仅安排6个课时,来讲解MFC的基本概念、框架和编程方法,同时鼓励对界面编程感兴趣的学生课后通过网络、书籍等途径继续学习。

本课程的教学内容、基本教学要求、教学的重点、难点和学时安排情况见表1。

表1 C++面向对象程序设计课程授课教学计划表

2.2 实验教学

根据表1中对C++课程的理论教学安排,本课程的实验教学要达到下列教学目标。

(1)熟悉Visual C++ 2015集成开发环境,掌握类的定义、对象的定义与初始化、对象数组、对象指针以及友元的定义与访问。

(2)熟练掌握类的继承与派生、派生类成员的初始化、派生类析构函数的实现。

(3)熟练掌握虚函数的定义和实现,多态的实现,纯虚函数和抽象类的实现。

(4)熟练掌握常用运算符的重载实现。

(5)熟练掌握文本文件和二进制文件的读写操作。

(6)综合利用类的定义、继承与派生,对象访问,虚函数与多态等面向对象特征以及文件操作,实现完整的小型程序。

(7)了解简单界面程序实现,会利用应用程序向导进行简单的MFC界面程序设计。

根据上述实验教学目标,C++面向对象程序设计课程的实验安排见表2。

2.3 课程设计

为了增加实践时间,在课程理论、实践教学结束后,安排了为期2周的课程设计。课程设计中布置了16个C++编程题目供学生选择并设计,每名同学需在题目1-10和题目11-16中分别选择一个题目来完成。每个题目除了几条基本要求外,还有选作要求。如,用MFC框架编程完成的课程设计评为优秀,而完成的源码中没有包含模板文件内容的不能评为优秀。同时要求学生在开发过程中,要遵循面向对象程序设计的编程思想,根据所选题目实现面向对象中的封装、继承、重载和多态。

表2 C++面向对象程序设计的实验教学安排表

3 教改措施

除了平时教学活动中采用案例教学法、项目教学法,引入微课进课堂等教学方法外,还在以下几方面进行了尝试。

3.1 鼓励参加课外竞赛

鼓励学生参加程序设计相关各个层次的学科竞赛。如,齐鲁软件大赛、ACM程序设计大赛和互联网+大赛等。制定一套鼓励学生参加学科竞赛的激励机制,如获得省级一等奖的团队奖励5 000元、获得省级二等奖的奖励2 000元等,可以促进学生积极参加此类赛事,以进一步提高学生的理论和实践能力。

3.2 激发学习兴趣

在教学过程中,可开展以下方面做工作,以激发学生的学习兴趣。

(1)鼓励开发图形界面程序。如果一直建立控制台应用程序,对C++程序设计的学习兴趣就会大打折扣,所以鼓励学生在上机实践时尽量建立基于MFC框架的界面程序。

(2)开展编程竞赛。编程能力的提高是一个循序渐进的过程,仅凭一个学期的上机实验的练习达不到掌握编程能力的程度。为了增加实践教学时间,每年暑假都面向所有本专业学生开展为期2周的集中课程设计。课程设计过程中开展编程竞赛,营造出人人爱编程的氛围,并激励学生的竞争欲,以达到更好的实践效果。

(3)强调本课程的重要性。在平时理论和实践教学过程中,有意识的介绍C++程序设计课程与后续课程之间的联系,以更好的激发学生的学习积极性和学习兴趣。也可以从考研笔试和面试角度强调本课程的重要性。

3.3 考核改革

以往考试都是安排2小时笔试,对实践环节重视不够,也未考虑到平时的学习过程。目前的C++程序设计的课程考核更多的参考了实践教学环节的表现,并将笔试更改为机上考试。

(1) 程序设计考核改革。C++程序设计作为专业基础必修课程,是一门实践性很强的课程,考核时应更多的考虑实践环节的表现。现采取平时成绩+期末闭卷上机考试的形式进行考核。总成绩100分,其中上课考勤占10%,上机操作部分占30%,期末机试部分成绩占60%。

(2) 课程设计考核改革。C++程序设计课程设计教学也需要对考核模式与评价方法进行改革,激励学生重视创新和实践。最终的课程设计成绩实践占50%,课程设计说明书占30%,平时成绩占20%。

其中课程设计说明书部分的成绩由每名同学提交的课程设计说明书来确定。重点考核说明书的内容、格式等;平时成绩由平常的考勤确定;课程设计的实践部分需要通过程序答辩来确定成绩。答辩过程中,可以通过现场提问的方式考查学生的综合分析问题和独立解决问题的能力,在程序答辩过程中可以考察到学生是否真正参与了课程设计工作。

(3)教学评价 。为了客观了解教学效果,在授课过程中和课程设计结束后,通过学生评教发现教学中存在的问题。学生评教时,每名同学可以针对教师的授课方式、授课内容、教学效果、存在的问题等提出各自的意见建议。教学办把这些意见建议汇总后,反馈给对应任课老师,任课老师以此检查教学中存在的问题并做出相应的改进。

4 结束语

C++程序设计是计算机科学与技术专业的一门非常重要的入门级编程语言,目前在市场上仍然有着广泛的应用。如何讲好这门课,如何切实提高学生的实际动手能力,是每个程序设计课程任课老师应该考虑的问题。本文对C++程序设计课程进行了教学研究,从学情分析、课程定位、教学目标、教学内容、教改措施和教学评价等方面进行了介绍。经过多年教学实践,这门课程已经基本完善,逐步得到学生的认可,在历年的学生评教中都得到了优秀的成绩。本课程在综合教学案例的更新和教学内容与市场的对接上还存在不足,将来要在这二个方面继续完善。

猜你喜欢
面向对象程序设计课程设计
GEE平台下利用物候特征进行面向对象的水稻种植分布提取
基于深度学习与融合地形特征的黄土陷穴面向对象提取方法
“苏州园林:景致与情思”课程设计
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
沉睡数千年 一醒惊天下——三星堆考古启示下的儿童美术项目化课程设计
医学专业“Python程序设计”课程教学改革总结与思考
A Study on the Application of Task—based Approach to English Vocabulary Teaching
基于Web的科研项目管理系统的设计与实现