APP下载

C++程序设计的教与学间隔层消除研究

2009-01-04王奋乾

中国管理信息化 2009年19期
关键词:教与学程序设计

王奋乾

[摘要]面对教与学问的问题,必须分析症结。应对学习对象的变化,理清解决问题的思路,找出解决问题的方式、办法和对策,并付诸实践。通过教与学间的有效互动,以学习对象的实际效果和实际能力为衡量标准,有利于教与学间隔层的消除,方便实际检验。

[关键词]C++程序设计;教与学;实际能力

[中图分类号]G642.0;TP311.1[文献标识码]A[文章编号]1673-0194(2009)19-0123-03

在c++程序设计的学习中,易出现教与学间隔层,此在高校和高新技术企业同时存在。如何寻求有效的方式、方法和对策,使学习对象能较好地掌握技术要领,学会设计,提高实际编程能力,是教与学问亟需解决的问题。

1实际中存在的问题与不足

现代大学对教师的要求高,是否具有胜任力,能得到学生、学校、企业、社会认同与大学教师本身的能力(研究能力、教学能力、分析问题、解决问题能力、动手能力)和个人素质(勤奋、进取、钻研、善于改进、善于总结、沟通、协作,人品)等因素有关。目前我国从事大学c++程序设计的教师究竟有多少曾从事过大中型程序设计项目的实际编程?这种没经实际检验,从学校毕业又从事教学,由学校到学校又新教学生的教师居多,所讲授的教材除基础易掌握的一些部分外,对学生的c++程序设计的能力能提高到什么程度,对c++这门课程把握能力如何,值得商榷。好在现今具备一定的硬件、软件、网络系统环境,可通过实际抽查或检验出学习对象掌握的结果。由于一些教师讲授不切实际,所教的程序解决不了实际问题,实验、教学和实际脱节,所学内容到社会实际中用不上,学生学习积极性不高,畏难,教与学脱节,与实际脱节,导致学生到职c++编程或维护岗位后,得从头重新学习。致使一些高科技企业对有些高校的毕业生置信度低,学生就业受到影响。

现代社会技术发展快,要求科研人员、教师掌握的知识增多,学识的复杂性、综合性等因素使其负担愈重。整个社会在市场竞争中加剧变化,急功近利、浮躁等学风等也随之而来,有些教师不适应技术进步,加大形成新的隔层。

学生对教师要求高,反映出随着技术的进步,需求在提高的实际。要求有好而有效的学习方式、学习方法、学习效果,隐含着在难掌握的课程方面存在某种不足。教师与学生间理解的隔层历来存在,而c++程序可依实际检验,愈显得矛盾突出。教师面对社会和实际的高要求,如何解决和把握与学生间的理解以及编程能力提高的隔层问题,激发学生的学习积极性和培养学生勤奋扎实的学风很值得研究。经深入企业调研发现,在高科技企业中,在对新员工进行培训、指导与传帮带时也存在类似问题。

2隔层症结分析与解决的思路、方式和方法

如何消除教师与学生间的理解隔层?经实践探索,建议把一门课程所掌握的主要技术点或知识难点作为一个个里程碑,各里程碑的阶段性难点必须加以关注。c++程序设计中,初学者对c++程序设计中函数返回时,形式参数和实在参数的认识,函数调用与函数程序的编写,函数返回值与不返回值的问题的理解;c++程序的输入输出流产生的效果;库函数的声明与调用问题;C++的封装;何谓面向对象,类和对象的关系,对象成员的引用,构造函数,析构函数,对象指针,友元函数,函数重载,继承与派生,多态性与虚函数,并发程序设计等都需要做出专门安排一一解决,用例最好和实际结合,和专业业务结合。

教与学的难点问题历来是学生和任课教师间的矛盾所在。如何寻求好的解决办法,是一名称职教师理应通过多种方法和渠道不断寻求、实验、改进、总结和提高的目标。按照技术理论和学科知识的发展,针对教学对象的变化,授课新技术或辅助技术的采用,对不同的对象采用不同的授课方式和教学方法,不断积累,动态地调整和适应。教师应不断努力提高,始终有敬业追求的目标。对教学中的难点和教学对象的变化,可参考Fermi Problem解决方法。即把问题分解为接受对象所能接受的程度或理解点。并不是把复杂问题降低难度的简单化,也非把复杂问题通过讲解其他类似问题的比喻让学生理解,而是实实在在地把复杂问题原型本能地分解。这里的关键是看教师对一个复杂问题如何分解,是否能分解开,按照不同的对象,分解到什么程度,达到什么要求和目标等,其体现出一个教师的学识、能力,水平的高低和为什么有些老师能得到学生信服的原因。经过采用Fermi Problem解决教学中难题和教与学问的交互,达到教学要求,学生理解,教学相长。如,当你把课讲得很清楚时,学生反映课堂上的东西全听懂了,但仍不会做题,不能独立用c++编程解决实际问题。经对这类问题分析,发现是对学生提供的信息和学生通过外界其他方式所知信息太少,经历c++编程环境太少,实际编程能力不足等原因,所以无法解决它。当把学生的某一问题分解成为几个次级问题,若每个问题不用求教专家、教师、同学或参考书能解答时,就基本会掌握难点,使教师所教与面授对象所能达到的理解点动态衔接,为接受者所认识或初步掌握,经过多次上机检验,积累不同类型的问题、算法、程序和解决方案,便可达到会初步编程之目的。

