APP下载

C++程序设计实验教学方法研究

2016-12-24魏玉芬丁艳清袁玉萍

高师理科学刊 2016年6期
关键词:程序设计实验课代码

魏玉芬,丁艳清,袁玉萍

(黑龙江八一农垦大学 理学院,黑龙江 大庆 163319)

C++程序设计实验教学方法研究

魏玉芬,丁艳清,袁玉萍

(黑龙江八一农垦大学 理学院,黑龙江 大庆 163319)

针对信息与计算科学专业学生创新能力差及就业竞争力不足等问题,提出对C++程序设计课程的实验教学实施“启发——创新——实验”的教学方法,让学生在启发式教学中大胆尝试创新思路,在实验过程中更加灵活地掌握知识,逐步培养其主动学习、自主创新的能力,为后续的实践、实习和实训过程奠定基础.

C++程序设计;实验教学;教学模式

目前,我国各高校的程序设计类课程都设置了实验、实习、实践和实训等相关环节的教学,由于这些教学环节没有被逐一深入的研究和整合,使学生不能在每一阶段都能得到实际的锻炼.以至于不能为下一环节的学习做好准备工作,也即各环节相互之间没有连续性,教学计划与就业导向相互脱离,使学生就业困难,不能更好地为社会服务.在实验、实习、实践和实训环节中最重要的一步是实验教学,对于程序设计类课程,要想让学生学会编写简单程序,掌握调试相关代码,理解并运用相应的理论知识,拥有处理问题的思维模式,必须通过实验教学与上机实验.

传统的程序设计类课程实验教学基本上是理论验证性实验,即学生完全被动地去实验,无论从实验目的、实验内容、实验方法还是实验步骤都由教师提前规定好.这样进行的实验教学缺乏创意,同时也限制了学生独立思索与能力提高,不利用对学生的思维能力与想象能力的挖掘.针对这一问题,同时考虑信息与计算科学专业持点,本文提出对C++程序设计课程的实验采用“启发——创新——实验”的实验教学模式.这种教学模式教师作为主要的引导对象,突出学生的主体地位,让学生在实验中由简入难地掌握基础理论知识,同时锻炼学生主动学习、自主提高的意识,为后续实践、实习和实训过程的学习打下坚实基础.

1 教学模式结构

1.1 教学模式构建

立体化的教学模式主要以打破常规的教学中实验、实习、实践和实训各环节相互孤立的情况,在时间和空间上贯穿整个大学4年的学习阶段.分别安排在实验教学、集中实践、实习教学周和校企结合中进行,使信息与计算科学专业各门基础专业课的基础原理与实际问题的解决方法相互沟通,互相调节,以使学生综合应用专业的能力在每一个步骤中都能坚实地提升,从而逐步增加学生就业竞争力.具体教学模式结构见图1.

图1 信息与计算科学专业教学模式结构

实验教学主要是让学生尽快掌握基本的理论知识,强化发现问题、解析问题的基本技能和自主学习提高创新意识,提高计算思维能力,为今后专业学习奠定良好基础.在实践教学中学生可以锻炼逻辑思维方式,开拓思路,提升解决实际问题的能力.在生产实习中学生可以充分了解企业的具体需求和要求,以此提高自身学习动力.在实训过程中学生走出校园,在企业接受有针对性的专业化培训,这有利于提高学生适应社会的能力[1-6].

1.2 C++实验教学存在的问题

C++作为一门对动手操作要求很高的课程,其知识的掌握与能力的培养基本上取决于实验教学.因为实验教学,不但可以帮助学生巩固课堂教学所授的各种繁杂的知识点,还可以让学生掌握程序设计的设计风格及经典算法.2011级至2015级信息与计算科学专业设计类课程实验、实践的开课情况见表1,实习环节和实训环节分别在第六和第七学期进行.从表1可以发现,计算机类各课程的实验学时并不多,对C++课程来说,总学时116,而实验学时32,在少量的实验学时条件下让学生拥有编程能力,需要调整实验教学方法[7].

表1 课程实验、实践汇总

目前,信息与计算科学专业C++实验教学方法是实验课上学生完成每次教师预留的10个题目,课后上交实验报告.实验内容是教师事先设置好多知识点综合题、单知识点难题、单知识点一般题和基础应用题4类趣味性题型,难度由简入难,学生可以根据自身的能力、兴趣自主选择实验题目完成.对于C++程序设计课程的期末考核,期中实验教学的成绩只占20%,所以学生对实验课不如对理论课重视.实验教师对学生实验课的最终成绩的给定,常以每章的实验总结报告的完成情况和实验课缺勤情况作为评分依据,而每一份实验报告由实验完成数量、每题难度系数共同决定,其造成评价结果不能准确说明学生的编程能力及学习情况.从学生上交的实验报告中不难发现,大部分学生都选择简单、单知识点、难度系数在0.6这些题,极少数的学生会选择稍难点的题.这也反应出学生自已选题做实验,简单的会做,稍难的不去尝试,能力总是停留在初级阶段.

