APP下载

C++课程在应用型本科院校中的新型教学模式

2013-01-21蔡绍峰

赤峰学院学报·自然科学版 2013年4期
关键词:课程设计应用型教学模式

王 磊,蔡绍峰

(蚌埠学院 计算机科学与技术系,安徽 蚌埠 233030)

C++课程教学内容丰富,知识点繁多.一方面,授课教师难以在有限的学时内讲解课程中的重点和难点;另一方面,学生在被动的单向知识灌输过程中,并没有真正融会贯通,学以致用.应用型本科院校重在实践教学,结合社会职业需求培养学生实际动手能力.因此需要考虑教学课程体系的改革,更新教学内容和模式,提升教学广度和深度,在原有基础上探索新的教学模式.结合多年C++程序设计课程的教学经验和体会,本文提出C++课程在应用型本科院校中的新型教学模式.

1 教学模式

传统教学方式下,教师单一使用大量PPT和板书教学,满足于在规定的课时内完成既定教学任务;学生在学习过程中会出现因为课程信息量较大、众多难点和细节无法掌握和理解;从而造成学生厌学,导致教学效果不理想,教师劳动成果得不到认可.师生缺乏互动,不考虑课程教学策略和学生接受能力是传统教学方式的不足之处.针对这种情况,提出以下几点新的教学模式.

1.1 综合案例程序分析

实际教学活动中,教师不必过分注重C++语法细节,层层罗列式的教学方式往往会使得学生分不清主次,难以记忆和应用;即使勉强记住的学生,在实验课程中也无法一一验证,更谈不上创造性的灵活运用.教师可以根据自身教学实践经验编写综合案例程序;编写案例中把本章教学活动内容的重点和难点融入其中.通过综合案例程序的分析,逐渐回顾本章教学重难点,这种教学方式比起单纯罗列式教学来说,具有直观性、完整性和可读性.针对C++中教学过程中的重点和难点,我们设计了如下案例:(1)模块设计(2)指针和引用(3)const修饰符(4)栈和堆内存管理(5)动态数组(6)构造、析构函数(7)继承和多态(8)MFC等完整案例.以模块设计为例,设计一个综合案例程序,该程序由若干个源文件组成,代码如下所示.

在实际的教学过程中可以在此基础上进行延展,将file1、file2和file3中的函数用static进行修饰后,询问学生程序能否通过编译?能否正常运行?若在Example.cpp中用#include将被调用函数所在的文件引用之后,上述问题又将如何?进一步总结出:静态存储区可以存放:(1)全局变量,(2)静态局部变量,(3)静态全局变量,(4)类的静态数据成员和静态成员函数等.static的作用:(1)修饰局部变量,可以扩展生存周期,但是不能扩展作用域,(2)修饰全局变量,不改变生存周期,但是限制了作用范围,仅在本文件内有效,(3)修饰函数,使得本来是可共享的全局函数缩小了作用范围,静态函数只能在本文件内有效,(4)修饰类的数据成员与成员函数.当课程进行到类与对象章节时,教师可以在此综合案例程序基础上加上静态数据成员与成员函数模块.通过该综合案例程序分析,学生可以:(1)掌握源程序由多个文件组成的写法,(2)了解函数调用机制,熟悉不同源文件中的函数调用,(3)了解传值、传地址和传引用的区别,(4)总结static的内部机制与优势等.

1.2 项目驱动

文献显示项目驱动教学法已有人作出了尝试和探索,他们结合特定的教学场景,使用该方法取得了一定的成绩,积累了有益的经验.文献[1]提出数据库项目实践教学研究,详细论述项目实践教学的整个组合环节.文献[2]提出三点一线式教学法指导C++课程的实践教学,并且补充案例辅助教学以及建立学生学习团队来提高实践教学质量,这些均与项目驱动教学法包含的内容密切相关.项目驱动教学方式应该贯穿整个教学环节,包括从项目选题、项目设计与实施、验收与测评和信息反馈4个环节,如图1所示.

应用型本科院校要求紧密结合地方特色,具有这样的共同特点(1)以培养应用型人才为主(2)以培养本科生为主,某些学科可培养专业研究生(3)以教学为主,同时开展应用性、开发性研究[3].项目驱动教学法符合应用型本科院校的办学特点,学生在课程学习过程中,亲自参与项目的整个研发过程;这种发挥自身主动意识积极参与的教学模式,可以极大激发学生的学习热情,学生在项目验收后会有所收获,对今后步入实际工作岗位更好地发挥潜力奠定了良好的基础.

