APP下载

核心素养视域下义务教育信息科技算法思维培养的策略研究

2023-11-16

教育传播与技术 2023年5期
关键词:思维能力算法思维

徐 斌

上海市金山区教育学院 上海 201508

一、引言

2020 年,教育部发布《普通高中信息技术课程标准(2017 年版2020 年修订版)》(以下简称“高中课标”),强调在信息技术教育过程中,应重点关注和发展的核心素养有“信息意识、计算思维、数字化学习与创新、信息社会责任四大核心要素”[1]。“计算思维”首次被视为学科的核心素养,“算法思维”则是“计算思维”重要的组成部分,它是学习计算机科学的基础,是学习计算机科学最基本的思维方式,是深入理解学科本质的关键要素,也是培养学生思维能力的重要基础。在必修课程板块的“模块1:数据与计算”中,确定“算法与程序实现”为学习内容,要求掌握算法与程序设计的基本知识。在选修课程板块的“模块1:算法初步”中,将“算法基础”“常见算法及程序实现”和“算法应用”列为学习内容,要求理解利用算法进行问题求解的基本思想和方法等。同时,高中课标在核心素养水平划分的章节(即“预备级”)中对义务教育阶段的信息科技学习要求也阐述了相类似的任务,可以说是一脉相承,循序渐进。

2022 年,教育部颁布《义务教育信息科技课程标准(2022 年版)》(以下简称“义务课标”),相类似地提出课程旨在培育的核心素养主要有“信息意识、计算思维、数字化学习与创新、信息社会责任”[2]。“计算思维”再一次被定义为一种重要的核心素养,计算思维是“指个体运用计算机科学领域的思维方法,在问题解决过程中涉及的抽象、分解、建模、算法设计等思维活动”。在课程内容板块中,提出“按照学生的认知特征和信息科技课程的知识体系,围绕数据、算法、网络、信息处理、信息安全、人工智能六条逻辑主线,组织课程内容”,并将算法内容确定为“问题的步骤分解—算法的描述、执行与效率—解决问题的策略或方法”,可见“算法”被列为六大必修内容之一。同时,在义务教育的第三学段设置了“身边的算法”课程内容板块。在义务教育阶段不仅需要为高中学习夯实基础,还需要在这个过程中加强对学生逻辑思维的训练。这一过程对于算法思维的培养非常重要,可以认为是继往开来,承上启下。

在此背景下,义务课标和高中课标均已公布,义务教育阶段新教材还未面世,在理念先行、课堂跟进的总要求下,基于义务教育信息科技课程的情况,研究和培养学生的算法思维作为信息科技课程教学的重要目标,显得尤为迫切和必要,具有一定的前瞻性和现实意义。

二、算法思维的内涵特征

(一)算法内涵

《辞海》(第七版)中“算法”的释文为:“解决某问题的一个有限、确定、可行的运算序列。”一个算法对于该问题的每一组输入信息,都有一组确定的输出结果。

其实,算法有多种解释。在日常生活中,认为算法是一组有效且被普遍应用的解决问题的步骤。在数学领域里,2020 年修订版的高中数学新课标及其配套教材中,对算法的描述更加清晰。它不是一种简单的运算,而是一种更加复杂的解决方案,它能够帮助我们更快地解决复杂的问题。通过算法,我们可以让计算机实现复杂的任务,解决复杂问题。在计算机领域,算法是一组按照一定的步骤组成的有序集合,它们能够在规定的时间内完成任务[3]。根据研究方向,笔者确定算法的概念为:算法是为解决某一生活中的问题而形成的有序、确定、可行的一系列策略或方法。

(二)算法思维内涵

算法思维作为读、写和算之后每个人的必备技能,指运用科学原理和方法解决问题的策略或方法等思维活动。算法思维是计算思维的重要组成部分。根据算法的概念特征,笔者将算法思维内涵界定为针对现实生活中的问题,运用科学原理和方法将复杂问题分解为若干个简单问题,设计并优化问题解决方案,为问题解决提供高效途径和方法的一系列思维活动的总和。此概念围绕问题解决的一切思维活动,蕴含了如何创设问题情境,如何应用算法原理,如何表征算法思维,如何巧用算法途径,如何评价算法效果,以此提高算法思维能力。

