王建鵬
摘 要:隨著人工智能技術(shù)的快速發(fā)展,中小學(xué)生人工智能編程教育逐漸走進(jìn)大眾視野,對(duì)培養(yǎng)中小學(xué)生創(chuàng)新精神、提升創(chuàng)新實(shí)踐能力起到了一定作用。青少年編程和簡(jiǎn)單數(shù)學(xué)模型的整合,可以極大地提升青少年的編程技能,同時(shí)又能使學(xué)生對(duì)所學(xué)數(shù)學(xué)知識(shí)的認(rèn)識(shí)有更加深刻的理解,實(shí)現(xiàn)了數(shù)學(xué)思維從抽象到可視化,可以說青少年編程和數(shù)學(xué)模型能互相促進(jìn),對(duì)提升師生的模型思想和計(jì)算思維大有幫助。
關(guān)鍵詞:編程;積木腳本;數(shù)學(xué)模型;變量;策略
日常生活中我們常會(huì)聽到“模型”,如航模、車模等,一些能直觀看得見的模型,還有一類直觀上看不到的模型,如在做一些重復(fù)性或解決一類特定問題時(shí),用到的思想、方法等。日常生活中我們常會(huì)做一些重復(fù)性的工作或面對(duì)一類特定問題,在完成這些工作或解決這類問題時(shí),都有一些固定的思路和方法。當(dāng)我們理清工作思路、掌握解決問題的方法、確定主要影響因素后,通過建立模型并應(yīng)用模型就可以大大提升工作效率。在初中數(shù)學(xué)教育教學(xué)中常會(huì)遇到一些數(shù)學(xué)模型,選擇一款合適的青少年編程語言可以把模型中用到的思路、方法、式子轉(zhuǎn)化為計(jì)算機(jī)中的程序指令,把直觀看不見的數(shù)學(xué)模型轉(zhuǎn)化為可視化、易操作的計(jì)算機(jī)程序。數(shù)學(xué)是一門基礎(chǔ)性學(xué)科,有很多鮮活的數(shù)學(xué)模型實(shí)例為青少年編程提供了素材,編程和數(shù)學(xué)模型相整合將進(jìn)一步助力數(shù)學(xué)的發(fā)展。
一、青少年編程簡(jiǎn)介
隨著現(xiàn)代科學(xué)技術(shù)的高速發(fā)展,我們的生活中已經(jīng)出現(xiàn)了很多智能化、智慧化的人工智能科技產(chǎn)品,人工智能已成為引領(lǐng)未來科技的新領(lǐng)域,計(jì)算機(jī)編程則是人類的思維和智慧向人工智能傳遞的橋梁。青少年的認(rèn)知有限,計(jì)算機(jī)操作能力不強(qiáng),對(duì)計(jì)算機(jī)編程缺乏基本的認(rèn)識(shí),直接學(xué)習(xí)C++、Python等高級(jí)程序語言會(huì)使他們對(duì)編程失去興趣[1]。編程貓是一款專門針對(duì)4~16歲學(xué)齡兒童設(shè)計(jì)的編程套裝,其中的Kitten源碼編輯器中包含很多青少年看得懂的積木腳本和豐富的動(dòng)畫、聲音、背景等資源。編程界面和積木腳本是全中文的,初學(xué)者只需要會(huì)簡(jiǎn)單的鍵盤操作,能輸入字母、數(shù)字、漢字,用鼠標(biāo)能進(jìn)行單擊和雙擊。當(dāng)學(xué)習(xí)者做好編程準(zhǔn)備,明確編程意圖后,就可以很容易地用鼠標(biāo)拖拽積木腳本塊到腳本區(qū)搭建程序來實(shí)現(xiàn)編程的目的[2]。例如,要實(shí)現(xiàn)小車在公路上行駛的動(dòng)態(tài)效果,同時(shí)鍵盤上的A鍵、D鍵能分別控制小車的左右移動(dòng)??梢赃@樣來設(shè)計(jì)編程策略:讓小車靜止不動(dòng),公路不停地向后移動(dòng),人的視覺效果就是小車在不停地向前行駛。然后把這一策略翻譯成Kitten源碼編輯器能聽懂的語言,若把舞臺(tái)看成一個(gè)坐標(biāo)平面,在舞臺(tái)區(qū)添加公路和小車兩個(gè)角色,當(dāng)開始被點(diǎn)擊時(shí),重復(fù)執(zhí)行公路的縱坐標(biāo)增加“-10”,橫坐標(biāo)不變,就可以實(shí)現(xiàn)公路在豎直方向向后移動(dòng),人的視覺效果為小車向前行駛。若要改變小車行駛速度,只需要改變公路縱坐標(biāo)的增加值。要實(shí)現(xiàn)小車的左右移動(dòng),則需要保持縱坐標(biāo)不變,使橫坐標(biāo)增加值為正數(shù)或負(fù)數(shù)就可以了。表1是實(shí)現(xiàn)上述效果的程序腳本。
表1 ?實(shí)現(xiàn)小車在公路上行駛的程序腳本
二、數(shù)學(xué)模型
數(shù)學(xué)模型是依托生產(chǎn)實(shí)踐中事物的內(nèi)在特性或數(shù)量關(guān)系,用數(shù)學(xué)符號(hào)、數(shù)學(xué)式子、圖形等描述事物的客觀本質(zhì),突出主要影響因素概括地或近似地表述出特性和數(shù)量關(guān)系的一種數(shù)學(xué)結(jié)構(gòu)。數(shù)學(xué)模型包括數(shù)學(xué)中的各種概念、各種公式和各種定理、推理及專題。因?yàn)樗鼈兌际怯涩F(xiàn)實(shí)世界的原型抽象出來的,從這意義上講,整個(gè)數(shù)學(xué)也可以說是一門關(guān)于數(shù)學(xué)模型的科學(xué)。中學(xué)生接觸的都是一些簡(jiǎn)單的數(shù)學(xué)模型,系統(tǒng)中各量之間的關(guān)系是不隨時(shí)間的變化而變化的靜態(tài)的數(shù)學(xué)模型,一般都用代數(shù)式、方程、圖形來表達(dá)。例如,在行程問題中滿足:路程=速度×?xí)r間,n邊形一共有條對(duì)角線,一元二次方程的求根公式等,這些都是簡(jiǎn)單的數(shù)學(xué)模型。數(shù)學(xué)模型可以很大,也可以很小,教師在教學(xué)中要善于引導(dǎo)學(xué)生發(fā)現(xiàn)和整理學(xué)習(xí)中遇到的數(shù)學(xué)模型。
三、編程在數(shù)學(xué)模型中的應(yīng)用
在編程的過程中會(huì)涉及到很多數(shù)學(xué)方面的知識(shí),要求學(xué)習(xí)者具備嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)思維,編程是一種數(shù)學(xué)能力的綜合展現(xiàn)和提升,編程和數(shù)學(xué)是密不可分的,它們有著非常相似的思維邏輯。數(shù)學(xué)知識(shí)是編程的基礎(chǔ),數(shù)學(xué)模型為編程提供了素材,編程可以鞏固數(shù)學(xué)知識(shí),升華數(shù)學(xué)知識(shí)[2]。編程可以將數(shù)學(xué)模型從紙面上的式子、圖形轉(zhuǎn)化成生活中的一個(gè)個(gè)實(shí)例,將理論轉(zhuǎn)化成可見的程序演示效果,實(shí)現(xiàn)數(shù)學(xué)思維的可視化,將數(shù)學(xué)從抽象的公式轉(zhuǎn)化成具體的實(shí)用工具,提高了運(yùn)算效率及實(shí)用性。在Kitten源碼編輯器編程平臺(tái)上,很多積木腳本包含數(shù)學(xué)知識(shí),如角色的長(zhǎng)度、大小、旋轉(zhuǎn)角度、方向、移動(dòng)步數(shù)、畫圖等基礎(chǔ)要素,還有三角函數(shù)、乘方、開方等數(shù)學(xué)運(yùn)算知識(shí)。還有文字、語音的輸入、輸出、翻譯等交互積木腳本。青少年在創(chuàng)作過程中,需要數(shù)學(xué)知識(shí)的支持,無形中對(duì)數(shù)學(xué)知識(shí)也是一個(gè)鞏固和提升,實(shí)現(xiàn)了運(yùn)算過程的可視化。例如,在勾股定理數(shù)學(xué)模型中,直角三角形兩條直角邊的平方和等于斜邊的平方,即:a2+b2=c2(其中a、b為兩條直角邊,c為斜邊),如圖1是用勾股定理解決這類實(shí)際問題時(shí),任何一個(gè)正方形的面積都可以分成兩個(gè)小正方形的面積之和。按照這個(gè)思路,在Kitten源碼編輯器編程平臺(tái)上創(chuàng)建一個(gè)如圖2所示的“勾股樹”函數(shù)模塊,參數(shù)為邊長(zhǎng),用畫筆積木塊畫出一個(gè)正方形,然后用計(jì)算機(jī)程序設(shè)計(jì)中常用的遞歸方式畫出大正方形頂部左側(cè)和右側(cè)的小正方形,通過調(diào)整參數(shù)邊長(zhǎng),就可以畫出如圖3中茂密程度不同的勾股樹。
四、編寫“一元二次方程求根器”實(shí)例
(一)準(zhǔn)備模型
初中數(shù)學(xué)中學(xué)到了一元二次方程,其一般形式是ax2+bx+c=0(a≠0),其中ax2是二次項(xiàng),a是二次項(xiàng)系數(shù);bx是一次項(xiàng),b是一次項(xiàng)系數(shù);c是常數(shù)項(xiàng)。若給a,b,c三個(gè)系數(shù)賦特定的實(shí)數(shù)值,那么一元二次方程也就隨之確定。如,把1,2,3分別賦給a,b,c,就會(huì)得到一元二次方程x2+2x+3=0。用公式法解一元二次方程時(shí),先要用根的判別式?駐=b2-4ac,判斷一元二次方程根的情況,當(dāng)?駐>0時(shí),方程有兩個(gè)不相等的實(shí)數(shù)根;當(dāng)?駐=0時(shí),方程有兩個(gè)相等的實(shí)數(shù)根;當(dāng)?駐<0時(shí),方程沒有實(shí)數(shù)根。當(dāng)方程有實(shí)數(shù)根時(shí),就可以直接用求根公式x=求出方程的根。上面提到的一般形式、根的判別式及求根公式都是用代數(shù)式表示的數(shù)學(xué)模型,也為青少年編程提供了素材,促進(jìn)了學(xué)生對(duì)該內(nèi)容的深度學(xué)習(xí)。為了能讓學(xué)生理解創(chuàng)作“一元二次方程求根器”背景和意義,錄制了一段微課,微課中講解了一元二次方程的一般形式、根的判別式、求根公式,保證學(xué)生先能認(rèn)識(shí)一元二次方程、明白根的判別式的作用。通過筆算會(huì)用求根公式求一元二次方程的根,并把微課放在了程序舞臺(tái)界面,使用程序前先看微課,基本掌握一元二次方程的相關(guān)知識(shí)。
(二)從模型中的字母到程序中的變量
用字母的加、減、乘、除、乘方及開方等運(yùn)算表示的式子稱為代數(shù)式,代數(shù)式中的字母在初中數(shù)學(xué)中通常用實(shí)數(shù)給其賦值。針對(duì)上面代數(shù)式數(shù)學(xué)模型中提到的a,b,c三個(gè)系數(shù),在編程時(shí)分別新建三個(gè)數(shù)值變量,當(dāng)發(fā)出輸入系數(shù)指令后,通過Kitten源碼編輯器編程平臺(tái)中的“詢問”和“獲得回答”兩個(gè)積木腳本可以實(shí)現(xiàn)給三個(gè)系數(shù)賦值,同時(shí)再新建?駐、x1、x2三個(gè)變量,用來分別存儲(chǔ)根的判別式的值和方程的根。在編程中新建變量的過程中,使學(xué)生體會(huì)到代數(shù)式的意義,感受到數(shù)學(xué)中字母、數(shù)字一般和特殊之間的關(guān)系,動(dòng)和靜之間的關(guān)系。
(三)從數(shù)學(xué)語言表示的式子到程序語言表示的積木腳本
在程序中給三個(gè)系數(shù)分別賦值后,依托?駐=b2-4ac用運(yùn)算積木塊中的各種運(yùn)算關(guān)系給“Δ”賦值,積木腳本如圖4所示。新建一個(gè)“根的情況”數(shù)據(jù)列表,用來打印輸出結(jié)果。根的判別式是用來判斷一元二次方程根的情況,當(dāng)?駐>0時(shí),方程有兩個(gè)不相等的實(shí)數(shù)根;當(dāng)?駐=0時(shí),方程有兩個(gè)相等的實(shí)數(shù)根;當(dāng)?駐<0時(shí),方程沒有實(shí)數(shù)根。此時(shí)要用到控制積木塊中的條件判斷語句“如果”腳本積木。這樣的“如果”條件語句要放置三層,在每一層“如果”條件語句中,分別把判斷的結(jié)果通過“根的情況”數(shù)據(jù)列表打印出來。若方程有根,通過運(yùn)算積木塊中的腳本積木,編寫出求根公式的程序腳本,并將值存儲(chǔ)到“?”中,再通過數(shù)據(jù)列表打印出來。如圖5所示為?駐>0時(shí),“如果”條件語句中的程序腳本。
(四)驗(yàn)證程序
程序腳本編寫完成之后,點(diǎn)擊“講解視頻”按鈕,學(xué)生可以觀看一段微課,接著點(diǎn)擊“輸入系數(shù)”按鈕,程序會(huì)自動(dòng)提示依次輸入三個(gè)系數(shù),得出一個(gè)一元二次方程,在“根的情況”列表會(huì)打印出經(jīng)過判斷根的情況和具體的根,同時(shí)會(huì)語音播報(bào)打印的內(nèi)容。若分別將1、4、-12賦值給三個(gè)系數(shù),得到的一元二次方程為x2+4x-12=0,打印的內(nèi)容如圖6所示?!耙辉畏匠糖蟾鳌蓖暾木幊滩呗匀鐖D7所示。
圖7 ?“一元二次方程求根器”編程策略
數(shù)學(xué)模型是經(jīng)過數(shù)學(xué)建模從實(shí)際生活中抽象出的數(shù)學(xué)結(jié)構(gòu),在產(chǎn)生的過程中經(jīng)歷了高度提煉和歸納,是數(shù)學(xué)深度學(xué)習(xí)的產(chǎn)物,其舍棄影響很小的因素,比較簡(jiǎn)化、規(guī)范化、程序化,邏輯關(guān)系較強(qiáng),很容易編寫為程序使其智能化。程序本身就源于0、1和建立的二進(jìn)制數(shù)據(jù)結(jié)構(gòu)抽象世界,編程是在這個(gè)抽象世界里解決抽象的數(shù)學(xué)問題,編程所用的一些算法常常應(yīng)用于數(shù)學(xué)模型問題的解決,數(shù)學(xué)模型與編程有著相輔相成、互相促進(jìn)的關(guān)系。研究數(shù)學(xué)模型有利于鍛煉人的思維能力,對(duì)于編程是有利的,對(duì)于提高我們的編程水平,提高我們用計(jì)算機(jī)程序解決實(shí)際問題的能力是大有益處的[3]。
參考文獻(xiàn):
[1]于愷.基于數(shù)學(xué)計(jì)算提升學(xué)生編程思維[J].中國(guó)信息技術(shù)教育,2018(05).
[2]吐爾遜阿依·阿不來提,李龍.中小學(xué)計(jì)算思維和數(shù)學(xué)邏輯思維的培養(yǎng)實(shí)踐研究——以Scratch編程實(shí)現(xiàn)《百錢百雞》為例[J].電腦知識(shí)與技術(shù),2020,16(26).
[3]劉鮮,王繼華.以計(jì)算思維為核心的編程與數(shù)學(xué)相融合教學(xué)的探索——以《大自然中美麗的螺旋圖》為例[J].中國(guó)信息技術(shù)教育,2020(23).
見習(xí)編輯/張婷婷