王繼華 劉鮮 吳向東
【摘 要】本文創建了如何結合幾何來開發小學計算思維課程的新途徑。即將真實世界中的物體形狀抽象成幾何圖形,通過點線面等基本幾何圖形的Scratch編程和調用,自動化繪制這些形狀,從而體現抽象和自動化的計算思維過程。
【關鍵詞】計算思維;抽象;自動化;幾何;Scratch編程
【中圖分類號】G434? 【文獻標識碼】A
【論文編號】1671-7384(2019)07、08-016-04
計算思維是深圳市龍崗區A-STEM教育中的一項重要內容。計算思維的關鍵是抽象,即對真實世界化繁為簡,找到本質特征和規律,降低復雜度,建立計算設備可以處理的模型。計算思維能力強的人,抽象的能力也特別強。
由此,我們想到可以用幾何的眼光看世界。世間萬物在外形上雖然千差萬別,但都表現出一定的基本圖形,如點、線、多邊形、圓形等,如旋轉排列的花朵、六角形結構的蜂巢、建筑物門窗排列等等。從這些外形復雜的事物中找出基本形狀及其相互之間的數學關系,就是抽象;隨后通過編程,讓計算機畫出圖形,以逼近真實的形式模擬世界萬物的形狀,這就是計算思維的過程。這些也是日益復雜的計算機圖形學的研究內容。計算機圖形學要用到很深的數學算法,但對于小學生來說,所學的數學知識相當有限,為此,我們嘗試用小學數學中平面幾何的淺顯知識,來開發跨學科的計算思維課程。
小學生的認識水平和幾何知識學習程度,其計算思維的學習也是相當淺顯的,但這并不妨礙他們用抽象的眼光看世界,用自動化的方法去模擬真實世界,在創造中去學習。本課程依托Scratch軟件,設計了如下的基本課程內容。
1.點和線
線條在生活中隨處可見,其中線段是常見的一種。幾何學中,線指的是點通過移動位置構成的圖形,它是幾何圖形最基本的組成部分。
既然線是由點位移構成的,那么就可以通過編程去自動化畫出線。首先,定義一個畫點的積木塊代碼,如圖1所示,這個腳本定義的點是一個出現在舞臺中央位置,大小為畫筆粗細的藍色點。畫線的代碼如圖2所示,它調用畫點的積木塊,移動100步,畫出一條長度為100的線條。在這里,當然還有更加直接的方法,那就是不必定義畫點的積木塊,直接在劃線的代碼中實現。但作為一個好的編程代碼來說,把一些基本的功能定義為積木塊來調用,可以使編程結構化,這是編程的基本思想和要求。
2.面

生活中的幾何線條很少是單調的一條線段,它通常是以多個線條通過組合和變化形成的面出現,例如建筑物的樓梯,如圖3所示。如果以面為單位,樓梯的視覺效果可抽象為由面逐級提升一定高度、縮小一定大小、并左移一定距離形成的逐漸抬高的面;為了獲得更逼真的視覺效果,可以在提升面時留下痕跡,如圖4。做好了這些數學化的抽象,就可以利用Scratch編程畫出樓梯了(圖5)。按照小學生的日常思維習慣,他們會盡量在“造型”中把圖形畫完備,甚至有可能有幾級樓梯就畫幾個高低不同的方塊,然后在舞臺中排列,根本就不用編程。但這有違計算思維的要求:缺少抽象和自動化。再來看圖5的代碼,根據編程結構化的要求,還可以對代碼進一步優化:一是面的繪制由自定義的積木塊來完成,二是逐級提升、變小和位移的數據可以用變量來實現。這些內容可以引導學生來討論,讓他們充分感受到數學抽象和代碼結構化的樂趣。
3.多邊形
建筑物中常常會用到多邊形元素,如三角形、長方形、六邊形等,有的建筑外形中有許多正六邊形。為了降低教學難度,我們把多邊形都當作正多邊形來對待。多邊形的邊即是線,線通過旋轉一定的角度組成正多邊形。正多邊形的不同是由邊長、邊數和角度3個變量決定的,角度又可以通過多邊形的內角和等于360°這個規律來確定,即360除以邊數(這是抽象的過程)。既然如此,從編程的角度定義正多邊形的邊長和邊數兩個參數即可(圖6),修改參數即可畫出不同的正多邊形(圖7)。
自然界中還有許多復雜的形狀,例如蜘蛛網,它可以抽象為多個正多邊形組成的幾何圖形,抽象和編程自動化實現的過程如圖8所示。
正多邊形只是幾何圖形中的一種特殊形式,像平行四邊形、五角星、心形和螺旋圖形都是較為常見的,通過Scratch編程同樣可以繪制出這些圖形,不過比正多邊形稍復雜些而已,也在小學生可以接受的范圍。這些內容可以在學了正多邊形之后,教師帶領學生盡可能自主地探索。
4.圓形與弧形

圓形是真實世界中十分常見的形狀,在幾何圖形中,圓形和正多邊形關系密切,正多邊形的邊數越大,形狀越接近于圓,以正三十六邊形為例,可以推算出正多邊形的邊長N與圓的半徑R之間的關系:N≈2πR/36≈ 0.174R。定義圓的積木塊代碼如圖9所示,不同的圓通過組合可以形成同心圓,同心圓在生活中很常見,如槍靶,它可以通過圖10的代碼去模擬繪制。
除了圓形,真實世界中有還存在著有許多弧形構成的事物,如花朵、葉子、器皿等,由不同的弧形通過變形和組合構成,這些都可以通過Scratch編程來自動化實現。
弧形可以看成是圓形的一部分,所以這里可以借鑒畫圓的方法,減少重復執行的次數,即可畫出弧形。因角度不同又可分為左弧和右弧,以右弧為例,定義右弧的積木塊代碼如圖11所示。其中R代表的是弧對應的半徑長度,a代表弧對應的圓心角的度數,將圓心角為a的右弧向右旋轉180-a,可形成一片葉子,因此定義葉子的積木塊代碼如圖12所示。圖13所畫出的葉子是由半徑為70、圓心角為90°的兩片右弧構成的。
我們還試圖讓學生通過Scratch來探究數學,上述的例子看起來是在應用數學中的幾何知識,其實也是學習幾何的過程。在數學世界里,對幾何形狀的探究催生了新的數學思想,比如分形。要讓小學生借助幾何編程來探究數學是困難的,但也不是不可能。比如在繪制正多邊形時,如圖15,從左下角畫正三角形開始,不斷增加邊數,當邊多到一定程度時,正多邊形越來越趨近于圓,這就是極限的思想。

計算思維與幾何的結合有著天然的優勢,特別是借助Scratch編程軟件。學生在學了這些內容后,看世界的方式就不一樣了。滿世界都會成為有規律可循的由基本圖形構成的豐富多彩的變化,這就是計算思維能力得到發展的表現,是我們最期望看到的課程學習的成效。同時,對真實世界各種事物的觀察、分析、抽象和自動化實現,美育蘊含其中,使得A-STEM中有關人文的跨學科概念得到一定程度的落實,使學生在獲得計算思維硬技能的同時,欣賞美、創造美等軟技能也得到發展。
作者單位:廣東深圳市龍崗區平安里學校? 廣東深圳市龍崗區寶龍學校? 廣東深圳市龍崗區依山郡小學