(三)算法思维特征

算法的特征表现在以下几点:首先是确定性,指算法中的每个步骤都是确定的,不能是模糊或有歧义的答案;其次是有穷性,它要求算法在执行有限的步骤之后必须能够结束;再次是序列性,一个算法的组成是由多个步骤按照问题解决的需要进行排列组合的,有明确指示出下一步的操作;最后是可行性,指该算法能够高效地在规定时间内完成任务,可以方便地用来解决某一类问题。

算法思维的特征具体表现在以下几点:一是问题性,是指算法思维是以具体问题求解为载体,以一系列复杂的问题为基础,通过分析和推理,构建出有效的解决方案,最终达到解决问题的目的;二是确定性,是指算法思维的每一个步骤都应该是确定的、没有歧义的,而且是精确的;三是可操作性,是指算法思维有明确的问题解决操作步骤,且能解决问题;四是程序性,是指算法思维是依据一定的规则,按次序进行的思维形式。

三、算法思维培养的意义

(一)有利于提升逻辑思维能力

《辞海》(第七版)中关于逻辑思维的描述有:“亦称‘抽象思维’‘概念思维’。人们在认识过程中借助概念、判断、推理来反映对象的过程。和形象思维不同,以抽象出对象的特征、本质而形成概念为特征。”逻辑思维作为思维的一种,是思维的重要组成部分,涵盖了多种思维技巧,如概念推理、综合、比较、归纳和总结等。而算法思维在问题解决的过程中所经历的方法和策略,包括观察、分析、判断、运算、推理等一系列思维活动,有助于学生逻辑思维能力提升。学生经历以算法思维尝试解决问题,感悟算法精神的内涵实质后,不论是面对学习还是日常生活中的问题或任务时,都能有条不紊地概括出各个因素之间的关联,进而凝练出有序、明确地解决问题的有效流程,能有效地提升逻辑思维能力。

(二)有利于提高问题解决能力

算法思维本质上讲是问题的求解思维。许多研究者依据问题的结构特点,将问题分为良构问题和劣构问题。良构问题表现为通过清晰的信息、有效的策略以及合理的参数设置,使得受试者能够以正确的思路来寻求有效的结果。劣构问题则存在着信息缺失、参数设置模糊、影响因素复杂等缺陷,使得受试者很难从中发掘有效的结论。良构问题适合一般学生,而劣构问题更适合具有高阶思维的学生,但在问题求解的一般方式上差别并不明显。运用算法思维的过程实际上就是将问题解决方案用固化流程的方式呈现的过程,最终实现运用计算机解决问题。问题解决的几个基本过程有发现问题、分类和表征问题、明确问题解决的策略、实施问题解决策略和问题解决效果的评定等。也就是说,通过运用算法思维,我们可以有效地识别和分析问题,并将其抽象化、建模和设计成系统化的解决方案。具备独特的问题解决的思维方式,学生会养成利用计算机科学领域的思想方法处理问题的习惯。因此,这样通过培养学生的算法思维能力,将有力地提升学生的问题解决能力。

(三)有利于夯实数学思维能力

计算机科学与数学存在着紧密的关系。计算机科学的核心是算法,其本质是数学。计算机的功能在很大程度上依赖于程序,而算法是程序的灵魂。因此,计算机科学从某种角度而言是从数学科学与数学思想发展而来。同时,数学思想的来源之一是算法。在古代,算法指一种运算或计算。算法在数学科学中始终蕴含着数学运算法则的意思,也就意味着古老的算法和现代的数学计算是一个意思。当下随着信息科技的发展,算法不仅仅被视作信息技术中一个单独的研究领域,也被广泛地运用于各种复杂的场景。在相当一部分问题的解决中,数学计算被认为是实现算法思维的重要组成部分,它可以帮助我们很好地理解和处理各种复杂的情况。然而,算法并非仅仅局限于数学,它也包含了其他领域。算法是数学的一个组成部分,两者存在千丝万缕的关系。总之,算法思维能力的培养反过来将有助于数学思维能力的提升。

四、算法思维培养的策略

(一)问题任务设计激发算法思维兴趣

