首页 理论教育 例谈“比喻”在《算法与程序设计》中的应用

例谈“比喻”在《算法与程序设计》中的应用

时间:2022-02-19 理论教育 版权反馈
【摘要】:本文探究的是在《算法与程序设计》中,如何运用比喻法开展教与学的研究。《算法与程序设计》中的排序算法思想是程序设计中非常重要的内容。理解该算法是学习算法与程序设计的基本要求。在《算法与程序设计》第三章“面向对象程序设计的基本知识”教学中,涉及一些基本概念,学生常感到抽象、难懂而不愿学。

季 雁

摘 要:比喻法是通过比喻来说明事物或事理特征的方法,是以具体的事物把抽象的道理形象地表达出来,借以增强感染力和说服力。本文探究的是在《算法与程序设计》中,如何运用比喻法开展教与学的研究。

关键词:信息技术 算法 比喻法

“比喻”可以把抽象的道理具体化,枯燥的知识形象化,使之易于理解。《算法与程序设计》中一些概念和术语对于学生们来说很抽象、很深奥,尤其是穿插在各章节中的算法,更考验着学生的思维和耐性。采用比喻的方法,可以起到化难为易、化抽象为具体的作用。

排序算法

【案例1】冒泡排序

首先,结合生活阐述原理。比如在水中,随着水的压力变小,泡泡自下而上会变得是越来越大。接着,我在教师机上以随机点名软件选出8位同学排成一列。以这8位同学按学号从小到大排序过程为比喻,进行冒泡排序的讲解。8名同学上台后给每位同学背上贴上白纸,在白纸上用记号笔记录他们的学号。

第一轮排序,从第8位同学开始与第7位同学比较学号,如果比他小,就交换位置,依次类推,直到第2位同学和第1位同学交换完为止。这时,第1位上站着的就是学号最大的同学。第二轮排序,在剩余的同学之间即第8位和第2位之间的同学进行排序。首先从第8位同学开始与第7位同学比较学号,如果比他小,交换位置,依次类推,直到第3位和第2位同学交换完为止。这时,第2位上站着的就是学号排列第2大的同学。依次经过7轮排序后,最后第8位和第7位同学进行比较,第7位上站着的是学号第7的同学。至此,从第1位到第8位,站着的同学学号按从小到大排序完成。

【分析】《算法与程序设计》中的排序算法思想是程序设计中非常重要的内容。理解该算法是学习算法与程序设计的基本要求。书本上的描述是以枯燥的数字为引子,以介绍知识点为目的,学生对该算法的理解和具体灵活应用有很大困难。对此,我在教学中作了以上处理,充分应用比喻的魅力,引入可以采用“比喻”进行讲解,达到较好的教学效果。整个学生走动的过程就是冒泡排序的过程,经过实地演示,学生更能直观理解,印象深刻,课堂气氛活跃,效果良好。

循环语句

【案例2】编程实现1+2+3+…+100的计算,并认识For循环和Do循环的应用

首先,应用编程计算s=1+2+3+…+100为导入点,让学生思考最简单的计算上面公式的方式,以计算器为例进行说明,写出语句s=0,s=s+1,s=s+2,…,s=s+100,共101句语句来完成计算,引出循环的关键:重复同一个动作(在计算器上按加号和不同的数字)。将上面101个语句可以概括成s=0,s=s+i,i的值是1到100。

其次,在说到循环的两种形式时,又以吃饭为比喻。第一种情况,我要减肥,所以每次给自己规定只吃10勺,就不吃了;第二种情况,我一直吃,直到饭吃完了,或者我被撑坏肚子了为止。第一种情况,我知道要循环几次(用For循环),而第二种情况,我不知道要循环几次,只知道什么时候循环结束(用Do循环)。通过这样有趣的比喻,让学生在欢快的气氛下,理解并记忆关于循环的应用情况的知识点。

【分析】在该案例教学中,书本上的内容安排上显得非常专业化,教条化,完全不适合高中学生来理解循环思想,如果就按照书本内容照讲,学生上课时是可以理解记忆的,但可以肯定的是学生对循环的应用没有自己的理解,更谈不上应用了,有的只是书本上知识的记忆。而通过一个个发生在身边的实例做比喻,对学生彻底了解循环的原理是很有帮助的。

两数比较问题

