APP下载

基于算法思维培养策略的教学实践与探究

2020-05-09邵志英

考试周刊 2020年22期

摘 要:随着信息技术的快速发展,中小学教育领域开始重视信息技术课程的改革与创新,新课标更加强调了课堂教学中对学生核心素养培养,而在高中信息技术课程中,教师采取何种教学策略培养学生的算法思维成为当前高中信息技术教学的重点。本文结合算法思维中符号化表征、结构化分解及创造性设计三个基本特征,从教学实践出发,结合笔者多年高中信息技术在新高考形势下的教学实践,分别从“创设情境,通过符号表征算法创造”“搭建问题,驱动分解逐步击破”“探寻本质,挖掘算法内在本质”三个方面结合教学案例进行分析,从而总结在教学中如何促进算法思维的培养。

关键词:算法思维培养策略;符号化表征;结构化分解;创造性设计

对于高中信息技术课程而言,培养学生的算法思维实际上是培养学生学习一种针对复杂问题如何分解步骤、构造具有一定序列的对应操作方法。浙教版《算法与程序设计》是高中信息技术课程的选修模块之一,旨在教导学生通过算法编写程序、解决问题的能力,并在学习过程中培养学生的逻辑思维、数学思维、抽象思维、分解思维等一系列算法思维。在此需求背景下,如何结合《算法与程序设计》教材,在信息技术课程中培养学生的算法思维,如何在此目的需求下设计可行性强的教学内容,探究切实有效的算法思维培养策略,成为当下高中信息技术课程教学的重要任务。

一、 基于高中信息技术课程的算法思维表现

算法思维抽象且难以检测,为探索与提供切实有效的算法思维培养策略,应初步对算法思维能力的表现形态进行归纳,以便教师借助外在行为探究与评价学生的算法思维能力,进而提升培养算法思维的可操作性。对国内外大量文献进行查阅,归纳得出算法思维能力主要表现为三个方面:结构化分解、符号化表征、创造性设计。

(一)结构化分解

算法思维是指以一个问题为切入点,围绕该问题目标将复杂问题分解成多个基本的子问题,通过逐个击破子问题完成最终的复杂问题。如计算一道复杂的数学题,首先需要找到简单的规律进行分解,然后对基本、简单的子问题做出具体分析与解决,最终将分散的问题系统联结,全面考虑问题。

(二)符号化表征

高中信息技术学科涉及很多抽象对象,培养学生的算法思维需要对学生的符号替代思维进行训练。如设计计算机程序时,利用伪代码、流程图等替代具体操作步骤,进而在此基础上完成求解。在实际生活中,拥有算法思维的学生也可以利用符号代表一些事物,利用纸笔完成实际问题的化解与设计思路。从某种程度上讲,符号化表征就是指将抽象、复杂的问题具象化,在问题求解过程中利用符号梳理清晰的思路,进而将抽象思维转为具体实践行为。

(三)创造性设计

算法思维强调解题过程的步骤性与程序性。需要说明的是,程序化并不指固化、死板的序列或解决问题关系,而是指形式上应当遵循一定的流程,该流程不被限制固化,可以是线性进行的,也可以是非线性的,如循环、分支、选择等流程。在高中信息技术学科教学中,程序或算法设计者需要对具体流程做出创新性设计,以便对同一问题的解决办法提出多种创造性思路。

二、 高中信息技术课程算法思维培养策略

算法思维能力由浅入深分为五个层级:识别和理解算法、执行算法、分析算法、设计算法、修改算法。高中浙教版《算法与程序设计》第一至五章知识点设计均直接体现了算法思维,如“算法與算法表示”“算法实例”“面向对象程序设计基本知识”“VB程序设计初步”“算法实例程序实现”。基于上述分析结果,将具体阐述应用与实践教学的高中信息技术课程算法思维培养策略。

(一)创设情境,符号表征算法创造

高中信息技术学科与现实生活联系紧密,教师不应桎梏于符号与程序算法内容的教学与讲解,为激发学生思考兴趣,提升信息技术学习的实用感,教师可通过创设真实故事或设置生活情境呈现课堂学习任务,随后通过算法启发教学逐步引导学生探究问题解决方法,最终带领学生完成算法设计,解决问题,提高学生的算法理解能力。

初学《赋值语句》时,赋值的方向不容易接受,会和学生已有的数学知识有冲突,仅凭书本文字概述学生难以真正理解消化。教师在授课时引入了一个小操作,A瓶装了可乐,B瓶装了雪碧,在不交换瓶的前提下,把A瓶和B瓶里的饮料互换。这个操作对于高中生来讲是易如反掌,此时需要借助第3个容器C瓶来解决问题。用自然语言来描述这个过程如下:

1. 先把A瓶中的可乐倒入C瓶C←A;

2. 再把B瓶中的雪碧倒入A瓶A←B;

3. 最后把C瓶中的可乐倒入B瓶B←C。

经过学生的操作、自然语言的描述和描绘示意图,推出VB中赋值语句中的一种格式:变量名=表达式,赋值的方向是从右向左,然后再结合倒饮料这个实验,引导学生写出VB语句:C=A:A=B:B=C,学生在问题情境中切实感受到赋值与数学中的等号的区别,随后,教师适时强调用符号←表示赋值方向。