根据算法思维的内涵特征,算法思维具有问题性。问题性是算法思维具有的重要特征之一。问题性是指算法思维主要以具体问题为载体,通过对问题的一系列分析处理,制定出问题解决方案,最终实现解决问题的目的。从算法思维的概念入手可以理解问题性:算法思维始于问题的提出,止于问题的解决,紧紧围绕具体问题。算法思维是针对现实生活中的具体问题,通过分析和优化复杂问题,将复杂问题简单化,设计并优化问题解决方案,为问题解决提供高效途径和方法的一系列思维活动的总和,也就是说,是从问题本身出发进行思考。从某种程度上说,算法思维就是问题的求解思维,离开了具体问题,算法思维就不会是真正意义上的算法思维。因此,为了提高学生的算法思维能力,教师可以设计真实的问题情境或任务,学生在真实的任务情境中激发思维潜能,设计算法来解决问题。在问题的解决过程中,学生的创造性思维和实践能力等都得到提升。以下举华东师大版《小学信息科技 第二册(试用本)》第二学期第二单元“谁是冠军”的项目内容为例[4]。

为了庆祝“六一国际儿童节”,小学生运动会开幕了。学校举办了跳绳比赛,3 位参赛者将在最后的总决赛中展示他们的精彩表现,每位参赛者都要跳3 次,并记录下每次的成绩。小明3 次各跳了120 个、95 个、150个,小华跳了130 个、125 个、120 个,小丽跳了135 个、140 个、95 个,大家的表现都很出色。学生通过绘制表格的方式把上述比赛成绩罗列出来(表1),比较清晰地呈现出求解过程,这让学生意识到通过数据分析较深刻地理解问题的求解方法,就可以通过设计算法来解答问题。那么谁是冠军呢?成绩是如何计算的?还有其他算法吗?一种观点认为,小丽在三局两胜制下取得了两次第一,这使得她成为比较有说服力的冠军。但小华在总次数方面是一流的,因为她跳的个数最多。而小明则也是一个出色的选手,因为他跳出了150 个的最佳成绩。三个不同的冠军是如何产生的?竞赛规则到底是怎样的? 竞赛规则的差异将导致不同的算法,从而影响最终的胜负,最后的冠军也将因此而异。最终,比赛规则采用之前的计分标准,也就是按照3 次跳绳个数的累加决定排名。因此,采用求和的算法来统计比赛名次,最终的冠军属于小华[5]。这次的项目活动让学生们深刻地认识到,在解决问题的过程中,既要关注问题的答案,又要养成全面、客观地分析问题的习惯,采取准确、合理和有效的算法,从而培养良好的算法思维能力。

表1 跳绳比赛成绩表

以上案例提示我们,在本项目活动中可通过设计问题任务情境导入教学。同时,通过将学生带入问题情境中引出所要解决的主要问题:“谁是冠军?”下面又引出这个冠军是怎么计算得来的。“成绩是如何计算的?还有其他算法吗?”问题一个接一个,逐步引向深入,让学生理解用不同的算法得出的答案是不同的。这使得学生能更全面地理解算法概念,大大拓宽了学生的思维,使他们初步感知了算法的奥妙,激发了学习激情,最终能实现培养学生算法思维能力的目的。

(二)算法原理探寻提升算法思维层级

根据算法思维的内涵,要运用科学的原理和方法求解问题。在知识能力和问题求解的学习过程中,我们往往只注重应用公式或各种方法、工具得出结果,没有进一步探索这些公式或工具、方法背后所蕴含的科学原理,没有涉及更深层次的思维过程。也就是说,我们既要掌握该算法的应用场景,又应理解该算法的科学原理和计算规则。探寻问题解答背后算法原理的过程是培养学生算法思维能力的非常重要的经历。要培养学生的算法思维能力,特别是高阶算法思维能力,教师应更多地在问题求解过程中引导学生探寻其背后隐藏的算法原理,做到知其然知其所以然。

