信息技术教学中学生算法能力提升策略浅谈 袁仕伦
信息技术教学中学生算法能力提升策略浅谈
◎ 四川省广元市教育科学研究所 袁仕伦
摘要:编程是算法的形式表达,算法是编程的基础,中小学生编程能力的提升,着力点在于算法思维培养与能力提升。实践证明,算法的学习不仅有利于发展学生有条理的思考与表达能力,而且还能提高学生的逻辑思维能力。
关键词:信息技术;算法能力;提升策略
《教育信息化2.0行动计划》提出“完善课程方案和课程标准,充实适应信息时代、智能时代发展需要的人工智能和编程课程内容。”美国前总统奥巴马曾呼吁:如果我们想让美国保持领先地位,就需要年轻一代的美国人掌握这种(编程)工具和技术,它将改变我们所有的做事方式。可以看出,编程作为中小学生信息素养内容的重要性是不言而喻的,大家的看法和认识是高度一致的。我们知道,编程是算法的形式表达,算法是编程的基础,中小学生编程能力的提升,着力点在于算法思维培养与能力提升。实践证明,算法的学习不仅有利于发展学生有条理的思考与表达能力,而且还能提高学生的逻辑思维能力。因此,我们在普通高中信息技术课程教学中要对有个性化学习需求的学生强化算法能力训练。
一、信息技术新课标对算法教学的目标要求
《普通高中信息技术课程标准(2017年版2020年修订)》中关于“算法”内容的目标与内容要求,分别分布在必修、选择性必修和选修三个模块。
(一)必修模块对算法教学的目标要求
必修模块1《数据与计算》中的“算法与程序设计”单元的学习目标为:掌握算法与程序设计的基本知识。内容要求有:运用恰当的描述方法和控制结构表示简单算法,使用程序设计语言实现简单算法。
(二)选择性必修模块对算法教学的目标要求
选择性必修模块1《数据与数据结构》中涉及算法相关应用,算法与数据结构是问题求解中相辅相成、不可分割的两个方面。本模块要求学生了解二叉树的概念及其基本操作方法。通过实现数据的排序和查找,体验迭代和递归的方法,理解算法与数据结构的关系。
(三)选修模块对算法教学的目标要求
选修模块1《算法初步》包括“算法基础”“常见算法及程序实现”“算法应用”三部分内容,其学习目标为:理解利用算法进行问题求解的基本思想、方法和过程,掌握算法设计的一般方法;能描述算法,分析算法的有效性和效率,利用程序设计语言编写程序实现算法;在解决问题的过程中能自觉运用常见的几种算法。内容要求包括:理解解决问题的起点是问题的描述。分析欧几里得、割圆术、秦九韶等经典算法。初步掌握二叉树在搜索算法中的应用。掌握贪心、分治、动态规划、回溯等常见算法。会计算算法的时空复杂度等。
综上,新课程标准必修、选择性必修、选修模块分别从面向全体和个别化学习需求分层、全面地规划了算法学习内容与要求,培养学生的信息素养。
二、新课标下提升学生算法能力的教学策略
在普通高中信息技术教学过程中,应该以新课标为依据,同时结合学生学习需求,分层推进算法能力培养,为学生的持续学习打下良好基础,保证学生能够实现长远发展。
(一)循序渐进安排教学内容
在学习选修模块《算法初步》前,学生必须掌握数据的逻辑结构这一内容,也就是说要先行选修《数据与数据结构》(选择性必修模块1),因为数据逻辑结构常见类型是《算法初步》中几种要求掌握的常见算法实现的基础。具体地说,动态规划法涉及到数据的逻辑结构有线性表或者图,贪心算法、分治法涉及到数据的逻辑结构有线性表,回溯法涉及到数据的逻辑结构有树或图等等。因此,学生先期掌握数据的逻辑结构表达方式是非常重要和必要的。
(二)准确把握算法教学重点
算法是解决问题的办法,编程或程序设计是算法的计算机语言表达,因此问题解决的关键是算法而不是编程。通俗地说,算法就是解决一个问题需要哪些环节或步骤以及这些环节或步骤排列的顺序,也就是时序,即确定环节或步骤执行的先后。因此算法教学的重点和关键不是程序设计本身,而是找到解决问题方法即算法。而算法本身与其他学科是密切关联的,尤其是数学和工程,事实上,解决问题的方案大多是数学的或者工程的,比如我们常常用到的统筹法、优先法、运筹学等等。同时我们还要注重科学运用系统分析的方法,对系统进行综合分析、试验和比较,提出可行性的办法,使系统发挥整体功能,从而达到一个好的总目标。比如,运用算法的思想解决从A地到Z地距离最短的实际问题,就是使用动态规划法这样一个算法思想,而动态规划则是运筹学的一个重要分支。现实生活中问题的解决,将进一步激发学生学习算法的积极性和主动性。

(三)分析要解决问题本身的规律性
在任何时候,我们都要根据事物发生发展规律和自身特点,要充分考虑到问题的方方面面和可能出现的各种情况,确保算法的健壮性。比如,在处理与函数有关的问题时,就应该关注变量的定义域;计算
的值,首先应判断a是否大于等于0;用海伦公式计算三角形的面积,首先要判断给定长度的三条边能否构成一个三角形,如此等等的问题。
(四)正确认识算法的高效性
算法的空间复杂度和时间复杂度在不同的历史时期、完成不同任务的要求是不一样的。比如,在上世纪未和本世纪初,由于计算机运行速度慢、物理存储设备价格贵,因此在算法设计时一般都会考虑到算法的高效性,即运行时间要短,占用的物理空间要少,不然的话,就可能出现运行时间太长或者物理存储空不够使用导致任务无法完成的情况。但在今天,计算机的运算速度呈几何级数增长、物理存储设备价格大幅下降,用户还可以使用云存储等方式,因此对运行时间要求不高或数据存储量不大的情况,可不必考虑算法的高效性问题;当然,对于一些实时问题的处理就不同了,比如北斗系统有实时定位并及时提示反馈的要求,运算的时间就要最短,否则就可能反馈不及时。此外,由于一些设备小型化的要求,物理存储设备体积受限,整个存储容量也受限,那么算法就必须要考虑少占用物理存储空间。因此,在这种情况下,我们就不得不考虑算法的高效性的问题了,不然,这样一种尴尬的局面就会出现:问题任务在理论上是有办法解决的,而实际上达不到解决要求。
综上所述,信息技术教学中应该以课标和学生学习需求为依据,合理安排学习内容,引导学生主动探索解决问题的方法,理解常用算法的算法思想和算法步骤,通过编程实践解决实际问题,才能有效提高学生的算法能力。
参考文献:
[1]《普通高中信息技术课程标准》,2017年版2020年修订,人民教育出版社
[2]《全日制普通高中信息技术课程标准》(审定稿),2003年2月,人民教育出版社
[3]普通高中教科书信息技术《数据与计算》(必修1),上海科技教育出版社
[4]普通高中课程标准实验教科书信息技术《算法与程序设计》(必修1),上海科技教育出版社
[5]普通高中课程标准实验教科书《数学》(必修3),人民教育出版社
[6]普通高中教科书通用技术《技术与设计2》(必修),2019年7月,广东科技出版社
[7]黄荣怀 肖广德 信息技术课程贯彻新课标实施新教学的关键性问题 中小学数字化教学 2019(2)





