计算思维实践的学习进阶研究

2022-08-18 06:46:22李伟李泽深圳点猫科技有限公司教学教研中心
中国信息技术教育 2022年16期
关键词:进阶水平算法

李伟 李泽 深圳点猫科技有限公司教学教研中心

李冰 深圳大学师范学院

夏立 深圳职业技术学院商务外语学院

● 引言

近年来,美国、英国、新加坡、以色列、日本等国家相继将计算思维纳入计算机科学课程的培养目标。《普通高中信息技术课程标准(2017年版)》也将计算思维作为信息技术课程的学科核心素养之一。在智能时代背景下,计算思维已经成为一种既符合个人发展需要又呼应社会发展需要的核心素养。

● 计算思维与计算思维实践

按照周以真的定义,计算思维是在表述问题及其解决方案时所涉及的思维过程,确保解决方案的表征形式可被信息处理代理有效执行。尽管该定义对计算思维的内涵给出了确切的解释,但对于计算思维的范围和本质,不同学者并未形成一致意见。为了进一步澄清计算思维的内容,许多学者尝试将计算思维拆解成多个核心要素,但是这些清单式定义都存在系统性不足的问题——只识别出一些关键的计算思维要素,没有揭示整体的计算问题解决过程。因此,基于对计算问题解决过程的分析,笔者构建了一个以实践为导向的计算思维框架(如图1)。

图1

● 计算思维实践的学习进阶

由于每个计算思维实践描述的都是一种复杂的能力,因此在实践中落地这些培养目标时,仍然有很大的困难。为了更好地描绘出学习者的计算思维进阶过程,笔者从科学教育领域借鉴了一个概念性工具——学习进阶。学习进阶描述的是随着儿童在广泛的时间跨度内学习和研究一个主题,对该主题的思考方式逐渐复杂化的过程。笔者将每个计算思维实践作为一个“进阶变量”,为它们分别设计了包含4个水平的学习进阶,最终形成了一个计算思维实践学习进阶框架。该框架可以作为计算思维教育研究者和实践者研发课程内容和评测工具以及设计教学活动的参照依据。

计算思维实践1:问题定义

现实世界的问题都是存在于情境之中的,是模糊的、未被澄清的。明确问题是什么并以清晰的语言表述问题是问题解决过程中最关键的一步。

水平1-1:识别出已通过计算手段解决的问题;水平2-1:提出澄清性的问题,以了解一个问题的准确目标和具体要求;水平3-1:识别出与问题相关的显性的或隐性的要求和限制,分析它们对问题解决过程和作品创造过程的影响;水平4-1:识别出现实情境中可以应用计算手段解决问题的机会,将其转化成计算问题,以计算机可以处理的方式明确地表述问题。

计算思维实践2:问题分解

问题分解是计算领域中极为常用的一种问题解决策略,常见的问题分解方式包括按照结构、功能、顺序和依赖进行分解。

水平1-1:按照结构将问题分解成可以独立解决的子问题;水平1-2:按照流程将解决问题的过程分解成多个有序的步骤;水平2-1:按照系统的功能组织和依赖关系将问题分解成可以独立实现的子部分;水平3-1:将复杂问题进行多层次分解,先分解成子问题,然后对复杂的子问题做进一步分解,使其更加易于处理;水平4-1:从多个维度对复杂问题进行分解,并评估每个分解方案对于理解问题和解决问题的有效性。

计算思维实践3:数据分析

数据视角是一种新的理解问题的方式。从教学实践来看,对数据能力的培养往往都是先从问题调查中的数据收集和构建开始,而后使用相应的统计学和概率学的理论,发现数据的规律并生成结论,最后再使用可视化的方式将数据结论表达出来。

水平1-1:使用计算设备和工具收集、存储和管理数据;水平1-2:用多种可视化形式呈现数据;水平2-1:用不同的方式分类、组织和处理数据,以强调数据集的特定方面或部分;水平2-2:从数据的可视化呈现中识别模式,并做出预测;水平3-1:使用合适的方法并对数据进行处理或转换,使其更加有用和可靠;水平3-2:使用数据来强调关系,预测结果或支持一项主张;水平4-1:根据计算模型的预测结果和实际收集到的数据来优化已建构的模型。