例如,在进行华东师大版《小学信息科技第一册(试用本)》有关“画图”软件的教学时,刘恋老师创设以拉近家校距离为项目化主题的探究活动,设计“绘家和校、画上学路、谋家校路和描家校景”等活动环节,让学生增加与新校区的熟悉感。其中,“谋家校路”是让学生规划上学最短路线的真实情境,让学生探究从家里到学校有几种路径可走,分别计算这些路径,最终比较出最短路径。首先,教师让学生按自己的想法设计计算方案。学生根据已有的认知,会罗列所有可能的路径,再计算和比较最小值。这时,教师指出这种最短路径的计算方法叫枚举法。教师接下来介绍一种最短路径的算法——迪杰斯特拉(Dijkstra)算法。迪杰斯特拉算法是一种有效的最短路径算法,它可以帮助我们快速、准确地计算出一个节点到另一个节点的最短距离。它的工作原理是:从一个起点开始,不断搜索当前距离最近的节点,并利用该节点更新距离数组,直至访问完所有节点,最终得到的距离数组就是起点到其他节点的最短路径。引入迪杰斯特拉算法的学习,让学生了解迪杰斯特拉算法的特征,培养学生的算法思维。学生学会参照迪杰斯特拉算法思想规划家校最短路线,就是运用算法思维解决生活中的真实问题。教师引导学生了解身边的经典算法,帮助学生认识到算法对解决生活和学习中的问题的重要性,同时也有利于培养学生初步运用算法思维解决生活中问题的能力。本例中最短的家校路径为A-B-D-E-F,如图1 所示。

图1 最短家校路径图

以上案例将信息技术基本知识和操作能力与问题解决的科学原理的学习很好地进行了整合,使学生在学习信息技术基本操作技能的同时,激发其对信息技术处理问题的算法原理进行深度思考,在问题解决的过程中培养其算法思维能力。《义务教育课程方案(2022 年版)》指出,各学科要组织10%的课时开展跨学科主题综合实践活动,倡导将本学科知识与其他学科融合开展综合实践活动,让学生掌握知识原理,并运用知识解决生活问题。其中,在分析处理问题的过程中都在一定程度上包含了算法思维。通过项目探究活动,学生尝试理解技术蕴含的原理,教师因势利导,引导学生理解背后的原理及推导过程、计算机处理问题的工作原则,以及程序的算法思想等科学原理,从而进一步提升学生的算法思维能力。

(三)多元表征算法实现算法思维创新

依据算法思维培养的意义,算法思维有助于逻辑思维的提升;反过来,逻辑思维也影响着算法思维。算法思维作为一种思维形式,是比较抽象和隐性的,需要通过某种媒介形象化地表征出来,也就是抽象思维显性化。算法思维能力的显性化需要多种媒介表现出来,如语言文字、图形符号和程序语言等。人类会通过各种符号表达和传递信息,记录和表征现实世界。符号是物质世界与意识世界的桥梁,是物质世界在人脑中的客观反映。对于义务教育阶段低年段学生而言,其思维方式逐步从具体的形象思维向抽象思维过渡,但仍以形象思维为主,算法思维处于初始层次,通常以通过基本的语言描述或通过流程图表达思维逻辑为主。而中高年龄段的学生,其形象思维和逻辑思维处于交织共生阶段,算法思维处于设计层次,思维过程主要用图形描述和代码程序等表达。高中生以抽象思维为主,形象思维为辅,算法思维处于较高设计层次,习惯于以流程图和代码程序来表述。

自然语言描述是人们日常生活中使用的语言,就是把解决问题的方法和步骤用规范的语言方式描述出来。它既可作为程序设计人员编写代码的依据,又可以供算法研究、学习和交流之用,其特点是通俗易懂,可能存在歧义。

流程图描述是一种思维可视化的描述工具,人们经常利用它来描述算法。它是采用规定样式的图形、指向线和文字组合起来表示问题解决的步骤及顺序的方法。流程图的特点在于以清晰的图像、明确的路径与简洁的语言将复杂的步骤、任务、过程等清晰地展现出来。

伪代码或程序语言描述主要被视为一种跨越自然语言和计算机程序设计语言的有效算法描述语言,伪代码较容易被转换成程序设计语言。而程序设计语言是一组计算机能识别和运行的指令,是计算机执行算法的具体步骤的实现,计算机通过运行这些指令来完成算法所描述的问题求解,例如我们熟悉的Python语言、C 语言或Visual Basic 语言(即可视化的BASIC 语言,简称VB)等。综上所述,这些多元的表征更有利于算法思维的理解和创新。