2 实验教学方案实施

2.1 实验课作为理论课的辅助

在讲授C++程序设计过程中,发现该课程包含多种数据类型,各种语句的表达方式灵活多样,功能结构繁杂多变.对于教师而言,觉得该课程不易渗透给学生;而对于学生来说,该课程也比较难掌握.由于多种原因,C++传统的理论教学是教师把语法规则贯穿整个C++教学过程中,这对于学生使用语言去解决各类问题是非常不利的;而在实验课中学生基本上参照实验教材和指导教师给的部分程序按部就班地实现完成,学生在这一过程中虽然有收获,但是缺乏创新.学生完全是被动的接受者,没有充分发挥其主体作用,同时学生的学习兴趣也没有得到激发,应将两者有效结合起来,将实验课作为理论课的横向和纵向的延伸[8].

课堂教学应主要强调基础知识的学习和运用,在教学中可以使用相对简单实例对基本知识点进行分析和运用,并进一步解释编程语言在不同技术背景下的思想,这样学生学习相关理论时,就会有较强的动力.更重要的是,可以使学生了解如何将现实世界的问题转化到计算机世界中去,这对于培养学生的程序设计思维有很大帮助.简单的理论教学让学生学会知识点后,引导学生思考程序功能的变形,让学生尝试动手操作,功能的复杂度不要求高,在兴趣范围之内.如在程序设计初步讲解3种基本结构时,教师可以先引导学生分析打印左下三角的算法,就是打印主对角线和主对角线下方所有元素,即行标大于等于列标.教师可在此基础上提出实验问题:如何打印乘法口决中的右上三角,即打印主对角线和主对角线上方所有元素,主对角线下所有元素为空.鼓励学生自行思考,自由编写代码,无论简单实现,还是复杂界面设计完全按自已能力去做.如下为学生做的代码及运行结果:

每节理论课上教师预留2道开放的实验题目,实验课上让学生按自已兴趣逐步尝试由简单到复杂的编程完成实验,在这一过程中让学生做到自已学习教材、理清思路、查找资料、动手实验,然后提出问题,评议疑问[9-10].

2.2 “抄袭”+“修改”互动式学习能力培养

“抄袭”在考试、毕业论文、网络软件、游戏等很多事情上被使用,在这些方面肯定是一个贬义词.但在计算机行业内,如果想写出漂亮的代码,或成为优秀的程序设计人员,却是需要去“抄袭”好的代码,即揣摩或临摹别人的设计风格.比尔盖茨的成功,离不开他抄写的一些开发设计师的部分笔记和字条,用这些资源开发了属于他的IT领域.“抄袭”书里面和别人精巧的程序,并在电脑上将程序实现,可以发现原文的每一个细节和微妙之处,这是阅读所感觉不到的.我们坚决反对不经大脑的“抄袭”,如很多学生每次遇到难解的问题,就参照百度搜索中找到的相关代码完成问题.然而,使用别人的代码只能解一时之难,却不能培养学生的钻研精神.

以往的实验课上,很多学生都在网上抄袭别人的程序,目的就是完成教师布置的任务,上交实验报告,他们可能对抄袭的程序既不看也不执行,这就失去了实验教学的真正目的.其实对于那些好的语句、代码和设计思想,可以鼓励学生“抄袭”,但不是为了抄而抄,而是让学生能够从这些语句、代码中看到闪光点,鼓励学生修改程序,实成自已理想的功能.

例如:在讲函数时,为学生讲解实现数值运算系统界面的设计、各功能函数的定义及调用方法.对于这类有互动性的界面可以让学生有意识地体会功能模块化的分解设计,每个程序模块的实现方法,功能函数之间的孤立与联系及参数传递的方式等.代码既简单,又很好理解,学生非常喜欢,同时也将顺序、分支、循环所有知识点运用进来.

教师将界面代码分享给学生,让学生在实验课上“抄袭”这一段代码并编译实现.同时在此基础上提出自已的问题并实现,可以自由修改代码,实现一个简易的小系统,可以是学生成绩管理的小系统,也可以是交友信息的小系统,充分发挥学生的想像力.学生如果想实现自已的交互界面,就会对代码进行学习分析,这一过程会提高学生看代码、写代码和改代码的能力,为其后续的实践奠定基础.

2.3 团队式实验教学方法

实验教学应包括学生实验前的准备工作、上机实际操作和实验报告课后完成3个步骤,在实验课上不仅让学生自已操作,而且应该由实验教师带领学生边讲边操作部分练习题.在指导实验过程中,由于指导教师人数少,学生自身的基础和能力又存在一定的差异,因此建议学生建立小组,每组3~4人,选择1名组长,进行互助式、分工式学习.学习小组的主要工作有:(1)实验课上互相帮助、互相学习;(2)针对个别的实验内容,小组应完成实验总结报告.实验教师在实验教学工作中应该重视实验小组出现的问题并给予指导,主要有:(1)对于每个实验小组在实验过程中都出现的问题,并且学生不能自已解决的,应该重点帮助讲解;(2)实验课下,实验教师在评定每组实验总结报告时,应随机抽看某组员的个人实验报告;(3)总结小组实验情况,对于完成质量高的小组程序进行学习分享,同时对于出现的问题,在课上进行分析点评.