计算思维实践4:抽象建模

模型能够帮助人们深化对现实世界的理解。建构有效模型的关键在于理解模型与其所表示的现象之间的关系,包括阐述模型与现象之间的异同,提出影响其有效性的因素,以及识别模型所隐含的内在假设。

水平1-1:通过绘图或者创作计算作品来模拟生活中或自然中的常见现象;水平2-1:创建明确命名的变量来存储简单类型的数据,根据功能需求对数据进行操作;水平2-2:识别具有相同属性和行为的对象,通过克隆等面向对象机制来进行建模;水平2-3:使用简单数学语言和模型,描述程序中的数学关系;水平3-1:根据情境设计合理的数据结构来存储数据,根据功能需求对数据进行操作;水平3-2:根据问题情境,选用合适的数学模型来设计解决方案;水平4-1:从类似的现象、过程或者代码中提取共同特征,对差异部分进行参数化,并通过带参函数进行封装,形成可复用的模块。

计算思维实践5:算法设计

算法是完成特定任务的一系列自动化步骤,是呈现问题解决方案的逻辑和有序指令。通过计算机科学和技术的应用,算法已经深刻地嵌入到现实世界中。

水平1-1:使用自然语言、简单符号等设计和表达顺序结构的算法;水平1-2:识别重复的现象、过程、模式等,并使用循环结构设计和表达算法;水平2-1:针对同一问题,发散思考,设计出多种可行的备选算法;水平2-2:组合使用顺序结构、循环结构和条件选择结构来设计并表达算法;水平3-1:使用流程图或者伪代码设计和表达相对复杂的算法;水平3-2:嵌套使用多种控制结构或组合使用多个判断条件来设计并表达算法;水平4-1:对同一问题的多种算法进行比较,从效率、准确性、可读性等角度评估算法的优劣。

计算思维实践6:系统思考

计算作品是一个复杂的系统,它是由相互联系、相互作用的元素为完成特定目标而组成的整体,因此学习者应该以系统化的方式对计算作品进行思考和设计。

水平1-1:将系统作为一个黑盒,定义和测量系统的输入和输出;水平2-1:识别一个系统的组成元素,阐明它们的行为,并解释元素之间的相互作用如何产生系统的特征行为;水平3-1:识别系统中涉及的状态量,准确设置系统的初始状态;水平3-2:分析并用自然语言、状态图等描述系统中的状态转换过程;水平4-1:运用模块化和层次化思想设计系统,以降低耦合性,提高内聚性,控制系统复杂度;水平4-2:以一种有用和有成效的方式来定义一个系统的边界,创建一个包括所有必要元素的系统,能够完成预期目标。

计算思维实践7:作品创造

在问题解决的过程中,设计出解决方案并不是最终步骤,还需借助计算工具将既有方案加以实现,创造出有个人意义和社会意义的作品。

水平1-1:基于既有设计方案,实现计算作品;水平1-2:根据具体的期望效果、功能要求或者需求描述,实现计算作品;水平2-1:根据个人兴趣,创造计算作品;水平2-2:通过改编现有程序的某些部分,以开发新的特性或添加更高级的功能;水平3-1:考虑现实需求,创造能解决具体问题或者对他人有价值的计算作品;水平3-2:评估现有的功能模块,并将它们纳入自己的设计中,以开发功能更加强大的作品;水平4-1:考虑多类用户的视角,使用系统的设计过程,创造出能解决社会性问题的计算作品。

计算思维实践8:实验迭代

迭代是软件领域的一种重要的项目开发思想。先通过低成本的方式开发出最小可行产品以验证想法和收集反馈,然后通过不断迭代优化的方式完善产品以适应新的需求。

水平1-1:以小步实验、逐步添加功能的方式创作计算作品;水平2-1:发现计算作品中的不足,对其进行迭代优化,修复存在的问题,完善其功能,优化其性能以及提升其可靠性;水平3-1:结合团队成员和不同用户的反馈,不断迭代完善计算作品,以满足用户需求;水平4-1:对需求进行分级,优先实现核心功能,并在此基础上逐步迭代完善计算作品。