例如,根据义务课标“身边的算法”提出熟悉一些常用的算法描述风格与方式的要求,设计了表达求解1+2+3+4+5+6+7+8+9+10 的算法,我们可以用多元符号来表征。图2 为自然语言即数学的计算描述方式。

图2 自然语言即数学描述求1-10 的和

图3 为算法流程图的表达。

图3 求和流程图

图4 求和程序

以上案例告诉我们,针对不同的问题任务以及不同年龄段学生的认知特点,应采取多样化的思维表征方式。教师在帮助学生分析问题任务特征的前提下,通过多种表征形式充分表达在问题求解过程中一切必要的思维过程。这种多元的思维表征形式能大大激发学生对问题的深入探索,学生的思维过程表现出由浅入深,由陌生到熟悉,由形象到抽象,由隐性到显性。这种多元表征形式不仅有助于学生解决问题,还有助于学生创造力的培养,更有助于学生算法思维能力的提升。

(四)巧用程序结构促进算法思维发展

根据算法思维的内涵,在解决问题中运用科学方法将复杂问题分解为若干个简单问题。在处理比较复杂的问题时需要掌握程序设计的基本结构,这样不仅有利于问题的解决,也有利于高效地处理问题。义务教育阶段涉及的基本的程序设计结构有顺序、分支和循环这三种。任何复杂的程序都可以由这三部分组成或由其中的一到两部分组成,也就是说这三种结构可单独使用,也可组合使用,形成较为复杂的程序结构。顺序结构是程序设计结构中最简单的,同时也是程序设计结构中最常用的,使用时根据解决问题的顺序编写对应的语句就能处理。它采取自上而下的执行顺序,逐步按序执行。分支结构也称选择结构,是依据一定的条件来采取不同的运行路径。循环结构是指由于在程序中需要重复执行相同的步骤而开发的一种程序结构。这三种基本程序设计结构都蕴含着算法思维,学生深入学习和有效应用这三种基本结构必将有利于自身算法思维能力的提升。

例如,华东师大版《初中信息科技 第一册(试用本)》第四单元“数据表格处理”第二节“数据的运算与分析”中有关于“小明家1月份水、电、煤气费”的教学活动[6]。设若上海市的居民用户水价同步实行阶梯制度。通常水费的计算方法是:每立方米综合水价3.45元,但如果全年用水量超过220 立方米,综合水价则为每立方米4.83 元。这就存在两种情况,采取不同的计算方法,要用到分支结构了。而如果全年用水量进一步增加,超过300立方米,综合水价就是每立方米5.83 元。这样就变成有三种不同的计算方法,就要用到分支结构的嵌套了。综合分析本例,学生发现其实解答本题就存在多种情况要选择,简单分支结构不能解决问题,要用双分支乃至多分支结构来处理多种情况。具体水费计算方法描述图如图5 所示。

图5 水费计算方法描述图

以上案例告诉我们,通过灵活应用程序结构将有力地促进学生算法思维的发展。综合运用三种结构进行程序设计,某种程度上就是在运用算法思维解决实际问题。在设计程序解决问题的过程中,学生在学习程序设计的三种基本结构的同时,也学会了对复杂问题的解决办法——对复杂问题的分析与分解、综合与归纳、抽象与建模、设计算法等,尤其是他们亲身体验到算法思想的价值,从而养成比较扎实的算法思维,有力地提升了自身发现问题、分析问题和解决问题的能力。

(五)多元评价策略保障算法思维效果

