公务员期刊网 论文中心 正文

高中算法与程序设计教学意义及有效性

高中算法与程序设计教学意义及有效性

摘要:算法和程序设计教学会加深学生对计算机科学的认识,使他们从游戏、聊天、打字、表格处理等对计算机工具作用的认识上升到计算机科学的高度上来,对学生的编程教育起到启蒙作用。笔者通过具体教学实例探讨在课程中扩展学生知识面、培养学生计算思维能力,依据高中生个人特点与算法和程序设计的教学情况,让学生在学习信息课程的过程中进一步提升核心素养,进一步提升计算思维能力。

关键词:计算思维;逻辑思维;推理

算法与程序设计模块教学旨在培养学生的计算思维、逻辑思维能力,培养学生把一个大问题分解成多个小问题,再用算法和计算机语言来解决问题的能力[1]。该模块的教学与计算机技术的发展和社会对人才的需求密切联系,能激发许多优秀学生的学习兴趣,启发他们的智慧,促进综合素质的提高。

一、算法和程序设计教学的意义

如今,人类社会对信息技术高度依赖,计算机科学越发重要,培养学生的计算思维能力成为必然。如何有效培养这方面的能力,成为国内外计算机教育界与科学界关注的焦点。中学算法和程序设计的教学对学生的全面发展具有重要意义。

(一)算法和程序设计教学拓展了学生知识面,引领学生走进信息科学的殿堂编程教育在世界各国已经成为孩子继阅读、写作、算术这三项基本能力外需要掌握的第四项必备技能。而计算思维属于三大科学思维的范畴,是人应该具备的重要能力之一[2],与我们的生活息息相关,更关乎对学生创新能力的培养。算法与程序设计的教学会帮助学生推开一扇门,让他们在一个0和1的世界中去创造和发现,让感兴趣的学生及早步入信息科学的殿堂。算法与程序设计课程可以拓展学生的知识面,激发学生的求知欲。例如,在学生学习语言的过程中,教师要讲信息的二进制表示,在这个0和1、有和无的世界中,计算机是怎么用简单的0和1表示五彩缤纷的信息的,还要讲字符信息的编码ASCII码。在讲进位制或按位计数法的过程中,教师会讲二进制、十进制、八进制、十六进制,让学生知道不同位的意义。教师还可以加上不使用按位计数法的罗马数字,用钟表表盘上的罗马数字来拓宽学生的知识面。I表示1,IV表示4,V表示5,X表示10,L表示50。古罗马人已经学会把IIIII看成一个单元V,即5来表示了。人类很早就掌握了把大问题分解成小问题来解决的方法。这是计算机算法设计的一个重要内容,也是生活中问题求解的步骤和方法。教师可以带领学生重温人类计数的历史和文明的演化,在网上搜索相关图片并做成精美课件。学生会对此产生浓厚的兴趣,恍然大悟:原来人类计数的历史这么悠久和丰富多彩。现在的计算机使用的二进制,其速度和应用的广度都是人类计算领域的进步。

(二)培养学生的探索精神及解决问题、自主学习的能力程序设计的步骤是分析问题、设计算法、编写程序、调试运行[3]。算法设计是程序设计的核心。学生要分析教师给出的问题,开动脑筋设计出解决问题的算法,最后编写计算机程序来解决。这既培养了学生探索精神,又使学生的计算思维得到了启发和锻炼。例如,在猴子吃桃的例子中,猴子每天吃的数量是树上桃子的一半再多1个,第十天,树上还剩下1个桃子。那么,第一天有多少个桃子?学生要分析第九天、第八天桃子的数量,从而找出规律,找到递推公式,设计出算法。面对兔子繁衍、汉诺塔、阶乘等问题,学生也要学会把复杂的问题变成简单的问题,把大问题变成小问题,找出规律和方法。这也是人们解决日常生活中的问题的方法和步骤。算法和程序设计教学使数学和程序设计融合在一起。算法设计离不开数学,提高了学生学习数学的兴趣。例如,在求最大公约数时,可用迭代法;在求素数时,可用枚举法;在解决猴子摘桃问题时,可用倒推法;在解决排列组合问题时,可用归纳法;在数组排序问题中,可用冒泡、选择、插入排序方法;在查找中,可用顺序查找和二分法查找。学生通过学习算法和程序设计,能把数学和程序设计紧密联系起来。学生要从问题中提炼出数学模型,设计算法、编写程序,用计算机语言解读,培养计算解题的能力,也就是计算思维的能力。在学习高级语言的过程中,感兴趣的学生会迫不及待地去学习一些超前知识点,如顺序结构、选择结构、循环结构、数组排序等,很多都可以自学完成。例如,在递归函数的教学中,在求解阶乘、裴波那切数列、汉诺塔等递归调用问题时,有的学生会自己在网上查找资料,深入地探究学习,探索设计算法。这样的学习和计算机编程实践能培养学生自学能力和探索精神。自学能力是学生将来学习、工作和生活必备的法宝。

