謝丁


摘要:計算思維是新時代青少年必備的解決現實問題的重要方法之一,利用現成的數學函數進行抽象建模,是人們進行計算思維建模的重要途徑。在此過程中選擇合適的建模工具,能夠方便高效地解決問題。本文對比了常用的建模工具,結合學情與新課標的要求,選擇了免費開源的跨平臺建模工具OpenSCAD,并使用該軟件介紹了從待解決的實際問題經歷數學抽象建模到計算機程序建模最終生成模型的建模過程,展現了計算思維解決問題的過程。
關鍵詞:數學建模;計算思維建模;程序設計
中圖分類號:G434? 文獻標識碼:A? 論文編號:1674-2117(2023)09-0000-03
具備計算思維的學生,能對問題進行抽象、分解、建模,并通過設計算法形成解決方案;能嘗試模擬、仿真、驗證解決問題的過程,反思、優(yōu)化解決問題的方案,并將其遷移運用于解決其他問題。隨著新課程標準[1]的實施,使用計算思維解決問題的思想已經深入到了課程的每個角落,筆者從眾多軟件中選擇了OpenSCAD[2],從此軟件入手,探討使用計算思維解決現實問題的建模過程。
遴選可控軟件的依據
由于編程軟件自身的特點,每款軟件的編程側重點也不盡相同,有的采用積木塊編程方式,有的采用文本編程模式,有的采用數學公式或函數的方式進行數學建模后生成3D模型,還有的軟件原生就是為建模和仿真而設計的。為此,筆者對建模工具進行了不完全橫向比較(如下表)。
根據上述要求,筆者對上述表格中的軟件進行遴選。首先,選擇符合年齡特征的軟件,由于是針對小學升初中年齡段的學生,其年齡范圍應在10~12歲之間;其次,需要使用數學建模的思想以及使用文本編程的功能,可以選擇更加基礎的OpenSCAD。[3]由于desmos僅能進行數學建模,不能實現3D模型的導出和動畫與仿真模擬,所以筆者未選用該軟件。在信息科技教學中,學生不僅要學會使用軟件,更要學會如何選用軟件,確定哪些標準,該能力是通用的能力。
軟件的使用
在此軟件的三維坐標系中,紅色代表X軸,綠色代表Y軸,藍色代表Z軸。對三維模型而言,常用的語言描述為物體的長、寬、高。其交叉點稱為坐標原點。三個坐標軸的正方向顯示在預覽區(qū)左下角,其反方向為負,沒有繪制。Windows系統(tǒng)下參考界面如圖1所示。
圖1中左側為編輯區(qū),用戶可以在這里進行編程。在輸入時,如果所輸入的內容為系統(tǒng)內置函數則會有輸入提示,如輸入左括號“(”(英文狀態(tài)下的左括號)后,會看到函數參數的提示。
中間上半部分為程序成功運行后建立的模型預覽窗口,可以使用鼠標左鍵旋轉視圖,右鍵平移視圖,中鍵滾動放大和縮小視圖。中間中部是可以輸入的幀率和步數,以及生成圖片的復選框,為用戶提供了除生成3D模型外的渲染圖片、動圖,甚至視頻功能。時間是系統(tǒng)通過步數的倒數計算得到的,無法修改。如果該區(qū)域未顯示,可以通過視圖菜單下的動畫命令開啟。中間下半部分為控制臺和錯誤日志窗口,在程序調試過程中可以將必要的運行過程顯示在這里,方便程序調試。
右側為用戶自定義的顯示內容。
以上所有窗口,用戶可以根據需要在Window菜單下將其開啟或關閉。
用編程生成3D模型的左視圖
下面,筆者用案例來分析OpenSCAD在建模中的用法,編程需求為導入3D模型,編寫代碼生成3D模型的左視圖。對于建模的用戶而言,需要知道模型的三視圖是什么樣,而初學者往往也是從平面圖形開始設計模型或者草圖的。讓我們看看該軟件是如何實現將計算思維建模融入其中的。程序關鍵步驟解析如圖2所示。程序運行效果圖如圖3所示。
解決問題的建模過程
新課標倡導以真實問題或項目驅動,引導學生經歷原理運用過程、計算思維過程和數字化工具應用過程,構建知識,提升問題解決能力。OpenSCAD將編程和3D建模結合起來,能夠實現平時用鼠標拖拽類的3D建模軟件難以實現的效果,讓學生更有駕馭感,但這種方法要求學生的數學思路很清晰,因此需要根據具體問題進行分析,這一過程與計算思維的分析過程是一致的。
將待解決的問題抽象為可計算問題,進一步抽象為數學語言與函數功能,再用計算機程序實現建模[4],計算思維解決問題也是基于此進行的。筆者認為,OpenSCAD提供的計算思維建模過程為:
①解決問題的自然語言描述,可以采用總分總的思維方式,即由最大逐步細分,然后再總結。
②將語言描述轉變?yōu)榉柣驁D來描述,進一步轉換為符號間的關系,再轉變成可計算的符號關系式,用現有的數學函數來描述可計算符號關系,即用數學語言描述與數學建模。
③在計算機編程語言建模中,計算機程序流程圖作為數學建模與計算機程序建模的過渡橋梁,相當于編程前的思維導圖綱要,對于需要較多數據的程序而言,還需要數據建模、數據規(guī)劃、數據存儲等方案配合。
④將上述解決問題的實際建模能力抽象概括后遷移到其他問題中,從而形成更為優(yōu)秀的計算思維解決問題的方案。
反思與討論
通過之前的學習,筆者發(fā)現學生如果具有一定的英語和數學基礎可以自學OpenSCAD,教師要做的就是將需要解決的問題通過數學建模思想描述成能夠讓計算機執(zhí)行的指令,將需要解決的問題,通過函數的功能加上編程語言特有的程序指令形成可計算的程序代碼,從而實現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循環(huán)打印字符圖形》為例[J].中國信息技術教育, 2022(21):37-39.