根据算法思维的内涵,要设计并优化问题解决方案,为问题解决提供高效途径和方法。评价具有很好的保障作用,具有导向功能、鉴定作用、诊断功能、监督功能、调节功能等。多元评价强调评价内容和评价主体的多元化,强调评价手段和评价方式的多样化,也强调过程性评价与总结性评价相结合。在算法思维的教学活动中应实施多元的评价策略,根据系统论和复杂性思维理论研究,算法思维与思维一样是一个复杂的系统,应该将算法思维当作不同层次结构的事物来思考。义务课标在“身边的算法”中,指出对算法思维培养要有不同层次的要求。通过身边的算法案例,让学生了解利用算法求解简单问题,能初步运用算法,并形成设计与分析算法的能力。因此,有必要确立算法思维的能力层级。根据算法思维内涵特征,将算法思维层级确定为识别算法、执行算法、分析算法、设计算法和优化算法等五个层级[7]。这无论是作为算法思维培养目标层次还是评价标准都具有提纲挈领的意义,能从更多方面立体考评学生算法思维的学习效果。避免实行单一的评价方式,以防止教学效果单一,学生的思维方式也单一。因此,在教学过程中采用多元评价策略对促进学生算法的学习及思维的形成至关重要。

例如,教师根据义务课标“身边的算法”提出在了解掌握利用算法求解简单问题的同时,对算法的正确性与执行效率进行讨论和辨析的要求,创设了社区流浪猫投喂装置的设计与实现的案例。我们可以引入多元评价帮助学生运用算法思维解决问题。基于设计流浪猫投喂方案这一真实性问题,引导学生进行项目探索实践。学生通过社会调查、方案设计、装置制作、展示交流等项目实践,解决实际问题,为社会服务,应用跨学科知识与技能,培养算法思维、创造性思维和批判性思维,提升问题解决能力,有效落实学科核心素养。对学生完成流浪猫投喂装置这一表现性任务中的表现与成果进行有针对性的评价,评估学生的核心素养尤其是算法思维能力的达成情况,引导学生基于评价设计、制作和改进优化作品。过程性评价方面聚焦设计、制作和测试流浪猫投喂装置活动的自我评价,如《流浪猫投喂装置的设计与实现算法思维能力评价表》(表2)、《流浪猫投喂装置设计与展示评价核查表》(略)。总结性评价方面聚焦流浪猫投喂装置使用效果的公众评价,如《微信公众号校园项目实践成果展示与公众投票》(略)等。

表2 流浪猫投喂装置的设计与实现算法思维能力评价表

以上案例提示我们,义务教育信息科技课程评价机制不仅仅面向信息技术知识的简单应用,应避免只能评价学生对于知识的基本认知而无法评价蕴含的思维能力,应该强调聚焦算法思维能力的培养。评价内容应聚焦更为复杂的问题解决的方案设计,即突出问题解决过程而不仅仅是结果本身。这是因为在设计问题解决方案中,可以看出学生问题解决的思维过程,在设计算法的过程中反映出学生是否具有算法思维能力,是否具有创造性思维,能运用计算机科学原理解决相关问题。评价形式多元化,理论知识考核要与动手实践相结合,信息技术课程的实践性决定了学习这门课程必须还要通过综合实践。只有通过调试,才能检测出之前的算法设计是否正确,检测出学生运用算法思维是否真正解决了实际问题。

五、结语

综上所述,义务教育阶段培养学生的算法思维,需要对学生的认知结构有个正确的认识,采取科学合理的策略与方法提升学生的算法思维能力。算法思维是伴随着问题解决过程所形成的思维活动,通过问题任务设计能大大激发学生的算法思维兴趣,通过算法原理的探寻能有力地提升学生的算法思维层级,利用多元表征算法能有效实现学生算法思维的创新,巧用程序设计结构有助于促进学生的算法思维发展,实施多元评价策略能有效保障学生算法思维提升的效果。在提升学生算法思维的同时,学生解决问题的能力也得到提高,他们不仅能形成清晰的问题解决思路,也能设计出独到的算法。这两者相辅相成,互为依托,最终有利于学生核心素养的全面发展。

此外,本文仅聚焦于义务教育信息科技的算法思维培养策略,其实对于计算思维和算法思维,国内外的其他非基础教育学段如大学的相关课程教学中都早已提出培养要求,并开展相关的研究。他山之石是否可以借鉴?大中小学乃至学前各学段是否可以一体化培养?算法思维除了在信息科技学科中要培养,在其他学科如数学学科中的培养有何不同?相同点又有哪些?这些都亟待我们进一步去思考和研究。

猜你喜欢

思维能力算法思维
思维跳跳糖
思维跳跳糖
思维跳跳糖
思维跳跳糖
培养思维能力
培养思维能力
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
一种改进的整周模糊度去相关算法