解决教与学问理解隔层的有效途径都有哪些呢?对学生来说,从进学校的第一学期起,不管上什么课,都要为其将来的职业生涯考虑。因为就业的复杂性,学校、教师、学生都不能保证学生毕业以后就一定能从事什么工作。所以要做好充分的准备,使学生通过多个环节的专业培养和专业训练,缩短学校与企业或社会实际需要间的距离,使之能很快上手适应工作。

c++程序设计是实践性很强的一门课程,课堂教学与上机动手密切结合,采用科研项目中的实例分析与课堂随即实验是检验正误、提高学生学习兴趣和实际动手能力的一个有效途径。

师生间的隔层在于理解。老师理解或掌握的,怎么让学生接受、理解。教师在课堂上同学生一同分析外,如何激发学生的学习兴趣,除教师的胜任力外,主要是要把技术核心理解透,分析设计到位,让学生把握关键和难度的细节,增加学生的探奇心,激发学生能自觉学习、研究的兴趣,便于学生加深理解。社会需要以学生的实际学习效果或实际水平来检验教师或指导老师的实际水平高低,而不是教师的自我感觉良好。

以往教学中,一般通过两种安排做实验:一种是全部把理论课上完或上完大部分后,安排一定次数和时间上机实验。另一种是上一段理论课后,依进度交替安排一系列实验。前者易形成学生应付课程作业任务,不求与实际结合,不求甚解,只要结果正确就行,未联想到可给今后实际工作带来多少可借鉴之处,没实际掌握,效果不如后者。后者虽有一定进步,但仍存在课堂难点的理解问题,大学课堂授课知识的保有量多,内容多,有的节次还可能出现难点多,学生的理解力和注意力不尽相同,不能保证学生对课堂的所有内容通过课堂一下子真正理

解,可能有脱节现象或隔层出现。倘若教师的授课内容不切实际,针对性不强,不和专业结合,易引起学生走神、不重视和未掌握的问题出现,效果也不尽满意。

针对以上问题,采取每周都有1次在实验室上师生交互上机课,时间进度为现场交互式理论教学和上机编程调试程序各占1/2。学生预先在课下准备一定的解决某些问题的程序。教师在实验室现场技术环境场景授课,与学生进行面对面技术交流。此方式对教师的知识、技术、实际动手能力和分析解决问题能力要求极高,是检验能否把握技术前沿,是否有扎实的基本功和理论知识正确与否的试金石。要求教师按正确的目标引导学生掌握更多。经过和学生现场面对面的实际交流,每周都至少有1次高质量的上机和师生交流时间,学生对抽象和疑难的问题理解能力大为提高,能很快鉴别出错误,积极在课后主动学习,自学钻研,并给教师带来一些难以解决的题目,同时联想引发出一些专业实际问题,要求用计算机c++程序设计编程解决;或学生自己解决,求助教师指导完善和提高。使教学相长,教学和实际结合,实际应用能力提高,收效很好。

学生感到c++有些抽象的原因是没经实际编程的上机体会理解。课堂教学与上机动手密切结合后的思考、领悟、归纳、总结,将利于疑难问题及时解决,能加深理解和消化。按学生和教学的需要进行上机实验,实行师生计算机平台编程问题交流,解决学生中编程问题,也可使学生以后应用时能有所借鉴。

畏难是因为多因素综合作用,矛盾、问题和各种约束条件与数学模型、算法、程序结构、数学运算、数据处理、关系运算、逻辑运算等关联可能交织在一起,庞大、错综复杂令学生费解。这种情况不妨采用Fermi Prob—lem解决。深化问题和新的知识需渐进式加码进行,通过不同的程序实例让学生理解知识,掌握和理解难点和新技术。经过大量不同类型的实例,使学生学会程序分析以及对不同问题的建模、程序设计和编程实现。

