周燕 孙波
摘要:本文强调了计算思维在中小学生数字素养与技能中的重要性,提出要突破学段限制,将计算思维培养纳入整个基础教育视野,重视培养目标的学段连续性和进阶发展。文章还以密码验证问题为例,遵循“解决简单问题—典型问题—普遍问题”这一线索,合理设计和实施了相关内容的教学。
关键词:密码验证问题;信息科技;核心素养;计算思维;学段衔接
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)10-0015-04
计算思维是信息科技(技术)核心素养的重要体现,是中小学生数字素养与技能的显著表征。学生能最终形成以计算思维来理解和解决问题的素养,需要教师在小学、初中、高中三个学段进行连续和贯通的培养,即突破学段限制,将计算思维培养放在整个基础教育视野中,深入理解计算思维在不同学段培养目标的区别与联系,从而合理设计和实施相关内容的教学。
算法学习是发展计算思维的重要途径,本文尝试以编程解决密码验证问题为例,对标计算思维在不同学段的发展目标,探究核心素养目标导向的信息科技(技术)课程教学。
计算思维的内涵与阶段培养目标
1.课标分析
《义务教育信息科技课程标准(2022年版)》(以下简称“义教新课标”)与《普通高中信息技术课程标准(2017年版2020年修订)》(以下简称“高中新课标”),对计算思维的内涵分别阐述如下:
义教新课标:计算思维是指个体运用计算机科学领域的思想方法,在问题解决过程中涉及的抽象、分解、建模、算法设计等思维活动。具备计算思维的学生,能对问题进行抽象、分解、建模,并通过设计算法形成解决方案;能尝试模拟、仿真、验证解决问题的过程,反思、优化解决问题的方案,并将其迁移运用于解决其他问题。
高中新课标:计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。具备计算思维的学生,在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。
可以看出,在义务教育和高中学段,学生均需经历计算思维的全过程,具体表现如下页图1所示。
分析计算思维解决问题的过程,需要教师把握不同学段的培养目标,掌握不同学段相关教学内容的“难度”设计,这样才能让学生的思维形成阶梯式提升,既不盲目拔高,又不会无效重复。因此,首先要明晰计算思维在小学、初中、高中三个学段的阶段培养目标(如下表)。
2.学段培养目标梳理
分析表1,可以梳理出以下计算思维学段培养目标的发展路径(如图2)。
根据学生认知发展规律,以问题复杂度来对比计算思维在小初高三个学段的培养目标,可用简单问题、典型问题、普遍问题(或真实问题)做阶段划分,学生经历了从整体认知到典例分析,再到底层实现的过程,即在问题复杂度依次升级迭代的过程中,完成计算思维进阶发展。
密码验证问题的学段解决方案示例
密码验证问题是义教和高中课堂教学中常见的案例,教学对象不同,问题的规模和原理呈现程度也不同,因此,应根据计算思维培养目标,设计合理的教学目标。
1.小学:会将复杂问题“分解”或“简化”为简单问题
小学阶段从列举生活中的密码验证问题入手,分析密码验证的过程,利用图形化编程工具解决简单问題,可设计如下教学目标:
①能将密码验证问题分解为输入—判断—输出三个步骤。
②明确各步骤中的数据关系,将生活问题抽象为数理逻辑问题。
③能用自然语言或流程图描述解决方案。
④编程实现算法,并尝试优化问题解决方案。
下页图3给出了初级算法和进阶算法的参考代码。
小学阶段注重生活体验,初步学习从真实问题中抽象特征,将复杂问题“分解”或“简化”为简单问题并编程解决。可视化的积木块封装了绝大部分的技术实现细节,复杂问题以步骤或模块的形式呈现出来,学生能将精力集中于算法关键环节的设计,对问题解决方案形成初步认知。
因为已经有了利用图形化编程工具解决简单密码验证问题的学习经历,学生应能迁移解决红绿灯、迷宫游戏、成语大赛、计算比赛、小型开关系统设计等类似问题。
2.初中:能设计和实现较完善的算法,解决典型问题
初中阶段解决密码验证问题,应分析生活中的真实情境,确定典型需求,在“输入—判断—输出”三个步骤的基础上,将问题进一步分解,实现设定密码强度、限制验证次数、实现多重密码等功能。此外,还要实现从图形化编程到Python代码编程的过渡。可以设计如下教学目标:
①能细化密码验证问题的各个环节,明确典型问题。
②抽象建模,设计算法并编程实现。
③能追踪数据在算法中的变化,根据实际问题优化算法。
④迁移解决同类典型问题。
图4给出了参考流程图及部分代码示例。
初中阶段学生逐步建立理性思维,能对步骤和环节进行细化,并能理解更复杂的数据关系。Python语言的代码编程方式有助于学生进一步理解计算机解决问题的过程,其丰富的模块库又适当降低了编程难度,帮助学生实现较完善的算法,解决典型问题。
因为有过利用Python编程解决密码验证问题的学习经历,学生应能迁移解决身份证号识别、账号密码匹配、石头剪刀布游戏、垃圾分类、智能家居模拟等类似问题。
3.高中:逐步求精,能以形式化方式描述和解决普遍问题
高中阶段解决密码验证问题,应在“输入—判断—输出”三个步骤的基础上,熟练分解问题并细化求精,抽象特征,以形式化的方式描述问题,总结字符密码、图像密码、人脸识别、指纹声音识别等生物密码的解决规律,初步以模块化思想设计算法。可以设计如下教学目标:
①能分析生活中真实的密码验证问题,明确各环节问题特征,抽象建模,以形式化方式设计并描述算法。
②能对算法各环节进一步求精,还原真实问题解决过程。
③以数字化手段获取、分析或组织数据,灵活应用经典算法优化解决方案。
④迁移解决同类较复杂问题。
下页图5给出了人脸识别程序的模块化设计及部分功能流程图。
高中阶段学生知识储备与生活经验进一步丰富,有能力对算法进一步求精,最大程度还原真实问题。能综合义教学段编程解决问题的学习积累,初步形成自顶向下、逐步求精的模块化程序设计思路。针对复杂问题,应能以形式化的方式描述算法,借助Python库函数或功能模块等“部分封装”方式实现算法,并能调整和设置关键数据,完善“半成品”程序。
计算思维培养目标的学段衔接理解
计算思维是学生理解信息社会的必备素养,学生从小学到高中,逐步经历解决简单问题、典型问题、普遍问题的学习过程。从技术角度看,这是抽丝剥茧、认识和掌握工作原理的过程;从思维方式看,是逐渐建立整体和系统的观点,以结构化和形式化思路理解信息社会的过程。
1.教学案例的“难度”应体现学段特点
计算思维培养相关教学案例的选取应体现小学到高中的进阶和高中向小学的兼容。即便解决同一问题(如密码验证问题),高中信息技术教学在问题规模、技术复杂度、算法完善性等方面都应考虑学生在义教学段的已有基础,选好“普遍问题”这一教学起点,体现学段特点,避免将高中信息课上成初中甚至是小学信息科技课;同理,义教信息科技的教学也不能盲目拔高,要考虑学生的知识储备,适当展示过程和细节,以简单问题或典型问题来模拟真实问题。
2.算法实现的“精度”应实现趋向底层
义教“信息科技”将算法作为六条逻辑主线之一,并给出了如下发展脉络:问题的步骤分解—算法描述、执行与效率—解决问题的策略或方法。在高中阶段,则应在算法实现的技术“精度”上实现跃升,即要关注更底层技术的实现,如简单密碼验证问题,小学仅需判断用户的键盘输入与“123Abc”是否相等,初中要关注程序如何读取键盘输入,高中则要关注如何实现两个字符串的逐字比较——随着学段的升高,技术实现的“精度”也更趋精细化,更接近底层。
在中小学阶段,学生计算思维的培养是其数字素养与技能提升的重要决定因素,并能为其更好地理解和建设信息社会打下基础。同时,计算思维的培养也是实现科技自主可控和原始创新的重要保证。信息科技教学充分体现学段衔接,有利于学生计算思维的发展和提升。高中新课标描绘了基础教育阶段学生计算思维的发展目标和质量标准,而义教新课标的颁布实现了课程的连续性,并对目标和标准进行了阶段划分,建立了从义教到高中的计算思维培养框架,为计算思维核心素养培养提供了有力支撑。
参考文献:
[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022.
[2]中华人民共和国教育部.普通高中信息技术课程标准(2017年版2022年修订)[S]北京:人民教育出版社,2020.
[3]熊璋,方其桂,许憬,等.义务教育过程与控制教学实施众人谈[J].中国信息技术教育,2023(09):5-10.
[4]周晓燕.高中信息技术课程中计算思维多维度进阶教学探究[J].中国信息技术教育,2023(10):17-20.