谢丁
摘要:计算思维是新时代青少年必备的解决现实问题的重要方法之一,利用现成的数学函数进行抽象建模,是人们进行计算思维建模的重要途径。在此过程中选择合适的建模工具,能够方便高效地解决问题。本文对比了常用的建模工具,结合学情与新课标的要求,选择了免费开源的跨平台建模工具OpenSCAD,并使用该软件介绍了从待解决的实际问题经历数学抽象建模到计算机程序建模最终生成模型的建模过程,展现了计算思维解决问题的过程。
关键词:数学建模;计算思维建模;程序设计
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2023)09-0000-03
具备计算思维的学生,能对问题进行抽象、分解、建模,并通过设计算法形成解决方案;能尝试模拟、仿真、验证解决问题的过程,反思、优化解决问题的方案,并将其迁移运用于解决其他问题。随着新课程标准[1]的实施,使用计算思维解决问题的思想已经深入到了课程的每个角落,笔者从众多软件中选择了OpenSCAD[2],从此软件入手,探讨使用计算思维解决现实问题的建模过程。
遴选可控软件的依据
由于编程软件自身的特点,每款软件的编程侧重点也不尽相同,有的采用积木块编程方式,有的采用文本编程模式,有的采用数学公式或函数的方式进行数学建模后生成3D模型,还有的软件原生就是为建模和仿真而设计的。为此,笔者对建模工具进行了不完全横向比较(如下表)。
根据上述要求,笔者对上述表格中的软件进行遴选。首先,选择符合年龄特征的软件,由于是针对小学升初中年龄段的学生,其年龄范围应在10~12岁之间;其次,需要使用数学建模的思想以及使用文本编程的功能,可以选择更加基础的OpenSCAD。[3]由于desmos仅能进行数学建模,不能实现3D模型的导出和动画与仿真模拟,所以笔者未选用该软件。在信息科技教学中,学生不仅要学会使用软件,更要学会如何选用软件,确定哪些标准,该能力是通用的能力。
软件的使用
在此软件的三维坐标系中,红色代表X轴,绿色代表Y轴,蓝色代表Z轴。对三维模型而言,常用的语言描述为物体的长、宽、高。其交叉点称为坐标原点。三个坐标轴的正方向显示在预览区左下角,其反方向为负,没有绘制。Windows系统下参考界面如图1所示。
图1中左侧为编辑区,用户可以在这里进行编程。在输入时,如果所输入的内容为系统内置函数则会有输入提示,如输入左括号“(”(英文状态下的左括号)后,会看到函数参数的提示。
中间上半部分为程序成功运行后建立的模型预览窗口,可以使用鼠标左键旋转视图,右键平移视图,中键滚动放大和缩小视图。中间中部是可以输入的帧率和步数,以及生成图片的复选框,为用户提供了除生成3D模型外的渲染图片、动图,甚至视频功能。时间是系统通过步数的倒数计算得到的,无法修改。如果该区域未显示,可以通过视图菜单下的动画命令开启。中间下半部分为控制台和错误日志窗口,在程序调试过程中可以将必要的运行过程显示在这里,方便程序调试。
右侧为用户自定义的显示内容。
以上所有窗口,用户可以根据需要在Window菜单下将其开启或关闭。
用编程生成3D模型的左视图
下面,笔者用案例来分析OpenSCAD在建模中的用法,编程需求为导入3D模型,编写代码生成3D模型的左视图。对于建模的用户而言,需要知道模型的三视图是什么样,而初学者往往也是从平面图形开始设计模型或者草图的。让我们看看该软件是如何实现将计算思维建模融入其中的。程序关键步骤解析如图2所示。程序运行效果图如图3所示。
解决问题的建模过程
新课标倡导以真实问题或项目驱动,引导学生经历原理运用过程、计算思维过程和数字化工具应用过程,构建知识,提升问题解决能力。OpenSCAD将编程和3D建模结合起来,能够实现平时用鼠标拖拽类的3D建模软件难以实现的效果,让学生更有驾驭感,但这种方法要求学生的数学思路很清晰,因此需要根据具体问题进行分析,这一过程与计算思维的分析过程是一致的。
将待解决的问题抽象为可计算问题,进一步抽象为数学语言与函数功能,再用计算机程序实现建模[4],计算思维解决问题也是基于此进行的。笔者认为,OpenSCAD提供的计算思维建模过程为:
①解决问题的自然语言描述,可以采用总分总的思维方式,即由最大逐步细分,然后再總结。
②将语言描述转变为符号或图来描述,进一步转换为符号间的关系,再转变成可计算的符号关系式,用现有的数学函数来描述可计算符号关系,即用数学语言描述与数学建模。
③在计算机编程语言建模中,计算机程序流程图作为数学建模与计算机程序建模的过渡桥梁,相当于编程前的思维导图纲要,对于需要较多数据的程序而言,还需要数据建模、数据规划、数据存储等方案配合。
④将上述解决问题的实际建模能力抽象概括后迁移到其他问题中,从而形成更为优秀的计算思维解决问题的方案。
反思与讨论
通过之前的学习,笔者发现学生如果具有一定的英语和数学基础可以自学OpenSCAD,教师要做的就是将需要解决的问题通过数学建模思想描述成能够让计算机执行的指令,将需要解决的问题,通过函数的功能加上编程语言特有的程序指令形成可计算的程序代码,从而实现3D建模。笔者认为,多数学生需要克服的困难是数学建模过程,这需要学生了解数学函数可以完成的功能与效果,从而建立起解决问题的数学桥梁,OpenSCAD就是这样一个可用工具,能使用计算思维建模解决问题的方法得以实现。
参考文献:
[1]中华人民共和国教育部.义务教育信息科技课程标准(2022年版)[S].北京:北京师范大学出版社,2022.
[2]OpenSCAD官网函数参考[EB\OL].https://openscad.org/cheatsheet/index.html.2021-1.
[3]OpenSCAD官网开源地址[EB\OL].https://github.com/openscad/openscad.2023-4-24.
[4]张玉洁.基于计算思维框架的编程教学模式探索与实践——以《for循环打印字符图形》为例[J].中国信息技术教育, 2022(21):37-39.