算法与程序设计教学之“化功大法”

时间:2020-08-31 10:53:26 教育毕业论文 我要投稿

算法与程序设计教学之“化功大法”

算法与程序设计教学之“化功大法”朱金花
[摘要]《算法与程序设计》模块以问题解决与程序设计为主线,揭示利用计算机解决问题的过程。重在培养学生思维能力,在教学中强调理论与实践相结合,它不仅需要学生具有一定的动手实践能力,更需要具有一定的数学知识和逻辑思维判断能力。随着教学的深入,学生个体差异的增大,算法学习成为部分学生学习的一道难以逾越的屏障!本文探究的是在《算法与程序设计》中,如何“化苦为乐、化难为易、化错为宝”,正确有效的组织教学。
 
 [关键词]算法  化苦为乐  化难为易  化错为宝

算法与程序设计教学之“化功大法”

 浙江省高中信息技术从2006年下半年开始实施了新教材,第二学期需要从《多媒体技术应用》和《算法与程序设计》中选一门,考虑到我校的实际硬件配备情况和与高二数学课程的联系,我们选择了后者。算法与程序设计具有高度的抽象性和严密的逻辑性,教师难教、学生难学成为一个突出的现象。如何消除学生畏惧心理,充分调动学生的积极性,我在教学过程中做了以下尝试和探索。

