许惊鸿
摘要:本文以构建抽象能力的方法和激活抽象思维的支架为依据,提炼了在“趣”的问题上做文章、在“象”的转换上下功夫、在“算”的技术上挖内涵等一般性策略,以期帮助学生更好地理解抽象,促进学生计算思维能力的生成。
关键词:信息科技;抽象能力;计算思维;教学策略
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)12-0036-04
在信息科技课程中,计算思维被视为学科的核心素养。计算思维强调运用“抽象”手段,把现实中纷繁复杂的问题表达为清晰、准确的问题。小学生的认知发展正处于从具象思维到抽象思维的过渡时期,他们开始能够理解并应用“抽象”。那么,在教学实践中如何平衡具象内容与抽象内容,以及如何搭建支架帮助学生经历抽象的过程,就成为教师面临的挑战。
析现状:透视算法教学的困境
1.“墨守成规”:学生体验单一
当前的课堂存在“墨守成规”的现象,许多教师依赖新教材提供的案例或项目来教学。这种做法虽然保证了教学的准确性,但也带来了教学内容单一化和创新性不足的问题,学生只是学会如何解决特定的问题,缺乏应对未知问题的能力。
2.“略知皮毛”:思维层次浅显
在对复杂问题抽象的过程中,学生往往只能达到“略知皮毛”的程度,主要原因是教学内容和方法未能有效促进学生深层次思考,导致学生缺乏对知识背后深层次原理和应用场景的理解,难以发展其计算思维。
3.“虎头蛇尾”:程序实践薄弱
程序实践是学习算法内容的关键环节,但是部分教师由于担心Python的难度,容易在教学中忽略程序实践,或未能在课堂中有效融入算法验证环节。由于缺乏足够的程序实践,学生无法充分体验在计算机执行下问题自动化求解的过程和魅力,也难以真正理解抽象的目的和意义。
明方向:构建抽象能力的方法
事物包含的信息量通常是庞大且复杂的,在解决具体问题时,并非所有信息都是必要的,其实只需要关注那些相关且有用的信息。下面,笔者以“规划最短路线”为例,具体探讨构建抽象能力的几种方法。
1.实物抽象
实物抽象是指从真实世界中提取事物的特征,用图形或符号等形式化的方式来表示。例如,在地图抽象时,真实世界的地理特征可以被抽象成图形、线条和符号,如一条蜿蜒的蓝线可以代表一条河流,圆圈或方框可以代表城市。这些图形是现实世界特征的抽象表示,目的是让人们快速理解复杂的地理环境。
针对问题解决的不同目标,在对同一事物进行抽象时所需舍弃的要素也会有所不同。在规划最短路线时,首先需要将实景地图中非必要的细节去除,只保留“关键建筑”和“建筑之间的道路”。接着将这些关键要素进一步简化为更简单的图形,如建筑的高矮、颜色等属性被舍弃,仅用节点表示位置,道路的宽窄、曲直也被忽略,简化为线段。最终,得到了一张由点线构成的抽象简化图。简而言之,实物抽象是将复杂问题简化表达的过程,为后续的数据抽象奠定基础。
2.数据抽象
数据处理是算法执行的核心。实景地图抽象出的简化图计算机仍然无法直接计算,所以,可以分析算法执行的关键数据,每段路径的“距离”可以用变量L1、L2、L3……L7表示,此时的变量表示路径的距离。如果要解决的问题是“规划最快路线”,处理的数据就变成“时间”,可以用变量t1、t2、t3……t7表示,这里的变量表示通行每段路所需的时间。
概括地说,数据抽象就是把事物抽象成算法中的数据,并用变量来表示。学生需要不断经历问题解决的过程,逐步学习和掌握数据抽象,同时在算法的设计与验证中深化这一理解。
3.规则抽象
信息科技领域的抽象都是向着自动化求解问题的方向进行的,在数据抽象的基础上,进一步提炼出算法可以控制执行的规则就是规则抽象。数据抽象关注如何用变量表示数据,规则抽象则关注如何处理这些数据的计算方式。规划最短路线这个问题可以分解成两个子问题,即“如何得到每条路线的距离”和“如何判断最短路径”,并分别提炼规则(如下表)。
规则抽象可以被视为算法描述的一个重要组成部分。学生在掌握规则抽象时面临困难,因为缺乏算法设计的经验,学生需要通过完整的问题解决来磨炼和深化理解,同时也需要加强表达规则的语言技巧。明确地理解和定义规则将极大地提升后续模型建立的效率和准确性。
定策略:激活抽象思维的支架
在教学实践中,达成具体内容与抽象概念之间的平衡至关重要。为了帮助学生更好地经历抽象的过程,教师可以构建一系列的教学支架。
1.在“趣”的问题上做文章
(1)项目情境,真实活趣
为了提高学生对算法学习的兴趣和参与度,教师可以设计与学生学习生活相关的项目。通过将算法与学生日常生活中熟悉的情境如超市购物、旅行规划、健康饮食等相结合,激发学生对问题抽象和解决的学习兴趣。
案例1:鸡兔同笼的“活”趣变形。
在浙教版六年级上册教材中,第2~5课都围绕着一个共同的问题——鸡兔同笼展开。这个问题对学生来说并不陌生,他们在数学课上已经学习过假设法。当这个问题再次在信息科技课上出现时,学生普遍表现出较低的探索兴趣。于是笔者对这个问题进行了“变形”:在端午节的赛龙舟活动中,我们班有46名同学参加,分为12个队伍进行PK。景区提供两种龙舟,大龙舟每只可容纳5人,小龙舟每只可容纳3人。现在的任务是帮助景区编写一个计算机程序,以自动计算大龙舟和小龙舟各需要多少只(如图1)。
这样的问题设计不仅紧扣传统节日文化,而且使学习内容更加生动和贴近学生的实际生活,激发了学生解决问题的情境感和参与热情。同时,这个任务还能作为驱动性问题,围绕这一问题可以进行项目式学习。
(2)童心世界,创意乐趣
在课堂教学中,如果能巧妙地融入学生熟悉和喜爱的元素,则能极大地增强他们的学习兴趣和情感共鸣。
案例2:分支结构的“童”趣评价。
要确定分支结构中的“判断条件”,关键在于对问题中的变量和规则进行正确的抽象。在浙教版五年级上册第7课《分支结构》中,学生学习了用分支结构解决问题,为了落实教、学、评的一致性,笔者结合学生感兴趣的元素设计了评价题目。其中一道题是:“文具店在儿童节推出了优惠活动,凡是携带年龄小于15周岁儿童的顾客,均可享受全场商品8折的优惠。在以下流程图中,哪个部分负责判断年龄是否符合要求(如图2)?”
将富有童趣的元素融入算法问题中,能够为学生创造一个更加亲切、有趣的学习环境,让学生在学习和探索的过程中感受到乐趣。
(3)互动体验,探索玩趣
在进行问题抽象之前先进行实际的游戏体验,不仅能帮助学生了解问题的背景,还有助于他们对抽象目标有直观的感知。
案例3:猜数字游戏的“玩”趣交互。
浙教版六年级上册的第6课和第7课是一个猜数字游戏的整体项目,在问题导入环节,笔者先让学生玩一玩。尽管这只是一个简单的人机交互文字游戏,但笔者用random.choice()函数增加了多样化的反馈,以确保学生的游戏体验。在体验之后,学生再对问题进行抽象与建模,最后设计自己的算法(如图3)。
通过这种做中学的方式,学生可以在愉悦的环境中进行“抽象”思维的构建,也为后续的算法设计学习奠定坚实的基础。
2.在“象”的转换上下功夫
具体和抽象是紧密相连、互为促进的两个关键要素。在培养学生抽象能力时,不仅要从具体情境中抽象出数据和规则,更关键的是在抽象过程后,要再次将不同的数据应用到具体的问题中,让学生在“具象—抽象—具象”的转换中实现认知的进阶。
案例4:体验算法控制。
在《体验算法控制》一课中,笔者设计了这样的问题:“某超市想在即将到来的元旦推出促销活动,满200元打9折,满300元打8折。请你当一回算法设计师,在输入商品总价后能够自动判断是否有优惠。”为了帮助学生更好地对数据和规则进行抽象,笔者利用表格支架引导他们的思考过程。
通过对“金额”这一变量及其相关计算规则的抽象,学生对接下来的算法设计有了清晰的目标,开始绘制流程图。在突破分支嵌套的难点后,笔者以一个具体的金额为例,完整讲述整个流程图的分支走向,从抽象又回到了具体。这种方法不仅加深了学生对分支嵌套的掌握,更使他们对抽象出的“数据”在算法中的“计算”有了更加清晰的认知。
通过从具象到抽象再从抽象回归到具象,引导学生对问题进行抽象,最终将这些抽象结果应用到具体问题中。这种循环往复的转换既建立了概念与实践之间的桥梁,也促进了学生理解抽象的真正含义。
3.在“算”的技术上挖内涵
计算是对抽象的自动化实现。教师应该让学生充分体验计算机程序,鼓励学生从多方面熟悉程序,如阅读理解、修改运行等。
案例5:问题的抽象。
在浙教版五年级上册《问题的抽象》一课中,学生对“规划最短路线”这个问题进行了实景地图的抽象、数据的抽象和规则的抽象。然而,这是否意味着他们真正懂得了抽象的必要性,还是他们只是在跟随教师的教学步骤,未能领会将数据抽象为变量的真正价值?为了消除这些疑问,笔者在课堂结束前安排了一个实验活动,让学生通过运行教师提供的程序,输入七个变量的数值,然后观察程序是否能自动规划出最短路线。
学生多次尝试输入不同的变量值,发现都能快速找到最短路线。这样的实验不但可以帮助学生更好地认识到在用算法解决问题时将数据抽象为变量的重要性,而且加深了他们对问题解决过程自动化的理解。学生只有体验到“算”的技术内涵,才能真正领悟到抽象概念背后的深层目的。
用算法解决问题包含分解问题、抽象与建模、算法设计以及验证优化等环节,其中,抽象扮演的核心角色贯穿始终。在这个过程中,学生的抽象能力不断螺旋上升,最终促进计算思维的发展。
参考文献:
[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022.
[2]王继华.抽象:计算思维能力培养的关键[J].中小学信息技术教育,2016(03):45-47.