2.4 考试内容的改革

传统的实验课考核方式是按照学生实验报告完成情况进行考核,即学生根据自己的能力选择相应系数的实验题完成,最后成绩乘以难度系数,作为最终的实验成绩,实验成绩占课程总成绩的30%.这种考核方式没有全面地反映学生的学习情况,应该建立一套有效的C++程序设计实验考核评价方法.如在实验前,检查学生预习的实验报告,要求学生完成预留程序的手写伪代码和程序设计流程,此项占实验成绩的40%.实验课上有学生自由发挥编程题,也有以学习团队形式完成的实验题,实验教师应仔细掌握每位学生和每个小组实际完成的程度,要求学生按照规范编写代码,使程序代码层次清晰,一目了然,便于后期的维护与修改工作.要求学生按照统一的规范来书写注释,加强学生调试能力的锻炼,根据其完成的情况给出成绩,占实验成绩的40%.对于有修改完善程序功能类型实验的学生给予加分,使学生能够抱有极大的兴趣和主动性参与每次实验.每次实验报告总分10分,共10次实验,要求学生记录并调试每次试验过程中出现的问题及如何解决,实验报告的成绩及记录信息占实验总成绩的20%,以此积累学生学习过程中的问题.

3 结束语

C++程序设计实验教学的过程,与理论教学是相辅助的,不是只要学生学会简单的语句,会调试简单的程序方法即可,而是要调动学生的学习兴趣,让学生能够主动思考,动手操作,培养学生主动学习的能力.教学实践中,教师应该积极调动学生开发程序的兴趣,采用多种教学方法来丰富教学内容.针对学生实验中遇到的问题应该给予耐心的指导,并用这些问题来回馈拓展课堂教学,使实验教学与理论教学真正做到互相辅助,使学生对专业知识由感性认识逐步深化到理性运用,更加全面地学习专业知识,更大程度地运用所学知识解决各类实际问题,为今后的“三实一体”学习打好良好的计算机编程基础.

[1] 魏玉芬,李雨,野金花.“四实一体”递进式立体化教学模式探索[J].通化师范学院学报,2014(6):69-71

[2] 冯健昭,肖德琴.互联网+时代C++程序设计教学的改革探索[J].教学园地,2015,33(1):1-5

[3] 梁浩,冯春媛.计算机课程体系缺失环节的研究与探索——以C/C++语言教学为例[J].高等教育在线, 2013(5):139-140

[4] 刘晓燕.教师教育课程的实践取向:基于默会知识的思考[J].教育探索,2016(1):109-111

[5] 王磊,蔡绍峰.C++课程在应用型本科院校中的新型教学模式[J].赤峰学院学报:自然科学版,2013,29(2):211-213

[6] 郑元攀,张亚丽.信息技术在C/C++实验教学中的深入应用研究[J].工业和信息化教育,2015(11):75-79

[7] 周晓晶.开展3+1培养模式科学地发展地实践信息与计算科学专业的建设[J].大学数学,2012,28(4):155-158

[8] 陈翔,鞠小林,顾卫江,等.测试驱动开发思想指导下的C++程序设计教学改革[J].计算机教育,2015(1):109-113

[9] 徐龙琴,刘双印.教学做一体化的C++程序设计教学改革研究[J].中国电力教育,2014(21):24-26

[10] 白霞,高飞,赵娟.基于计算思维的C++面向对象程序设计教学改革[J].计算机教育,2014(11):7-9

Explore the experimental teaching method of C++program design

WEI Yu-fen,DING Yan-qing,YUAN Yu-ping
(School of Science,Heilongjiang Bayi Argriculture University,Daqing 163319,China)

Considering the weak of innovative spirit and ability of students in information and computational science,deficiency of employability restricts the employment competence,a new mode on C++program of experiment teaching is proposed,that is lead-innovation-experiment.The method can help students to master the knowledge and improve their abilities of researching,autonomous learning and creative thinking.This will pave the foundation for the future practice,training and practical studying.

C++program;the experimental teaching;teaching methods

TP312∶G642.0 文献标标识码:A

10.3969/j.issn.1007-9831.2016.06.024

1007-9831(2016)06-0080-05

2016-04-30

2012年黑龙江省高等教育教学改革项目(JG2012010470);2011年黑龙江省高等教育科学研究“十二五”规划青年专项课题(HGJXHC110223)

魏玉芬(1979-),女,黑龙江大庆人,讲师,硕士,主要从事程序设计研究.E-mail:weiyufen2008@163.com

猜你喜欢

程序设计实验课代码
密林深处——“从写生到创作”的水墨实验课
基于Visual Studio Code的C语言程序设计实践教学探索
有趣的实验
从细节入手,谈PLC程序设计技巧
创世代码
创世代码
创世代码
创世代码
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用