信息技术常态课中对学生算法思维的培养
2016-09-10严德良
严德良
人类千百年来都在寻求解决同类问题的最优方法,以期达到最佳效果。而“算法”简单地说就是解决问题的一般方法及步骤。算法思维强调思维的条理化、逻辑化和程序化,注重解决问题的一般性,更讲究能解决相似的一类问题。计算机的问世为人类探索自然添加了重要工具,对人类研究问题的能力和研究问题的方法产生较大的影响。“算法”是计算机领域的重要基石,它在科学技术和社会发展中起着越来越重要的作用,算法思维是计算思维的重要组成部分,尤其在信息爆炸时代显得更为重要。
算法是数学学科必修课程的学习内容,而作为计算机领域的基石,“算法与程序设计”只是高中信息技术课程选修模块。教学内容虽蕴涵了算法思维,但还是以程序设计内容为主。目前,信息技术学科课程体系和内容结构从小学到高中都缺乏对算法思维培养的重视。因此,如何从培养算法思维出发,结合学校实际活用教材,如何从解决实际问题出发,寻求解决问题的一般方法,如何让课堂充满思考,走出“技术应用”的泥潭,如何以培养算法思维为主线贯穿整个课程,塑造学科的灵魂,这些是每位信息技术教师都需要思考的问题。笔者从以下四个方面对此阐述一些个人体会。
● 从软件技术应用中,挖掘算法题材
计算机的发明,是为了让人们从繁重的重复劳动中解放出来。Windows视窗操作系统直观、易于操作,为用户快速学会计算机提供了方便。但当要处理的信息越来越多的时候,视窗操作的局限性则异常明显。例如,在“应用软件的设置”中,用户通过窗口进行操作,必须频繁点击“单选”“复选”等按钮。但如果有一台Windows服务器的IIS上有一千个网站,要统一修改所有网站的某些参数,那么通过窗口的可视化方式操作,将要重复点击几千次鼠标。这将是一项可怕的简单机械重复劳动。而此类操作可以通过修改文本配置的方式来解决,还不容易出错。UNIX操作系统通常以文本形式保存软件配置,自带VI等文本编辑软件,功能丰富,并能使用正则表达式查找替换,深受程序员的喜爱。
因此,在学习Word时,教师可以挖掘教材里的“查找”“替换”功能作为培养算法思维的教学内容。例如,在一篇文章中把所有“我”改为“他”,把“我们”改为“你们”。先让学生明白,如果先操作“我”替换为“他”,则文章中的“我们”会先被替换成“他们”。当要替换“我们”为“你们”的时候,将查找不到要替换的对象。进而可延伸拓展让学生思考有没有办法把文章中出现的数字一次性删除?简单的例子不仅能让学生体验合理选择操作步骤的重要性,还为日后学习正则表达式奠定了基础。
又如,在PowerPoint教学时,学生如果单纯学习简单的技术应用,必将索然无味,因为从小学到初中乃至高中学的内容都相差无几。因此,教师可以从培养算法思维出发,当教学母版与模板时,可将“母版—模板—幻灯片”三者比作是一脉相承的继承与遗传关系。学生只有弄清概念的本质,才能更快、更好地批量制作有特色的幻灯片。
● 从解决实际问题中,培养算法意识
算法思维注重解决问题的一般性,讲究解决相似的一类问题。在“信息获取”这一章,很多教师上课时都会直奔搜索引擎、关键词、下载技巧等主要知识点,这样容易导致学生盲目地进行搜索,或者按部就班地应付了事。而信息时代面对海量的信息,具备一定的信息素养,掌握获取信息的一般方法显得尤为重要。因此,本章的学习重点应该建立在解决实际问题的基础上,让学生明确信息需求与来源,并验证信息来源的可靠性,帮助学生建立一套信息获取的一般方法,这样有助于他们培养良好的搜索习惯,快速准确地查找到有用的信息。
教学时,教师如果能创设真实情境,让学生从现实中迫切需要解决的问题出发,不但能激发学生的学习兴趣,还能加深其对知识点的理解。例如,可以创设如“假如你在某旅行社工作,接到某单位准备国庆组团去北京旅游的电话,需要你提供旅行路线及报价以供参考”,这时学生会把自己的角色转换为旅行社员工,并着手制定方案。而教师应提醒学生,在旅行社工作可能每天都会接到几十个类似的电话,应总结出一套方法才能提高效率。通过这样的方式帮助学生逐渐建立“确定信息需求—确定信息来源—选择方法获取信息—评价信息”的一套获取信息的一般方法。
此外,上例也可以从另一角度来培养学生把大问题划分为若干小问题的解决问题的一般能力。当接到“组团旅游的业务”后,可以让学生把这个大问题分解为查询“景点”“住宿”“用餐”“交通”等若干小问题进行设计与解决。教师在教学过程中可采用小组合作探究的方式展开教学,让学生自主选择感兴趣的小问题分头上网查阅资料,最后每小组汇总出各自的旅行路线及报价,看哪个小组的设计最为合理。这样学生在模拟的真实问题情境中,培养了解决问题的一般能力。
● 从程序设计与测试中,体验算法价值
在“算法与程序设计”模块学习过程中,教师不能把算法单纯地变成程序语言的学习和程序设计的学习,而要让学生体会算法的思想,理解算法的重要性与有效性,加强逻辑思维的条理性。教师在采用“农夫过河”“猴子吃桃”“鸡兔同笼”等经典故事激趣引入时,应通过简明的例子从不同算法、不同测试数据的对比中直观感受算法的执行效率,让学生亲历解决一类问题应采用合理算法的必要性。
例如,“几个简单连续自然数的求和”采用直接相加就可以很快解决,但要解决一类连续自然数求和的问题,则可以采用“S:=S+I”的程序算法。
又如,在数据库学习中,学生对索引字段的重要性认识模糊。教师可以新建一个有几万条记录的表,并对同一字段进行索引前、后查询时间的对比,让学生感受索引字段的作用,真正懂得算法就是“速度”,就是“效率”,这有助于学生日后学习“哈希(Hash)”等算法。
● 同数学模型类比中,提升算法思维
数学中的函数和方程也是人们为解决一类问题所建立的模型与方法。在信息技术课堂中如能合理发掘相应的题材与数学模型类比,或者通过教学设计的小小改变,使学生在掌握信息技术的同时,加深对数学模型的理解与建构,将给学生带来思维的碰撞和智慧的启迪。
例如,在“信息的编程加工”中提到了算法的概念,很多教师直接抛出算法的概念,学生在没有任何知识建构的情况下,即便是简单的一个概念也可能难以理解。因此,教师可以从数学中解一元二次方程的例子引入,让学生思考为什么要解方程,解方程有什么好处等;在讲授“数据库实体之间的关系”时,一对一的关系就是数学中的映射,可用函数来表示帮助学生建构知识。
总之,算法思维是计算思维的核心,学生算法思维的形成需要教师在教学过程中潜移默化的影响。因此,如何充分挖掘合适的教学内容,设计合理的教学方法,从重视计算机技术应用转移到重视算法思维的培养,是值得每位信息技术教师研究的课题。