栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 学术 > 学生必读 > 中国信息技术教育

算法学习中的浅入深出和深入浅出

算法学习中的浅入深出和深入浅出

刘晶

编程教学内容一直存在着算法、程序的两相比较会偏重多少的问题。算法,当初学者尚无代码素养时学习困难;程序,缺乏算法滋养又显得生涩无趣。本期解码,我们邀请高中、初中两位教师来探讨算法与程序设计中的教法问题。

算法描述看似很简单,自然语言、流程图、伪代码一目了然。然而,想要达到“能熟练使用这些方法来描述算法”这一目标,的确还是有相当难度的,需要经过大量的实践才能见到效益。算法描述在程序设计模块中处于开篇位置,意在一开始就将算法的思想融入进学生的思维,进而形成一个好的程序设计习惯。那么,如何有效地开展算法描述部分的教学呢?

浅入深出,明白道理后再掌握技巧

自然语言的描述方式虽然有着种种缺点,但对于初识算法的学生来说却是不可逾越的环节,因为它是一个思维过程的体现。只有能用自然语言把实际问题的算法描述清楚,才能说明你的思维过程是清晰的,才有可能进一步用流程图或者伪代码形成算法,进而形成代码。自然语言描述的学习一般会结合案例,在分析问题的基础上形成一步一步的算法。案例的选择变得至关重要,一个简单易懂的案例往往比一些经典的算法案例要有效。

“浅入”,能帮助学生清晰地理解;“深出”,能促进学生深刻地认知。所以在“案例分析”环节,我引入了“把大象放进冰箱总共分几步”的案例。这个案例取自于一个经典冷笑话,之所以可笑,是因为如此简单的事情竟然还分了三步。这种方法正与算法把大问题拆分成小问题,把小问题转化成步骤,一步步解决不谋而合。“把大象放进冰箱总共分几步”的自然语言描述学生耳熟能详:Step1:把冰箱门打开;Step2:把大象放进去;Step3:把冰箱门关上。浅入有了,学生对于算法并没有丝毫畏难情绪。实际上,我们用计算机帮助我们解决问题就是要这样事无巨细,仔细分析这个算法,把大象放进冰箱是不是跟进栈有些类似呢?接下来是慢慢深出,第二个案例我采用了教科版《算法与程序设计》自带的“桌面小时钟程序”,在演示案例之后引导学生分析算法:Step1:检查小时钟数字的显示状态;Step2:如果是变化状态就让它停止;Step3:如果是停止状态就让它开始变化。这个案例的优势是依然不难,但是已经有了选择判断的思想在里面,为学生接下来学习选择分支语句搭建脚手架。

在“小试身手”环节,我进一步加强了难度,选取了教材上“凯撒密码”的案例,其难点在于,在分析问题的过程中,引导学生理解取模运算的用途。解决问题的算法描述为:Step1:取明文中的字母转换为字母表中的顺序;Step2:利用公式F(a)=(a+3)Mod 26计算出密文对应的字母表顺序;Step3:将密文对应的字母表顺序转换为密文字母。

對于较为简单的自然语言的算法描述,从“案例分析”到“小试身手”,由浅入深,逐步加深对算法的理解,注重的不只是算法描述的步骤,而是将实际问题分解转换为算法的能力。

深入浅出,在分解难度中印证道理

流程图是一种较为实用的算法描述形式,但是对于初学者来说有一定难度。如果想画好流程图,必须对程序有一定的了解,这对刚开始学习程序的学生来说是一个矛盾。

经过一个阶段的学习,你会发现这是一个循环提升的过程:当你对程序的数据结构、语句有了系统的学习之后,流程图会画得非常顺畅,进而程序代码也更加容易实现。

这一部分的“案例分析”,我依然选取了学生已经熟悉的“桌面小时钟”,将前面的自然语言描述进一步转换为流程图描述的同时,学习流程图的符号。由于省去了分析问题环节,只是描述方式的转化,所以这部分难度不大,学生能很轻松地掌握流程图绘制选择分支算法的方法。

在“小试身手”环节,想要展现流程图的优势,必须选一个问题不难分析、过程又不能太简单的案例。我选取了融入选择和循环算法的“水仙花数”问题。水仙花数的问题分析对于高中生来说很容易理解:输出100-999之间的水仙花数,如果三位数abc符合条件a3+b3+c3=abc,则abc为水仙花数。用流程图实现算法描述就有了难度,那么,如何让学生既能体验流程图描述算法的过程,又能够降低初学者学习的难度呢?

我为“水仙花数”的流程图描述学习搭建了三个支架:自然语言描述、流程图框架、程序代码。自然语言描述帮助厘清解决问题的思路;程序框架中不同形状的符号帮助对应语句出现的位置;程序代码帮助规范描述用语。少数学生参照自然语言描述和程序代码,经过简单地分析,就可以在绘制好的流程图框架中完成任务,大部分学生则能够书写出主要步骤。

当然,流程图的学习不可能通过一个案例实现,还需要多加练习才能熟练掌握。对于初学算法的学生来说,这样的方式能够迅速帮助他们完成流程图的初体验。

对于有一定难度的流程图算法描述,在“案例分析”环节选取简单案例,让学生迅速了解规则;在“小试身手”环节由深入浅,虽然选取难度较高的“水仙花数”问题,但是提供支架降低难度,同时引导学生在此过程中注意对比、分析的解决问题方法。伪代码的学习在初始阶段只需要与程序语句对比展示,了解其优点即可,在系统学习程序知识之后,自然可以熟练运用。

浅入深出,适合将简单问题提升到思维层次;深入浅出,适合复杂问题的思维形成。在教学设计时,这两种方式都有助于计算思维的落地;在教学过程中,这两种方式既可以有效帮助教师调控学生的学习畏难情绪,激发其挑战斗志,也有助于分层教学的展开,教师可以根据实际情况及时引导。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/xueshu/665576.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号