(三)培养学生严谨、细心的做事习惯在算法和程序设计教学中,学生要设计算法和编写代码。算法的设计要严谨、准确,不能模棱两可。在程序代码输入的过程中,学生难免会出现错误。每一个代码的错误都会使程序无法执行。在查找错误时,学生要不断调试和完善,最终得出正确的结果。这能培养学生耐心、细致、严谨、有条不紊的做事习惯。计算机解决问题的步骤是严谨的,是不可以跳跃和省略的。学生可就此认识到,计算机需要一条、一条地执行语句。编程会培养学生细心的习惯。一种好的习惯会影响到各个学科的学习,对学生的终身教育和发展具有促进作用。

(四)培养学生计算思维能力算法和程序设计课程的教学能培养学生全面发展,尤其是培养学生的计算思维能力。计算思维能力的培养体现在学科教学的全过程中。计算思维需要学生拥有较强的创新能力。而有效培养学生思维能力,则是培养创新能力的最终目的。计算思维是培养创新性人才的主要目标。这就需要教师以计算思维为中心,将其体现在不同课程中。目前,各个学科的发展对信息技术的依赖程度越来越高,要求学生必须具备计算思维。算法和程序设计的教学也能培养学生这方面的能力。

二、教学策略的选择

算法与程序设计课程的理论与实践是一体的,实践性较强,需要学生上机实践操作,验证自己设计的算法和程序,理论和实践相互促进。在上机过程中,教师应适时提供帮助,也可以把学得好的学生培养成小老师,有助于培养团队精神。将“讲授、演示、练习”的传统模式转变为“重视模仿、练习、创新”的模式,相较于发现与探究对策,效果明显更好。

(一)确立发展计算思维的教学目标教学目标是在教学完成后,学生尽可能达到知识技能、过程方法及情感态度价值观等方面的要求,被视为教学任务是否完成的参考依据之一,也被视为某节课的核心。教师在明确三维目标的过程中,需要考虑的问题主要包括以下几点:本节课学生需要学习什么内容?需要掌握什么技能?运用哪种方式实现?学生最终需要获取哪方面的情感体验?对此,教师应将学生的计算思维能力发展编入教学过程和方法中,也列入情感态度价值观的培养中。这就是学生需要在思维层面达到的目标。教师要明确把培养计算思维写入教学设计,具体到例题。

(二)细化任务模块,发展计算思维教学目标的具体化过程就是设定教学任务的过程。合理的教学任务往往具有较强的可行性和趣味性,对学生计算思维能力的培养有促进作用。在算法与程序设计教学中,教师应该明确学生要做的事情是什么,需要解决什么问题,最终要达到什么目标。学生在收到任务后,应该探究任务的完成步骤,在脑海中形成完成任务的思路,制定初步的实施方案。具体步骤如下:第一,分析问题,找出问题关键点;第二,数据分类,对其进行抽象处理;第三,启发推理,用最自然的语言将预期方案表述出来;第四,创建相关模型或流程图;第五,编写程序代码;第六,上机对数据进行调试;第七,整理研究重点。教师设计任务无需十全十美,可以采取较为灵活的方式,将部分思考空间留给学生,引导他们主动尝试和探究,从不同方面学会运用各异的方法解决问题,避免思维固化。算法与程序设计是高中信息技术教育中不容忽视的一个模块。设置本模块是为了培养学生使用计算机解决问题的能力,不管是现在使用的VB程序设计,还是即将使用的Python语言,其目的都是为了培养学生的计算思维,其核心都是算法,是对计算机解决问题的过程进行更好的阐述。总之,该模块的设置是时展的需要、人才培养的需要,对学生计算思维能力及其他方面能力的培养有极大的促进作用,将是信息技术教学中的“点睛之笔”。

参考文献:

[1]刘宝仙.高中信息技术《算法与程序设计》模块课堂教学有效性探究:与数学“算法初步”整合教学行动研究[J].海峡科学,2012(2).

[2]赵倩倩.基于计算思维的高中信息技术课程有效教学策略探究:以“算法与程序设计”模块为例[J].中国信息技术教育,2015(17).

[3]结城浩.程序员的数学[M].管杰,译.人民邮电出版社,2012.

作者:范云春 单位:徐州市侯集高级中学