在课堂及与学生面对面的技术交流中,可采用香港科技大学苏家培教授等使用的问题导向模式,在使用此模式的过程中,以和不同专业结合的多个不同问题或切身问题引导学生思考,让学生思考问题所在,自行找出解决问题或难题的素材,并通过同学、师生间的讨论、交流来吸取新知识,掌握解决问题的思考方法,通过实际训练加以提高。当一批学习优秀或中上水平的学生学习出现质的飞跃后,由于学生中有相互交流、促进、激励和攀比作用,会使中游上进,下游更加努力,上游做得更好。

当然不能保证学生仅通过54学时的理论课和18课时的实际上机课就都能编制大的c++程序,完全独立进行c++程序设计。要让学生懂得,学好c++程序设计,需要以学会后为契机,经常应用、使用,不断编写各类程序,甚至小程序。如学生可通过课外科技活动小组的课余或课外活动编制小程序;通过参加全国、省级的电子竞赛或数学建模竞赛提高实际编程能力;通过假期参加社会活动,为中小企业编程;通过毕业设计环节等进行训练。在校期间,经常参加c++程序设计的编程,通过多种方式和各种可能的渠道,利用和把握机会,持续进步,持续改进,使c++程序设计能力不断提高。在入门后,最好能经过一个大的实际C++编程项目的锻炼,才能体会到c++程序设计的真谛。利用和实际结合的机会学习c++程序设计,是不断提高学生自身c++程序设计实际编程能力的一种最好的锻炼和检验。实际工作锻炼中如有问题,可及时反映给动手能力强的老师,及时解决,帮助学生提高实际能力,也密切了企业与学校间的关系。

对于没有经过大的c++程序设计实际项目锻炼的教师不能嫌弃,也不轻易放弃,只能在实践中不断提高。而且这种提高应是主动的,而不是被动、强制或表面形式的。因为只有参加过大中型软件项目的人才会体会到c++程序设计的优越性,才有可能把c++程序设计讲清,利于消除教学中教与学间的隔层。对承担c++程序设计的教师而言,至少要参加过一次大中型科研项目的实际编程,并能经常性地进行一些科研性、教学上的技术和学术的问题探讨,把业务搞精,务求与最新技术同步,适应最新技术和有关协议编程,便于教学生时能解决实际问题,把本专业的应用程序编好。当然有些教师不一定有参加过大中型软件设计的机会,但通过其他方式潜心钻研,不排除由其他途径达到一定目标。c++程序设计要教好不同的对象,就一定得用最先进的方法并具备基本技能,并非有人理解的是计算机语言类程序教学问题而忽略教与学间的隔层问题。

3产生实际效果分析

通过师生面对面的实际实例教学,检验学生在科研项目实际表现,学生自己鉴别c++程序设计编程能力明显提高;学生间相互合作鉴别,同学问相互感到彼此进步明显;专业教师鉴别感到学生动手能力,理解能力,技术潜能,可塑因数,完成任务明显增强。经使用本专业相近项目实例,实验实例,升华提高实例后感到学生进步很快。已参加工作的一些毕业生经过社会鉴别,得到多数高科技企业和开发单位的认可。

在某研究所用Microsoft Visual C++6.0开发网络应用软件时,曾带过某高校毕业的一名计算机科学与技术专业的学生,该毕业生在校学过c程序设计,但让编程时好像未学过一样,在经历了3个月的严格训练和传帮带后,提高明显。他深有感触地说,这样跟着实际学3个月比原在大学所学3年的东西还要多。为何会有如此情况?关键是参加了实际项目中的C++程序编程,除要求严格,一阶段一个目标,传帮带在实践中不断提高外,技术知识与实际密切结合,面对面的技术交流与指导是不断提高的一个根本原因。

4结论

经过数年在教学和工作实际中采用上述方式、方法进行教学,带本科生、研究生等实践,收到了好的效果。至今仍有很多毕业生、企事业单位的技术本员通过现场、网络、电话和E—mail等方式要求指导或咨询,解决实际程序或系统中的问题。这说明学习确实需要终身学习和能见到实际效果的互动,运用得当,可以实现教学相长。若方式、模式、方法到位,教与学间隔层可消融,对实际有促进作用,能产生长期效果,有一定的推广价值。

猜你喜欢

教与学程序设计
楷书的教与学
教与学
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
欢迎订阅《小学数学教与学》
高职高专院校C语言程序设计教学改革探索
OBE理念下基于Greenfoot的Java程序设计课程教学改革
PLC梯形图程序设计技巧及应用
奇异值分解的教与学
三级甲等公立医院绩效考核程序设计