郑步芹+石鲁生
摘要:该文针对《C++面向对象程序设计》课程的现状及存在问题,提出了利用“项目案例驱动”教学模式对C++课程进行改革的方法,并给出了详细的实施方案。
关键词:项目案例驱动;C++;课程改革
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)02-0164-02
The Application of "Project-Case-Driven" in the Reform of C ++ Object-Oriented Programming
ZHENG Bu-qin, SHI Lu-sheng
(Suqian University, Suqian 223800, China)
Abstract: Based on the current situation and existing problems of "C++ Object Oriented Programming", this paper puts forward a method of reforming C++ curriculum by using "Project Case Driven" teaching model, and gives a detailed implementation plan.
Key words: project case-driven; C++; curriculum reform
1 《C++面向对象程序设计》课程的现状及问题
《C++面向对象程序设计》课程是软件工程和计算机科学与技术专业的面向对象程序设计的入门课程,也是重要的专业基础课和必修课,在整个本科教学体系中占据特别重要的地位。根据学院的教学计划,《C++面向对象程学设计》课程是在大一下学期开设的,是以大一上学期开设的《C程序设计语言》为基础的,课时为48课时。
教育部在2015年10月发布了《关于本科高校向应用型转变的指导意见》。应用型本科教育目标是培养创新应用型技术技能型人才,要求实现专业链与产业链、课程内容与职业标准、教学过程与生产过程对接[[1]]。作为计算机和软件工程相关的专业基础课《C++面向对象程序设计》课程也应该朝着这一目标进行组织教学。但传统的C++课程的教学,教师注重的是知识点的讲解,老师在讲台上讲,学生在下面听,老师讲什么,学生听什么,学生知道所讲知识点是怎么回事,但不知怎样将其和工程实践结合起来使用。通过这种方式培养出来的学生知识学习的主动性不够,缺乏思维能力,更谈不上创新,和社会实践需求有着一定的差距。鉴于此况,本文提出了在C++面向对象程序设计课程上采用“项目案例驱动”教学法。
2 “项目案例驱动”教学法
“项目案例驱动”教学法是指将实际项目工程的思想引入到课程教学中,以实际项目作为主线,教师作为引导,学生作为主体,是教师和学生共同完成实践项目,是教学相涨的教学方式。“项目案例驱动”教学法用一个或几个实际的项目贯通课程的各个知识点来讲解整门课程,注重理论教学与实践教学相结合;通过实际项目环境的讲解提高学生的学习兴趣,通过项目的讲学做来提高学生学习的积极性、主动性、创造性。
3 《C++面向对象程序设计》教学改革
3.1“项目案例驱动”在C++课程教学的应用
3.1.1 项目案例的选取及划分
项目案例的选取关系到整个项目案例驱动教学的成败,项目案例驱动教学中的案例,不是上课举得几个针对知识点的简单案例,应该具有一定的实际应用场景、学生熟悉,能够让学生有所思考,并且能够将C++课程大纲中的大部分知识点整合融合在一起。C++课程主要涉及类和对象的基本概念、构造函数,析构函数,类的静态成员、友元函数、类的继承、类的多态性、文件操作、运算符重载等知识点,常常用于编写操作系统、嵌入式、小游戏、管理系统等。据项目的难易程度及课程的知识点的特征,C++课程组老师选取在“校人员管理系统”作为课堂教学案例,“图书借阅系统”为老师点讲学生完成的案例,“飞机订票系统”作为学生独立分析完成的案例。
项目案例选取好后,需要将项目划分一个一个的子项目,将课程的知识点融合到各个子项目中,层层推进,以利于课堂教学的正常进行。以“在校人员管理系统”为例,在校人员管理系统包括人员管理、学生管理、教师管理、日期管理等模块。例如在设计学生类和教师类时可以讲解面向对象的基本概念特点、类和对象定义等知识点。在校人员管理系设计与C++课程知识点对应关系如表1所示。
3.1.2 案例的实施
项目案例的选取及模块划分设计好后,项目如何在课堂实施讲解,也是项目案例法教学的一个重要环节。因教授的对象是大一学生,基本没有参与实践项目的经验,所以在C++课程的第一次课的讲解中,会告知学生本门课程的上课目标及要求,演示课程所涉及的三个项目,讲解项目和课程章节之间的联系,让学生对所做项目和C++课程有一个整体印象。在以后每一次课的讲解中,首先教师引导学生利用所知所想先行分析子项目,而后教师点评,由项目分析引导出课程知识点,将知识点的讲解融入于项目模块的完成。例如在讲解对象的概念时,教师不是直接告诉学生什么是对象,而是让学生以宿迁学院为例考虑在校人员管理系统中涉及哪些人,这些人又有哪些特点,可以做什么事,由此引导出客观存在的事物可以称之为对象。再利用学生与教师有出生日期这样的特征进一步对对象的概念进行扩展引导出一切事物皆为对象。通过项目案例引导的方式让学生对知识点有一个感性及理性认识,知道怎样应用知识点到项目的实际开发中,最后教师点讲分析要求学生学完的项目模块,布置学生需要独立自己分析完成的项目模块。通过三个项目案例练习,将理论教学和实践有机的结合,培养学生分析问题、解决问題的能力,提高学生的动手实践能力。
3.2“项目案例驱动”在C++课程设计中的应用
课程设计是C++课程的综合性实践教学环节,综合利用所学知识,进行设计实践,一般教师出题指导,学生设计。C++课程设计计划安排为一个半星期,一般安排在C++课程讲解完毕,时间短,学生一般只能完成一些简单的程序,不能很好地锻炼学生的综合实践能力,因此将实践时间由一个半星期延展为十个星期。在课程讲解的第八周,老师布置课程设计题目,由学生自行3个或4个分为一组选择课题。分组学生按照软件工程设计方法对课题进行需求分析、概要设计、详细设计、编码和测试,每位学生在其中充当不同的角色,团结合作完成课题。在考核时,需要团队协作进行演示报告,老师和其他同学提问。教师根据团队演示、答辩、报告给予评定成绩。
3.3网络教学平台的建设
用“项目案例驱动”教学方法设计C++课程的教学,可以很好的培养学生的综合编程解决问题的能力,但因課时的限制,有一些细枝末节的知识点可能处理得不好,为使“项目案例驱动”教学法在C++课程中取得更好的教学效果,课题组老师借助超星泛雅建立C++课程的网络教学平台。在网络教学平台上,课题组教师放置了以微课形式录制的知识点视频、项目案例、课件、作业、大纲和参考资料等教学资料。登录网络教学平台,学生可以预习、复习和巩固知识,可以完成每章测试,可以发布讨论、参与讨论。教师可以布置批改点评作业,可以回答学生的疑问,了解学生学习情况,根据学生学习情况对上课的进度和内容进行适当调整。
3.4 C++课程考核的改革
为适应新形势下应用型教学需求,C++课程教学采用了“项目案例驱动“教学模式,同样C++课程考核也应该随之改革。传统的期末考试方式为包含客观的选择题、填空题和主观的编程题构成的笔试,期末考试学生往往会采取背题和知识点的方式,不能够很好的考察学生的编程思想和编程风格,以及调试程序的能力。为加强学生动手实际能力的考核,课题组老师经调研讨汇报将C++期末考试的方式由传统的笔试考试改革为在机房上机考试。C++课程最终考核成绩构成为三个项目案例完成情况占20%,超星泛雅C++网络课程中测试、任务点、讨论完成情况占20%,平时考勤占10%,期末上机考试占50%。
4 总结
在《C++面向对象程序设计》课程教学中引入项目案例驱动,符合高校应用型教学的需求,以实际应用项目为引导,激发学生的学习兴趣,引导学生使用面向对象的思想来思考问题并解决问题,突出学生动手实践能力的培养。
参考文献:
[1] 教育部,国家发展改革委,财政部.教育部关于本科高校向应用型转变的指导意见. 2015.10.