项目驱动教学法突出应用二字,在应用型本科院校的教学过程中占有非常重要的地位.这种教学方式要注意以下几点:(1)教师选题,应紧密结合不同年级学生实际水平,选择难度均衡的题目.项目的来源可以是教师真实课题的一部分,也可以自拟,要综合考虑项目的开发难度和研发周期,一味过高的要求会使得学生无法深入进行,最后望而止步;过低的要求则会使得项目驱动流于形式,起不到应有的锻炼效果.(2)项目设计与实施,应讲究团队协作,教师把握好整个项目源代码的规模后,分配相应任务,不同小组的学生扮演不同的角色,在规定的时间内完成既定程序代码.(3)项目验收与测评,是项目驱动教学法中最重要的一个环节,由教师对最终学生提交的项目进行评审.教师在评审中扮演着项目经理的角色,从软件工程的角度验收项目的整个流程.

1.3 构建E-Learning平台

E-Learning就是在线学习,是学生通过网络进行学习的一种全新的学习方式.我们依托系部申报的省级C++精品课程作为平台,汇集了大量相关教学课件、经典程序、CAI教学软件、设置了若干兴趣讨论组、新闻组等学习资源,不断完善多媒体网络学习资源,逐渐形成综合集成的资源库网上学习社区,构成了全新的网络学习环境.开设了C++程序设计这门课程的学生可以通过校园网注册用户,方便地登陆E-Learning平台,观看课件,观看教师录制的视频,重温当天学习的重点和难点,同时可以通过网站中的模拟试题测试相关内容的掌握情况.构建E-Learning平台不是一蹴而就的事情,需要长期资源的收集和分类,是一个逐渐扩充、逐渐完善的过程.

1.4 单元自评机制

教师在每个学期的开学初,向教研室提交本学期教学日历、实验进度表及单元自评机制实施方案.在单元自评机制实施方案中,要具体提出每个单元知识目标的教学要求和评价策略.完成相应单元教学任务后,布置单元自评任务,要求学生认真完成自我评价.学生提交的形式可以是多种多样的,但是最好以电子文稿的形式提交.我们设计了完善的自评文档,通过学生的填写和描述,可以清晰地反映出本单元教学环节中,学生应该掌握的知识体系和学生实际掌握的情况.通过对比和学生的自我剖析,可以了解教学环节存在的问题,掌握学生整体的学习状况,因而有针对性的微调教学计划,针对性的补缺补差,利于学生整体素质的提高.一味追求速度和数量的教学方式,可能导致班级中少数综合素质较高的学生可以跟得上,大多数学生疲于应对各科教师的海量信息灌输,没有余力进行消化和总结,最坏的结果就是产生厌学心理,抵触教师的教学过程.

鉴于高校教师的教学和科研任务繁重,对于每个学生的自评文档逐个浏览,逐个评阅和记录是一件繁琐的事情,可以充分调动学生的积极性,按实验分组名单由组长先行在组内成员中讨论和评价,综合每个成员取得的收获和涉及到的问题,形成综合报告,单独提交给任课教师.这样,教师每个单元只需审阅若干份小组综合自评报告,即可达到目的,而收集班级每个学生的单元自评报告也是有意义的,我们可以作为平时教学效果等方面第一手材料的原始积累.自评机制可以调动学生积极性;引导学生学习之余进行有效的总结和广泛的讨论,规范的自评文档可以锻炼学生的语言组织、表达和写作能力;增加了师生互动,是一种长效的促进教学的有益方式.

1.5 课程设计

课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的.平时的习题较偏重于如何编写功能单一的“小”算法,局限于一个或两个知识点,而课程设计题是软件设计的综合训练,包括问题分析,总体结构设计,用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养.

课程设计采用研究型学习方法,分组完成一个或多个小型软件.根据以上课程设计思想,设计了丰富的课程设计内容.给出了两个课程设计样例,一个是基于控制台的,一个是基于MFC的.每个样例都包含目标与要求、分析、实验步骤和测试与思考等内容.提供6个课程设计题目供学生参考选择(也可自行另选),每个题目中都有选作内容,目的是为那些尚有余力的学生设计的,同时也能开拓其他学生的思路,在完成基本要求时就力求避免就事论事的不良思想方法,尽可能寻求具有普遍意义的解法,使得程序结构合理,容易修改、扩充和重用.通过综合训练,期望学生能够对面向对象编程思想的进一步理解,进而提升实际应用编程能力.课程设计分组进行.分组以5-8人较合适.