【案例3】两数比较问题的比喻

把两数交换问题比喻成两个容器交换饮料的问题。问题描述:有两个容器A和B,A容器中装满了饮料,B容器中装满了调料,要将A和B容器内容交换,如何完成?

在上课过程中,许多学生对这个问题感到非常困难,很久也没有学生能给出自己的思路。于是我就举了个方法让学生考虑是否合适“将两个容器中的物品抛向空中,然后像杂技演员一样互换容器接住空中落下的物品”。学生一听,立马来了兴趣,思维马上就散发出来了,方法马上就很多了:在太空中交换不会有引力作用,将饮料倒进嘴里换好再吐出来,等等。将学生的思维重新拉回来之后,学生就非常想知道到底该如何来交换了。我又用了同桌互换作为比喻,让学生描述如何来交换座位,得出“我让开,你过来,我过去”的过程,而非“你过来,我过去”这么简单,还需要一个空地方让我先待着,这就是交换的关键所在。在该案例教学过程中,没有直接提出两数交换问题,而是通过容器互换、座位互换做比喻,通过比喻不仅活跃了课堂气氛,更重要的是激发学生的兴趣,培养了学生的思维能力。

【分析】这是学习算法与程序设计过程中一个最基本的问题,在《信息技术基础》《算法与程序设计》《算法与程序设计学生活动手册》中多次出现。该问题的设置的主要目的为引出“两数交换”算法,但在教材的书写上没有关于两数互换算法的直接描述,这可以看作是比喻法在教材中的直接体现。

概念解读

【案例4】面向对象程序设计概念比喻

“面向对象”是贯穿Visual Basic程序设计乃至整个Windows操作系统的一条主线。我以图片、艺术字插入Word文档为例,作了一个形象比喻。我说,整个Word文档是一个大“容器”,其中容纳着各种各样“对象”,有图片也有艺术字,这些“外来对象”以不同方式与文档中文字“友好相处”,达到美化文档的作用。不过,它们是来自于不同“加工厂”(图片处理软件,艺术字编辑器等)的“产品”。在讲到图片与艺术字的区别时,我这样说:马克思主义的一个基本原理是“具体情况具体分析”,艺术字与图片的不同之处是其本身不构成文档段落,它“漂浮”在文档“上空”,要“让出空间”(即在其插入处按回车键)“安置”它。短短一席话,既揭示了Word文档与插入对象间的辩证关系,又将“面向对象”的基本思想渗透其中。

【分析】在《算法与程序设计》第三章“面向对象程序设计的基本知识”教学中,涉及一些基本概念,学生常感到抽象、难懂而不愿学。如果教师枯燥乏味的说教式灌输,效果可想而知。如何化抽象为具体、形象,变难懂为易懂,这里,教师运用生动语言作恰当的比喻,往往起到“画龙点睛”之作用。

赋值语句

【案例5】赋值语句的比喻

在讲解“对象名/属性名”的用法时,由于学生经常会很习惯地只使用对象名,如将“在Label 1上显示Hello”写成“Label 1='Hello'”。针对这点,我突然想到了“人”的概念,告诉学生班级里所有的“人”都是一个对象,但是每个“人”都有不同的特性。比如,按性别可分“男人”“女人”,即“人/性别=男人”或“人/性别=女人”,同时作为单纯的人是没有任何用途的(学生很奇怪了,也很兴奋了,就想听听为什么“人”没用了),有用的是人的各个器官,比如,吃饭是用嘴巴,写字是用手,走路是用脚等等。即“人/嘴=吃饭”,“人/手=写字”,“人/脚=走路”,而不是“人=走路”。所以“在Label 1上显示Hello”也应该写出“Label 1.Caption='Hello'”。这种“花絮”往往可以缓解课堂气氛,调节教学节奏,也利于集中学生注意力和加强对知识的理解。

【分析】在《算法与程序设计》第四章第三节赋值语句有两种形式,一种是“变量名=表达式”,另一种是“对象名/属性名=表达式”。第一种语句的理解很简单,即把等号(赋值号)右边的表达式的计算结果存储到等号左边指定的变量中。第二种语句“对象名/属性名=属性值”的用法经常在历年的会考题、高考题中以不同的形式出现,平时在编制程序的过程中也经常碰到。通过这种比喻法讲解,深入浅出,学生印象深刻。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