国际合作办学专业C++课程体系建设和教学方法的探索与实践
2017-02-27谭慧敏张丽娜
陈 枭, 谭慧敏, 张丽娜, 张 悦
(1. 沈阳师范大学 科信软件学院, 沈阳 110034; 2. 沈阳师范大学 研究生处, 沈阳 110034)
国际合作办学专业C++课程体系建设和教学方法的探索与实践
陈 枭1, 谭慧敏2, 张丽娜1, 张 悦1
(1. 沈阳师范大学 科信软件学院, 沈阳 110034; 2. 沈阳师范大学 研究生处, 沈阳 110034)
近年来我国很多高等院校通过与国际知名院校的交流合作在国内开设了国内外联合培养的计算机相关专业,面向对象程序设计C++是这些专业的一门必修专业基础课。由于国内外院校针对C++这样实用性强的课程培养方式和考查方式存在较大差异,给学生出国后继续深入学习专业知识造成很大困扰。以C++课程在当前联合培养专业教学过程中存在的课程知识点设置与先导课联系不够紧密、课程考核方式片面考核力度不足、课后作业题目设置不合理等问题作为切入点,详细分析这些问题出现的原因和背景,在学时设置、考核方式、成绩评定等多个方面贴近国际教学方式,力争使学生熟悉国外教学考核方式及理念,能够更快的适应国外学习生活。实际教学反馈结果表明,采用新教学体系和课程考核方式后使学生国内外专业知识学习做到了零对接,取得了满意的教学效果。
C++; 联合培养; 零对接
0 引 言
目前国内很多高校都开设了与国外大学联合培养的计算机相关专业,这种联合培养方式的提出,实现了人才培养的多样性,使我国的高等教育不断提升国际竞争力[1-4]。面向对象程序设计C++作为这些专业的一门必修专业基础课,主要介绍面向对象程序设计的方法和C++语言的基本概念,以C++语言中的面向对象程序设计讲解为主。当前联合培养专业学生的C++课程设置还是沿用以前的教学内容和方法,很多出国继续学习的学生反馈国外相关专业的授课及考核方式与国内有很大不同,学生初到国外时学习感觉非常吃力。本文在详细分析这些反馈情况后,找到产生这些问题的原因,通过在课程知识点设置、学时设置、考核方式、成绩评定等多个方面做出改进,使学生的国内外学习做到零对接,获得了学生的广泛好评。
1 国际合作办学专业课程当前存在的问题
作者多次主讲本单位国际合作办学专业的C++课程,通过与已出国继续学习学生的交流,发现这门课程在教学过程中还存在以下问题:
1) 国内外对计算机专业学生的培养方式存在差异。虽然国内外高校对于计算机专业课程的定位都是面向实际应用、以就业市场需求为导向侧重培养学生的动手能力、实际操作能力,但是由于国内外就业需求和就业环境还存在很大的不同。国内外软件开发公司对应聘者自身素质的实际要求不同,导致高校培养目标虽然一致,但实际的培养方式还是有所不同,造成联合培养学生在国外毕业后求职存在一定困难[5-6]。
2) 国内外课程的讲授方式、考核方式存在差异。在国外高校讲授课程时课上学时安排较少,需要学生在课下进行大量的阅读和练习,完成一些有难度的课后作业和课程设计。另外国外课程在考核时侧重于整个学习过程的考察,即平时成绩占的比重很大,并根据课程知识点的重要程度为每个知识点设置不同成绩权重,学生最后的期末考试只占总评成绩的一部分。这种考核方式避免了考试的偶然性,可以更加真实的反应出学生整个学习过程中的实际表现[7]。
3) 国内教学中布置的课后作业题目设置缺乏前后联系。教学过程中布置的课后作业题目主要考虑的是通过动手练习使学生能够掌握理论教学中讲授的知识及内容、明确对应章节的重点难点所在,但国内C++课程对应作业题目的设置缺乏前后衔接,大多数只是针对本节内容。这就造成学生完成平时作业没有问题,但却没有办法将这些知识组成一个知识体系,无法了解知识之间有什么关系,如何在以后的课程设计、毕业设计、实际工作中综合运用它们开发一个实际的C++软件系统。
2 C++课程体系建设和教学方法的改革与探索
2.1 课程体系建设
在广泛了解国内高校联合培养专业及国外院校的教学计划和教学内容后,制定适用于沈阳师范大学学生的联合培养专业的教学大纲,并为每章的学习内容设置相应的成绩权重。
在制定新的教学大纲时需要考虑授课学生的学习特点、C++先导课程的掌握情况等多个条件。作者在多次的授课过程中发现很多学生对C++课程的先导课----C语言程序设计学习的不够扎实、动手能力也不强,在初学C++课程时难以跟上原有教学大纲设定的学习进度。考虑以上情况新的C++教学大纲编写时在正式开始学习面向对象程序设计前加入了一章过渡章节,这章主要复习C语言程序与C++相关的知识点和所需基础知识,使学生在学习C++课程前能够有一个复习巩固已有知识和了解新知识的过渡过程。同时作者通过与有海外求学经历的同事以及现定居国外供职于软件开发公司的亲属的深入交流,确定了教学的重点和难点并为每章学习内容设置成绩权重[8-9]。修改后的教学大纲及带权重章节设计如图1所示,图1中百分比数字代表相应章节练习及作业题目占课程总成绩的权重。
2.2 课程教学和考核的改革与实践
当前的C++教学过程分为理论教学和实验教学,但实际教学过程灵活多变,实际所需理论或实验学时数量无法提前准确定义,所以在教学改革中首先所做的就是确定课程总授课学时,不区分理论学时和实验学时的数量。得益于教学所在单位充足的实验室和实验设备,因此将大部分教学所用教室选在实验室,使学生在理论学习后可以及时动手实践当堂所学内容[10]。
第1部分:C/C++基础(10%)第1章 C/C++基础(10%)第2部分:面向对象编程和C++(20%)第2章 面向对象编程概述和C++语言基础(10%)第3章 类和对象(10%)第3部分:继承和多态(20%)第4章 继承(10%)第5章 多态(10%)第4部分:泛型编程,STL(标准模板库)(10%)第6章 泛型编程(5%)第7章 STL(标准模板库)(5%)第5部分:Boost库(5%)第8章 Boost库(5%)第6部分:课程设计(10%)期末考试(25%)
图1 面向对象程序设计C++主要教学内容及权重
Fig.1ThemainteachingcontentandweightofObject-OrientedProgrammingC++
基于计算机专业课程侧重实际动手能力的培养以及循序渐进的原则,设计编写前后承接有序符合实际应用开发需求的练习题目和课程设计题目。在新的教学大纲及相关题目设计完毕后,为了使C++课程取得更好的效果,从转变考核方式和加大考核力度两个方面入手进一步深化教学改革[11]。
1) 改变课程考核方式
传统考核方式侧重于笔试,而对学生的动手能力考查不足。比如程序如果有错误是可以通过编译环境获知错误的大概位置及原因的,之后学生根据自己理解修改错误再编译;而笔试无法体现出学生的动手能力,对难度不同的试题都统一要求学生用笔作答有时也是无法完成的。除此之外笔试在以往的考核中所占比重过大,由于考试具有偶然性,无法准确获得学生对知识掌握的真实程度和水平[12]。基于以上原因,新的课程考核方式将期末考试的比重减少为25%,期末考试更侧重于对基础知识的掌握,不涉及难度过大的题目,扩大平时成绩占总成绩比重为75%,将难度较大的题目放入平时考核。为了全面细致的展现出学生平时学习成果,在计算平时成绩时为每章设置知识权重数值,即每章平时成绩乘以对应章节权重为该章节最终平时成绩,整个课程的平时成绩为所有章节平时成绩之和。这样可以使学生直观了解课程学习的重点,并在学习过程中更有针对性,对重点内容投入更多的精力和时间[13]。
2) 加大平时作业和课程设计成果的考核力度和深度。
在以往对平时作业和课程设计的考核中大多只是检查成果是否完成要求的基本功能,而对具体设计细节和思路的考核很少。国外院校在对平时作业和课程设计的考核全面而细致,除了完成要求的功能外,还会对学生的结题思路是否最佳、是否利用已学知识得到当前最佳性能、代码格式是否符合编程规范等多个方面给予考查,并设置相应的分值。基于以上原因,作者在授课过程中也采用了类似的评价方法,虽然学生一开始对这一评分准则非常不适应,甚至有些怨言,但是当学生整个课程坚持下来后看到在课程设计中自己编写的格式工整、设计思路清晰、性能优异的代码时都感觉收获很大[14-15]。
2.3 课程作业题目体系建设
当前C++课程教学中课后题目设计缺乏前后衔接,使学生在学习完整个课程后难以建立起完整的知识体系。作者在参考大量国内外C++课程作业题目并结合授课学生的实际情况后,对C++课程的作业题目进行重新设计。
在设计的过程中,作者采用的方法是从设计实现一个完整软件系统的角度出发,考虑每个知识点处于这个系统的对应位置设置作业题目,加大前后章节所学知识作业题目的相关性。作业题目设计的整体思路是要考虑知识点前后衔接,这里的前后衔接既要考虑章与章之间的衔接,也要考虑每章内节与节之间的衔接,并且在作业题目设计中遵循由简入繁、循序渐进的原则,在题目设计上将已完成作业题目内容作为以后题目的基础,由于篇幅原因,下面以教学大纲中第三章(类和对象)的课后作业题目设计为例对整个题目设计流程进行讲解,本章课后作业题目主要内容如图2所示。
图2中的作业题目从设计只包含必要内容的最简单的Point类入手,逐步将后续学习的其他内容加入。题目5中还将本章的类和对象内容与前面章节所学重点内容----重载函数结合练习,最后通过题目7和题目8使同学们掌握如何使用已有类构造其他类的过程,这最后2道题目是本章最难的题目,学生经过前几道题目的锻炼再来做这2道题目,学生的结题思路更加明确,完成效果很好,也使学生熟悉了解开发复杂软件项目的设计流程及需要注意的问题。
通过对所有章节的课后作业题目采用图2所示的方法进行重新设计,学生不但充分掌握本章所学知识之间、本章与前面章节知识之间的相互关系,快速建立起已学内容的知识体系,而且可以了解所学知识在实际软件系统开发中所处位置,为学生在后续课程的深入学习和以后从事专业工作打了坚实的基础。
题目1:设计表示二维坐标系中点的Point类,类中两个数据成员分别代表X轴、Y轴坐标值;成员函数包含默认构造函数、析构函数、X和Y坐标值的Getter与Setter函数、输出数据成员值的ToString()函数↓题目2:为题目1设计的Point类加入计算当前点到原点距离及当前点到另一点距离的成员函数,函数声明如下:doubleDistanceOrigin();doubleDistance(Pointp);↓题目3:为题目2的Point类加入拷贝构造函数和使用用户输入的x、y坐标值作为参数的构造函数。↓题目4:修改题目3中doubleDistance(Pointp);函数中参数为constPoint&p;并在构造函数中加入输出语句,对比修改前后构造函数调用次数,分析次数变化的原因。↓题目5:将题目4中的两个计算距离的函数修改为重载函数Distance(),X数据成员的SetX()和GetX()函数修改为重载函数X(),Y数据成员修改为Y()。↓题目6:将题目5中不需要改变数据成员数值的成员函数设为常成员函数,避免对象使用时的误操作。↓题目7:使用题目6中的Point类,自行设计使用两个Point类对象作为数据成员的Line类,要求包含必要的成员函数并实现计算线段长度的功能。↓使用题目6中的Point类,设计Circle类。
图2 类和对象章节课后作业题目
Fig.2Thehomeworkofclassandobjectchapter
3 结 语
本文通过对国际合作办学专业C++课程与国外院校同类课程授课过程的分析和比较,针对当前教学体系和教学方法中存在的一些问题提出了相应的改进方案,方案包括制定新的教学大纲、改变课程考核方式、加大考核力度、重新设计课后作业题目等多方面的大胆改革及实践。这一方案经过作者所在单位国际合作办学专业实际教学的应用和实施后,初步达到了被授课学生国内外专业课学习零对接的目标,使学生可以在国外继续学习过程中更快地进入学习状态,为学生的进一步深造或在国外应聘工作打下良好的基础。
[ 1 ]罗晨娴,黄嘉,刘瑞安. 对中外联合办学的分析与思考[J].中国高等教育评估,2015(4):46-49.
[ 2 ]李莉. 基于校企联合办学的计算机专业教学改革[J]. 电脑知识与技术, 2015(26):117-118.
[ 3 ]黄凤娟. 浅谈国际合作办学项目下人才的培养[J]. 品牌, 2015(5):258.
[ 4 ]赵阳,李志萍. 中外联合办学人才培养模式改革研究与实践[J]. 华北水利水电大学学报(社会科学版), 2015,31(4):112-114.
[ 5 ]李卓妮,常亮,黄城锐. 中外联合办学项目大学生跨文化适应能力的培养模式研究[J]. 太原城市职业技术学院学报, 2015(9):81-83.
[ 6 ]张晓民,张枫. 卓越计划下C++程序设计双语教学改革与实践[J]. 计算机教育, 2016(1):59-62.
[ 7 ]赵海国. 浅议如何提高C++程序设计课程的教学质量[J]. 湖南理工学院学报(自然科学版), 2015,28(4):86-88.
[ 8 ]王苹.《C++程序设计》实验教学的研究[J]. 黑龙江科技信息, 2015(35):209.
[ 9 ]张会.C++面向对象程序设计实践教学改革探讨[J]. 西昌学院学报(自然科学版), 2015,29(1):151-153.
[10]陈彬. “C++面向对象程序设计”课程教学改革与探索[J]. 技视界, 2015(13):75.
[11]杨灵. 于提升C++课程教学质量的对策思考[J]. 脑知识与技术, 215(19):135-137.
[12]周本海. 析C++程序设计的创新教学模式[J]. 试周刊, 215(9):119.
[13]夏辉,范书国. 于项目导向和实践考核体系的软件项目管理课程教学模式的研究[J]. 沈阳师范大学学报(自然科学版), 2014,32(1):103-106.
[14]张晓孪. 基于实践的C++程序设计实验教学模式探索[J]. 微型电脑应用, 2016(8):46-49.
[15]袁友伟. 基于MOOC的C++教学改革[J]. 杭州电子科技大学学报(社会科学版), 2016,12(4):64-69.
ExplorationandpracticeinthesystembuildingandteachingmethodsofC++onthemajorofinternationalcooperation
CHEN Xiao1, TAN Huimin2, ZHANG Lina1, ZHANG Yue1
(1.SoftwareCollege,ShenyangNormalUniversity,Shenyang110034,China; 2.PostgraduateDepartment,ShenyangNormalUniversity,Shenyang110034,China)
Manycollegesanduniversitiesinourcountryhaveofferedjointtrainingmajorincomputerorrelevantsubjectswiththeexchangeandcooperationoftheinternationalfamousuniversitiesinrecentyears,object-orientedprogrammingC++isoneofthecompulsorycoursestothesemajors.BecausethetrainingandtestingmodeofthecourseswithhighpracticabilitysuchasC++aredifferentgreatlyintheuniversitiesathomeandabroad.Thestudentsarehauntedwhentheycontinuetostudyprofessionalknowledgeabroad.Thepapertakestheproblemsexistingintheteachingprocessofjointtrainingmajor’sC++courseasbreakthroughpoints.Theseproblemsincludethattheknowledgepointofthecoursearenotsetcloselyenoughwithguidingcourses,themethodandpowerofcourseassessmentisinsufficient,thesettingofhomeworkareunreasonable.Afteranalyzingthereasonandbackgroundoftheseproblems,thesettingofclasshours,themethodofassessmentandthescoreevaluationaremorerelevanttointernationalteaching.Itistriedtomakestudentsfamiliarwiththeexaminingmethodandideaofteachingandaccommodatewiththestudyandlifeintheforeigncountries.Theactualfeedbackresultsofteachingindicatethattheprofessionalknowledgeofstudentsathomeandabroadismakeaseamlessconnectionafterusingnewteachingsystemandmethods.Thesatisfactoryteachingeffectivenessisachieved.
C++;jointtraining;seamlessconnection
2016-04-16。
辽宁省教育科学十二五规划课题(JG11DB247); 辽宁省教育科学十三五规划课题(JG16DB419)。
陈 枭(1980-),男,辽宁锦州人,沈阳师范大学副教授,硕士。
1673-5862(2017)01-0113-04
G
A
10.3969/j.issn.1673-5862.2017.01.022