《C++程序设计》互动教学改革实践

2012-01-27 16:39郭丰娟王晓辉
中国科技信息 2012年11期
关键词:学时互动式程序设计

郭丰娟 王晓辉

华北电力大学科技学院

《C++程序设计》互动教学改革实践

郭丰娟 王晓辉

华北电力大学科技学院

"C + + Programming" Teaching Reform

分析了《C++程序设计》课程教学中存在的问题,提出了讨论式互动教学、竞赛式互动教学、反串式互动教学、启发式互动教学等教学改革措施,经实践检验,效果良好。

C++程序设计;互动式教学;启发式教学

《C++程序设计》是国内外各高校计算机专业及许多理工类院校的非计算机专业学生的必修课程。其目的是使学生掌握一门高级程序设计语言,具备一定的编程能力,能够独立分析问题和解决问题。作为一门实践性很强的课程,传统的课堂讲授教学模式教学效果不佳,《C++程序设计》课程的教学改革已经成为高校教学中讨论的热点。

1 存在的问题

1.1 大课堂教学

随着各大学的扩招,大学生人数激增,由于教室、师资等的限制,很多学校采用了大课堂教学。在大课堂教学中,学生很难始终如一地保持遵守纪律、积极发言等良好行为,一些学生上课期间交谈、发短信甚至逃课。教师没有精力了解每个学生的学习状态,对于学生的接受能力没有准确的定位。

1.2 学时有限

对于非计算机专业而言,授课学时一般在40个学时左右,实验学时为20个学时左右,这样的学时安排对于《c++程序设计》的教学内容而言非常有限,如果教师急于完成内容的讲授,只能采取传统的填鸭式教学法,学生感觉难以接受,也失去了对这门课程的兴趣。

1.3 实践环节薄弱

课内实验的主要形式为教师布置题目,学生在上机时自己编写程序并调试运行。实验课上,通常是学生问题过多而教师分身乏术。学生们面对错误更多的是无奈与困扰,只能不停地举手等待老师指点。实验课效率低,学生调试能力差,更有少数学生趁老师不注意上网、打游戏、看视频浪费宝贵的课堂时间。

1.4 后续学习能力弱

虽然学习了《C++程序设计》课程,但没有了老师的讲授,面对需要学习的新的程序设计语言仍感觉无从下手,或者学习时间过长,事倍功半,其原因在于没有学会如何去学习一门程序设计语言。

2 互动教学

解决程序设计语言教学中问题的关键在于调动学生主动学习的积极性,教会学生如何学。通过有效的师生互动来创新大课教学,是解决当前大课教学困境的一个思路。师生互动,关键是让学生参与到课堂教学中。因为有效的课堂互动,较大地改变了以往那种老师教、学生记的传统形式,加重学生主动参与的比重,提高课堂学习的自主性,发挥学生学习的积极性和主动性,促进大课教学目标的实现。[1]

大课教学互动实现的主要措施为化大为小。将大课堂分为小的讨论组,例如每班3个讨论组。为了将学生实现有效的组合,参考学生以往的学习成绩由教师分组,由学生选定组长。在讨论组划分好后,利用小组在课堂中有效地实现互动式教学。

2.1 讨论式互动教学

有效的课堂互动,必须具有多样化的方式与途径。否则,方法单一容易引起学生视觉疲劳。对此,教师要善于创新互动方式。其中课堂讨论较为重要。由于人数多,以前小课堂的提问与讨论方式已经不能让更多的学生参与教学。但是,有效的课堂互动必须有讨论。所以,在《C++程序设计》课程中采用小组讨论形式。这就需要教师精心设计讨论主题及发言方式。程序设计语言是一种机器语言,就像英语汉语一样,会有很多语法规则,需要实践才能真正地去理解。采用灌输式的教学法[2],似乎在有效的课时内向学生传达了足够多的消息,实际上学生只是进行了机械的记忆,根本没有真正地理解。例如for循环的用法,老师不断地重复for循环的执行过程及三个表达式的作用及需要注意的事项,学生也只是似懂非懂。采用讨论式互动教学发,能让学生主动地发现问题,加深记忆。例如,讲述for循环的相关内容时,可将教学过程分为两部分:第一部分:针对题目“打印1到10的平方根”,让学生先用顺序结构写,感觉繁琐不便后,教师引出循环结构并逐步写出具体的程序:for(i=1;i<=10;i++) {x=sqrt(i); cout<<x<<endl;},向学生简要介绍for循环的基本语法和执行过程。第二部分则以学生讨论为主,讨论内容为for循环测试提案。每个学生将自己对该结构所存在的疑问及希望测试的案例提出,组长归纳总结后形成本组的for循环测试学习方案。课堂中学生提出了这样的问题:1)依次将表达式“i=1”,“i<=10”,“i++”去掉程序会如何。2)如果将一对括号{} 去掉后程序会如何。3)在程序后加一条语句“cout<<x<<endl”会输出什么。4)如果i<=10的位置只出现个“10”可以吗。5)能在界面上输入数据吗?通过上述问题的解决学生对for循环有了基本的了解。教师只要再做一些简要的补充就可以让学生对for循环有一个全面深入的理解。

2.2 竞赛式互动教学