(二)搭建问题,驱动分解逐步击破

问题自身的逻辑结构自然严谨,高中信息技术教师在教学过程中可通过问题搭建的方式驱动学生问题分解兴趣,使学生将复杂问题分解成子问题,最终带动学生识别与分析各个分问题之间的依赖性链状关系,培养学生的结构分解能力。

如教师讲解《解析算法》为例,教师给出一个问题“设计一个算法将输在文本框Text1中的n位二进制数转换成十进制数在文本框Text2中输出。”对于该问题,教师给出问题思考方案:解析的方法找出表示问题的条件与所求结果之间关系的数学表达式。教师提示用已学的按权相加方法来分析,以(1111111)2=()10为实例。

学生以小组为单位进行讨论,依次分解问题,逐个分析。

问题分析1:

在文本框Text1中的是字符,如何将文本框中的1111111取出,然后转换成数值进行计算。

针对上述问题分析,学生首先找到用Mid函数解决取字符问题,然后再用Val函数解决转换成数值问题。

问题分析2:

转换出来的二进制数上的每一位数代表十进制的值。

学生用已学的基础知识列出二进制数每一位和十进制数之间的对应表。

问题分析3:

二进制数中的每一个数和十进制数之间的关系

学生从列出的表中可以分析出:二进制数位数=每个数的位置+a;然后进一步得出每一项的通用值的计算方法:取出来的数字*2a。

问题分析4:

怎样实现和的计算

计算一位的值后加上下一位的值,直到最后一位,用For循环或者Do循环解决累加和的ans计算。

问题分析5:

转换出来的结果在文本框Text2中输出。

数值用str函数转换后输出。

s=Text1. Text

n=Len(s)计算字符串长度

For i=1 To n

x=Val(Mid(s,i,1)) 取出的字符转换为数值

ans=ans+x*2^(n - i)累加至ans

Next i

Text2.Text=Str(ans)

学生在分析该问题时,首先通过问题情境构建问题结构框架,在初步分析问题结构的基础上分解大问题为多个小问题,渐进启发,逐步搭建起知识结构。学生在小组合作过程中完成结构化分解算法设计,同时也培养了学生脚踏实地的学习态度。

(三)探寻本质,挖掘算法内在机制

传统高中信息技术学科教学中,学生对于知识的学习与问题求解大多浮于应用表面,并未对其本质进行深入的探索与挖掘,因此学生对于算法的掌握能力仅停留在算法设计层级,学生只知道算法执行的结果,却不知晓算法执行过程,很难达到修改算法的层级。

基于上述问题,为培养学生更高层级的算法思维能力,教师应引导学生对内在蕴藏的算法机制、原理进行挖掘。如学生学习排序算法时,教师以简单的任务“如何按总成绩进行排序”为驱动,通过具体的计算机操作,引导学生一步步揭示计算机运算蕴藏的算法机制。教师首先对学生提问:“如何对一组数字进行排序”,学生经过思考或讨论,给出不同的答案,教师将学生给出的答案做出汇总后,进一步要求学生自行查找规律。接着,在学生初步思考的基础上,提出“排序算法”的内在机制:“按总成绩排名,要求高分在前。第一,相邻两个数字进行比较,如果第一个数字小于第二个,则交换彼此;第二,对每一对相邻数字比较,如果第一个数字小于第二个,交换彼此;第三,经过多次循环,直至没有可比较的相邻数字对;最终,排在第一位的是最大数字,排在末位的是最小数字。”

For i=1 To n-1 比较的遍次

For j=n To i+1 Step-1 比较元素的下标位置

If a(j)>a(j-1) Then

交换两个相邻元素的条件

t=a(j)

a(j)=a(j-1)

a(j-1)=t

End If

Next j

Next i

在该过程中,教师可以用板书的方式演示计算机的运算方式,虽然从手动运算层面看,该过程易错且繁杂,但计算机可以利用其二进制算法快速完成计算。算法思维实际上是理工知识的衍生与应用,教师需要在教学中注重原理推导过程的讲解,用挖掘算法內在机制的方式培养学生的算法思维。

三、 结语

美国计算机专家克努特曾定义:算法是有穷规则的集合。只有了解了算法思维层级之间的关系,明确算法思维的外在表现形态,教师才能针对性地培养学生算法思维。算法思维能力的表现形态为结构分解,符号表征,教师在高中信息技术课程教学时应围绕上述三个能力需求进行针对性的内容或活动策略设计,使学生不仅掌握算法与程序设计的固化思路,还引导其挖掘算法的内在机制,培养学生解决问题的能力,以探索信息技术科学思想为导向,有效实现培养学生算法思维的教学目标。

参考文献:

[1]谢艳梅.高中信息技术教育中算法思维培养研究[J].新课程,2019(4):133.

[2]沈金露.高中信息技术教育中算法思维培养分析[J].高考,2019(24):100.

[3]王业胜.高中信息技术教育中算法思维培养研究[J].当代教研论丛,2016(6):67.

作者简介:邵志英,浙江省杭州市,浙江省杭州市瓶窑中学。