计算思维实践9:计划制订

解决计算问题以及设计和创作计算作品是一个复杂的过程,为了确保项目过程不会偏离目标,通常需要在具体执行之前做出合理的计划。

水平1-1:用图示或者语言概述项目的开发步骤;水平2-1:制订计划,明确项目的目标和预期结果,清晰描述具体的开发步骤;水平3-1:评估计划的可行性,明确关键功能和需求,考虑时间和资源限制;水平4-1:基于迭代思想来制订开发计划,管理执行过程,根据实际情况修改计划以适应最终目标。

计算思维实践10:作品分析

作品分析是指从整体效果和实现机制等方面分析既有作品,或从外观和交互、需求满足程度和系统设计质量等方面去评估计算作品。

水平1-1:解释代码片段如何工作,分析代码片段或整个程序的运行结果;水平2-1:从外观界面和交互方式等方面评估计算作品;水平3-1:评估计算作品是否符合目标用户需求;水平4-1:将计算作品看作一个系统,从模块化和层次化等角度评估系统设计的质量。

计算思维实践11:测试调试

测试调试分为两个方面:测试和调试。测试即通过设计测试用例,系统性地对计算作品进行测试以发现其中的问题;调试即运用合适的策略定位并修复问题。

水平1-1:通过比较实际效果与期望结果,识别出异常效果,并修复计算作品中的问题;水平2-1:考虑计算作品中常见的潜在错误,并设计测试用例来进行测试;水平2-2:通过逐步运行和分析程序,定位并修复计算作品中非直观的逻辑问题;水平3-1:通过复现问题出现的条件和过程,定位并修复计算作品中的在特定情况下才会出现的问题;水平4-1:根据出现问题的具体情况,选择合适的策略来定位和修复问题。

计算思维实践12:评论反馈

编程不仅是一项个人的创造性活动,更是一种社会性的实践。学生在社群环境中创造并分享计算作品是一种重要的社会化学习途径。

水平1-1:以友好和尊重的方式评论他人的作品;水平2-1:为他人提供建设性的建议,表达具体,且能清晰地组织信息;水平3-1:以改善计算作品为目的,寻求多位同伴的反馈,并能区分意见;水平4-1:以改善计算作品为目的,从多种环境或者渠道寻求不同视角的反馈建议。

● 学习进阶的应用

计算思维实践学习进阶框架是培养计算思维的目标体系,它可用于课程大纲规划和表现性任务设计。在课程大纲规划时,设计者能够根据学习内容的特点规划各单元的计算思维实践能力目标。图2展示了某个四单元的计算思维实践地图,它使得教学设计和教学评价都有了清晰的思维目标方向。

图2

在设计表现性任务时,设计者能够以本单元的计算思维实践目标为主要依据。例如,围绕第三单元的思维目标设计的表现性任务是:请你为图3所示的扫地机器人设计算法,确保它能够自动清理地板上的所有垃圾。图4展示了一种可能的算法和基于某图形化编程语言编写的算法实现程序。

图3

图4

● 总结与展望

本研究在计算思维实践框架的基础上进一步澄清了每个计算思维实践的内涵,并为它们设计了包含4个水平的学习进阶。但是目前该学习进阶框架还只是一个基于理论假设的学习进阶,未来笔者将基于该进阶框架研发计算思维评测工具并通过实证研究来验证其水平区分度和进阶合理性,持续修订框架,最终使其与学习者客观的计算思维进阶过程达成一致。

猜你喜欢
进阶水平算法
张水平作品
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
加强上下联动 提升人大履职水平
人大建设(2019年12期)2019-05-21 02:55:32
传祺GM6:家用MPV新进阶
汽车观察(2019年2期)2019-03-15 06:01:02
领克进阶
汽车观察(2018年12期)2018-12-26 01:05:32
2018车企进阶十字诀
汽车观察(2018年12期)2018-12-26 01:05:24
进位加法的两种算法
进阶中的北汽新能源
能源(2018年8期)2018-09-21 07:57:30
一种改进的整周模糊度去相关算法