人脑处于竞争状态时的学习效果要比平时的学习效果好得多。“石本无火,相击而发光。”学生对即使是毫无直接兴趣的智力竞赛活动,因渴望竞争取胜而产生的间接兴趣,也会忘记事件本身的乏味而兴致勃勃地投入到竞争中去。教师可在课堂中设置程序竞赛环节[3]。时间以1小时内为宜,每部分内容可设置一次竞赛,题目的难度要适中,最好是已经讲授过的题目改动而来。仍然以讨论小组为单位,以抢答的方式进行。小组派代表在教师机上编写程序,小组内成员可提出修改意见并进行调试,其他小组成员则对该程序进行测试。在有限的时间内完成题目的可给组内每个成员的平时成绩加分。这样,小组成员形成了一个小的“利益集团”,每个人都有动力为问题的解决出一份力,从而达到好的学习效果。

2.3 实验课中的反串式互动教学

程序设计教学中的实验是必不可少的。通过自己动手编写程序,学生才能将上课所学的知识内化理解并熟练地应用。教师通常会感觉到上课强调的问题学生还是在重复地犯同样的错误,这也是知识只从耳入,没有内化的结果。教育心理学研究发现,不同的教学方式产生的教学效果是不相同的。学生对所教内容的平均记住率为:教师讲授的方式,学生记住率只占5%;学生讨论的方式,学生记住率占50%,学生教别人的方式,其记住率高达95%以上。反串互动式教学模式正是以别开生面的形式,给学生展示自我、张扬个性的机会,引导其发现知识的奥秘,培植学生的成功体验。因此在《C++程序设计》的实验教学中采取了反串式互动教学。

实验机房为多媒体广播式教学机房,多媒体教学软件有助于教师进行学生实验过程监管,也可以实现教师演示、学生示范等多种功能。首先要对实验课的时间进行合理的分配,三分之二的时间用于学生自由上机。在自由上机的过程中,教师主要通过一对一的答疑方式辅导学生。在答疑的过程中留意能体现共性错误的典型程序并予以提示和修改。在第二阶段,进行学生示范,即学生反串教师角色,向大家讲解自己的程序及调试中遇到的问题。示范的学生分自荐发言和教师指定两种。教师采用随即指定的方式,可以给能动性差的学生施加压力,督促其更好地学习。

2.4 教师为主的启发式互动教学

问题启发是一种最常用的教学方法,它从具体问题出发,通过巧设悬念,激发学生兴趣,引导学生积极思考,让学生在一种成就感的情景下寻求解题方法,从而达到教学任务的目的。程序设计中一些基本结构、语法是需要教师直接讲授的,使用问题启发在教师为主,学生积极响应的互动氛围中进行,能够激发学生的求知欲,发挥主动性[4]。

例如在讲述程序设计结构的三种典型结构时,以一个简单的求平方根的例子入手。初始题目为:读入一个数,输出该数的平方根。算法为:1). 通过键盘读入一个数x。2). 计算x的平方根。3). 通过显示屏向用户显示结果。测试程序,发现输入负数后出错,然后教师可抛出问题:如果在输入负数的情况下正常结束程序?由此引入分支结构。继而引导学生站在用户的角度考虑输错后希望有怎样的处理呢?学生会自然地想到不希望程序结束而是能够再次输入数据,直到输入正确,由此引入循环结构。三种结构的引入顺其自然,学生很轻松地理解了每种结构存在的必要性和作用。

3 结语

作为一门实践性很强的课程,在有限的课时内达到好的教学效果,我们所考虑的重点不是在有限的时间内教多少,而是在有限的课时内教会学生如何去学习程序设计语言,这样即便离开了课堂,学生仍然有能力学,能够带着兴趣学,这才是程序设计语言课程真正的教学目标。本文针对当前《C++程序设计》教学中存在的问题,提出了互动式教学法。经过实践检验,收到了很好的教学效果,受到了学生的好评。

[1]闫东.大学教学中课堂互动的组织安排[EB/OL] .

http://www.bift.edu.cn/yxjf/skb1/skbjxgg/9298. htm,2010-06-04.

[2]范贵海.创建以人为本,课堂互动教学模式.考试周刊,2011(81):216-217.

[3]高睿,刘俊.互动教学法与竞争机制的理论探索与应用研究[J].科技信息,2011(31):194-196.

[4]文丰安,魏航.互动式教学法在高校形式与政策课教学中的运用.教育探索,2011(11):245-246.

郭丰娟(1980-),女,山西省太谷县人;华北电力大学科技学院,讲师;

王晓辉(1981-),山西省文水县人;华北电力大学计算机系,讲师。

10.3969/j.issn.1001-8972.2012.11.172

华北电力大学科技学院教改基金项目(104008)的研究成果

猜你喜欢
学时互动式程序设计
第二课堂成绩单制度下的学时发放标准的探索
——以中国民用航空飞行学院为例
《诗词写作》课程教学大纲(节选)
初中美术课堂互动式教学模式的有效应用
医学专业“Python程序设计”课程教学改革总结与思考
教学大纲国画(工笔花鸟)
探索学时积分制 构建阶梯式成长激励体系
基于Visual Studio Code的C语言程序设计实践教学探索
摭谈初中英语课堂互动式教学策略
从细节入手,谈PLC程序设计技巧
Prezi云存储互动式《大学英语》教学研究与数据分析