化苦为乐

 算法学习尤如一杯没有加糖的咖啡,充满了淡淡的苦涩,如何品出其中醉人的清香,兴趣是妙方!
 心理学研究表明:人们对自己感兴趣的事物总是力求探索它,认识它。对于刚接触程序设计的高中生,如果一下子引入大量抽象的名词、概念,势必打击学生的学习兴趣,同时,在学生没有任何知识背景的情况下,要完全理解这些概念也比较困难。那么,如何将抽象变得具体,把复杂变得简单,把枯燥乏味变得生动有趣,苦中作乐,使学生在愉快的课堂气氛中学习,思考,在不知不觉中达到对新知识的理解和运用。我以鲜活的实例为切入点,在每个例子中适时、适量渗透一些相关的概念和知识,让学生在做中学,在学中做,在完成任务的过程中,逐渐地、很自然地去体会概念。
 在讲算法概念时,我让学生先玩预先设计好的FLASH小游戏《农夫过河》:一个农夫带着一只鸡、一只猫和一袋米过河,但只有一条小船,并且每次只能让农夫带一样东西过河。农夫在场的情况下一切相安无事,一旦农夫不在,猫吃鸡,鸡啄米,游戏失败。这时,学生的兴趣一下子被激发起来,纷纷提出自己的方案,课堂非常活跃。在学生玩农夫过河游戏时,我提出算法是解决问题的方法与步骤这一概念。
 又如,在讲算法的优劣性时,我引用了成语典故“田忌赛马”。战国时代,齐王常与他的大将田忌赛马,双方约定每场各出一匹马,分三场进行比赛。齐王的`马有上、中、下三等,田忌的马也有上、中、下三等,但每一等都比不上齐王同等的马,于是田忌屡赛屡输。一日,田忌的宾客、对军事颇有研究的孙膑给田忌出了一个主意,结果以二比一赢了齐王。
 学生饶有兴趣地分析出了田忌赛马的六种方案,接着我要求他们选出孙膑的方案,并点出算法具有优劣性。
 学好算法是一个漫长、痛苦的过程,通过玩小游戏、引用典故来学习算法可以激发学生兴趣,使他们充分享受成功的喜悦。学习内驱力得到了淋漓尽致的挖掘,学习效率也得以明显提高,学生乐在其中!
 
化难为易

 《算法与程序设计》模块对学生逻辑思维有一定的要求,很多学生反应晦涩难懂。如何让高中学生掌握VB语言,其关键就在于“化难为易”。从学生已有的经验出发,先直观展示,后抽象思维,再代码设计。这不仅可以帮助学生理解算法,减少他们对算法设计的畏惧感,而且可以激发他们的学习兴趣。

 典型案例:两数值交换问题。
 小实验:有两个杯子A和B,A杯装有雪碧,B杯装有可乐,问如何把两个杯子中的饮料互换。
 分析:这是学习算法与程序设计过程中一个最基本的问题,在《信息技术基础》、《算法与程序设计》、《算法与程序设计学生活动手册》中多次出现。该问题设置的主要目的是为了引出“两数交换”算法。
 由于是生活中的实例,很快就有同学提出“再加个空的C杯”。通过实物操作演示,学生就理解了互换的原理。

 

 

 

 


画出流程图:

 

 给出代码:
 C=A
 A=B
 B=C

 在该案例教学过程中,没有直接提出两数交换问题,而是通过生活中杯子饮料互换这一实例做类比,不仅活跃了课堂气氛,降低了题目本身难度,更重要的是激发学生的兴趣,培养了学生的思维能力。而后再将知识迁移,通过这样的过程,学生对两数交换的理解和记忆都达到了很高的层次。
 又如,在说到循环的两种形式时,For循环与Do循环的区别是个难点,学生难以理解。于是我以剥毛豆为例,提出两种情况。第一种情况,我要剥豆,但我只剥10颗,就不剥了;第二种情况,我一直剥,直到毛豆剥完,或者手酸为止。在第一种情况下,我知道要循环几次(用For循环,通过次数控制循环的计算过程),而在第二种情况下,我不知道要循环几次,但是知道什么时候循环结束(用Do循环,通过条件控制循环的计算过程)。
 

 


 书本上的循环结构内容安排得非常专业化,教条化,难度大,不适合高中学生来理解循环思想,如果就按照书本内容照讲,学生上课时即使理解记忆了,但可以肯定的是他对循环的应用没有自己的理解,更谈不上应用了,有的仅是书本上知识的记忆。通过这样有趣的比喻,将问题由难变易,让学生在欢快的气氛下,理解并记忆关于循环的应用情况的知识点,彻底了解循环的原理。
 
化错为宝
 在《算法与程序设计》课堂教学中,我发现错误总是伴随着学生的学习过程。心理学家盖耶认为:“谁不考虑尝试错误,不允许学生犯错误,就将错过最富成效的学习时刻。”学生出现的错误自有它的特有之处,我们要容“错”、用“错”、诱“错”、最后纠“错”,这样才能让“错误”美丽起来,让课堂鲜活起来,让教学变得更加有意义。
 在课堂中我把学生每次上机犯的错误都记录下来,放到错误共享资源库,学生在调试程序时,如果发现错误,可以从资源库里“检索”。一段时间下来,学生的语法错误果然减少了。
 
错误源(全部来自学生错误)  分析错误  反思错误
Private sub form1_load()
 Print "#^_^#"
End sub form1_load()
改为command1_click() Print方法在form_load事件过程中不起作用
Text1 text= ""
Text2, text= "" 应改为Text1.text 表示对象的属性时,用“.”隔开
Text1.text=“您好!” 使用中文标点符号,系统产生“无效字符”,以红色显示。“”要改为英文标点符号""。 字符串常量要用英文标点符号。
Dim max as Integer
Max=100000 Integer类型改为Long 类型不匹配。
实时错误'424'
要求对象 窗体上未设计对象或对象名称与代码中的不符合 窗体上的对象名应与代码中的符合
If d > o Then o应改成0 输入错误而造成的语法错误非常普遍,输入程序时一定要认真仔细、并养成良好的操作习惯。
Spr(x) Spr应改成Sqr 
Labe1 Labe1应改成Label 
Test test应改成Text 
Ture Ture应改为True 
Dim s as string
Text1.text=Str(s) 去掉Str S是字符串类型数据,不需要str函数

 学生的错误是课堂最原生态的“资源”,我们不能忽视这些资源,而应充分利用这些错误带给我们的教学契机,化错为宝。课堂错误也只有在不断地改正中行进,在教师的良好驾驭中转化提升,才能迸发无穷的魅力。

 算法与程序设计教学一直都存在“难教”和“难学”的问题,这是由于程序设计本身抽象、枯燥,逻辑思维性强,高中学生不易入门。现代心理学表明好奇心、求知欲和创造力是紧密联系的,怎样培养学生的好奇心、求知欲、创造力,使学生乐于学习,这是值得探讨的。整个教学过程要符合学生的认知规律,化难为易,有助于提高教学效率。以“错误是资源、错误是财富”的理念为驱动,正确对待学生的各种错误,化错为宝,使学生在错误中成长。这是值得我们思考和不断研究的新课题。

[参考文献]
“错”中自有黄金屋——算法与程序设计课程“课堂错误”转化提升策略    边楚女

【算法与程序设计教学之“化功大法”】相关文章:

1.JavaScript-JavaScript数据结构和算法之图和图算法,

2.篮球基本功之运球训练

3.篮球基本功之胯下运球

4.简谈知识产权概念化之否定与特征之重构

5.个性化教学与班级教学的互补与协调论文

6.篮球运球基本功之运球

7.少儿舞蹈基本功之压腿训练

8.街舞基本功之压腿的练习

9.常用排序算法之JavaScript实现代码段