课程设计强调的是学习过程而不是结果,通过课程设计学生可以了解并学习掌握科学研究方法,提高分析问题、解决问题的能力.课程设计没有事先预定的内容(也可以提供参考性课题),排除了很多人做同一个题目,答案千篇一律的弊病.研究内容可以根据学习过程中的新发现、新体会而改变,评价的标准具有多元性.给学生提供一些可选的题目供学生研究时参考,学生在教师指导下,自行选定力所能及的专题,分组进行研究,采用科学研究的方法去解决所选择的问题.在课程设计中,充分发挥主动性和创造性,通过检索资料、现场调查来获取信息,对资料进行分析、讨论、概括总结并最终得出结论、解决问题.

2 教学模式实施过程

新型教学模式的实施过程是多样化的,侧重点不同的本科院校应根据学校办学定位准则,结合系部C++教学计划和课时的特点,有选择的融入新型教学模式,作为传统教学模式的补充.在实施过程中,建议不要盲目的生搬硬套,而应该选择若干班级作为实验班,学期结束后与其他普通班进行教学成果对比;并可以进一步在班内划分学习小组,小组的划分应充分考虑知识结构的互补性,学生研究能力的层次性,也可以以学生寝室作为一个小组成员组成的最小单元,以便于学生课后集中和交流.C++教学模式改革的课题组全体教师应组织学习有关理论知识,开展常规性的研究讨论,不断交流经验、总结教育教学方法,这样可以一定程度上利于教师思想的解放,逐步提高教师的业务水平和教学能力.

3 新型教学模式实施效果

通过近几年来C++教学新模式的实践,学生的动手能力和自主学习能力有了明显提高,达到了应用型本科院校实践教学的预期目标,加深了学生对课堂教学的理解,提高了学生学习兴趣和学习积极性.具体体现在:(1)从本科毕业生毕业设计的选题和设计过程看,学生对本课程的学习有较大的兴趣,对知识的掌握有了较大的提高.(2)不少学生通过了全国计算机等级考试三、四级的考试和计算机软件水平考试初、中级的考试.(3)部分学生考上了计算机专业的研究生,由于本课程是计算机专业的主干课程,说明了学生通过学习已经对计算机专业产生了很大的兴趣.

教改课题组积极探索新型教学模式,并在实践中不断总结和完善,课题组成员近年编写了面向应用与实践的系列教材“大学计算机基础”、“C语言程序设计”、“C++面向对象程序设计”及相应的实验配套教材,建立了相关的课程网站;主持或参加多项省级相关教改项目,取得了良好的教学效果.

4 结语

教学模式改革是一个长期探索的过程,教育工作者应该严肃认真对待教学环节,探索有益的教学模式,勇于走在教学改革的前列.文献[4]针对构建课程体系、规范教学行为、教学改革、教材建设和形成教学团队等问题进行了探索,文献[5]提出在教学中采用案例教学法,本文提出了C++课程在应用型本科院校中的新型教学模式,在实施新型教学模式过程中取得了较好的教学效果,教师业务水平得到了一定程度的提高,同时也促进了校园的学风建设;培养和加强了学生的思考能力、交际与合作能力.

〔1〕张红梅,华文立.数据库项目实践教学研究[J].辽宁科技大学学报,2011,34(3):327-329.

〔2〕彭召意,朱艳辉,周玉.C++面向对象程序设计课程的实践教学研究[J].计算机教育,2010(05):151-154.

〔3〕潘懋元.我看应用型本科院校定位问题[J].教育发展研究,2007(Z1).

〔4〕郭有强.“C 语言程序设计”课程建设探索与实践[J].教育与教学研究,2009(02).

〔5〕肖明.案例教学法在“C++语言程序设计”教学中的应用[J].计算机教育,2010(06).

猜你喜欢

课程设计应用型教学模式
群文阅读教学模式探讨
关于应用型复合人才培养的教学模式探讨
“5-2-1”应用型人才培养模式探索实践
龙凤元素系列课程设计
中秋明月
第8讲 “应用型问题”复习精讲
基于Articulate Storyline的微课程设计与开发
“一精三多”教学模式的探索与实践
“导航杯”实践教学模式的做法与成效
基于应用型的成本会计教学改革