于愷
計算機(jī)的主要工作之一是科學(xué)計算,音頻、視頻、文字都是在計算機(jī)內(nèi)部通過一定的計算處理呈現(xiàn)出來的,而整個計算機(jī)功能開發(fā)的核心是程序設(shè)計。小學(xué)生程序設(shè)計的能力有限,認(rèn)知程度達(dá)不到,如果直接采用編程語言教學(xué)不利于學(xué)生對程序設(shè)計產(chǎn)生興趣,而選擇模塊化編程方式,可以讓學(xué)生有清晰的編程思路,也可以讓學(xué)生添加一些有趣的事物來展示程序的運(yùn)行結(jié)果,使他們樂于接受、學(xué)習(xí)。
1.數(shù)學(xué)計算思維與程序計算思維有很多共通點(diǎn)
小學(xué)數(shù)學(xué)的內(nèi)容中以加減乘除為主。程序運(yùn)行時,是計算機(jī)在執(zhí)行相應(yīng)的指令,如果讓學(xué)生明白只要將自己的數(shù)學(xué)知識加以優(yōu)化就能夠完成程序的編寫,給計算機(jī)相應(yīng)指令,那他們就不會出現(xiàn)畏難情緒。計算主要是由兩方面組成,一方面是數(shù)值計算,另一方面是邏輯計算,很多計算內(nèi)容是學(xué)生已經(jīng)在數(shù)學(xué)知識中學(xué)習(xí)并掌握的,邏輯計算就是一種語言邏輯判斷,學(xué)生已經(jīng)在語言學(xué)習(xí)中掌握了連詞“而且”“或者”“非”的概念,只需將程序語句與日常用語加以聯(lián)系,學(xué)生就能夠明白相關(guān)程序語句的用意。
2.利于將已學(xué)數(shù)學(xué)知識用于掌握基礎(chǔ)編程計算
第一類數(shù)學(xué)知識是代數(shù)內(nèi)容。學(xué)生在小學(xué)一到三年級,學(xué)習(xí)了四則運(yùn)算、取余、判斷大小等基礎(chǔ)運(yùn)算,掌握了質(zhì)數(shù)、單雙數(shù)、閏年等計算,已明白了計算的原理,而編程就是讓學(xué)生將數(shù)學(xué)計算思維轉(zhuǎn)化為編程計算思維。學(xué)生先運(yùn)用已掌握的數(shù)學(xué)知識來完成程序的制作。例如,判斷質(zhì)數(shù)的問題,大多數(shù)學(xué)生會采用一個數(shù)一個數(shù)的整除,少部分學(xué)生會采用關(guān)鍵數(shù)字2、3、5的方法去判斷質(zhì)數(shù)。學(xué)生利用編程語言的方式是用一個可變數(shù)字來進(jìn)行判斷,再觀察用于判斷的數(shù)字是否有余數(shù),如果有余數(shù)那么它就是一個質(zhì)數(shù),如果沒有余數(shù)它就是合數(shù)。學(xué)生利用數(shù)學(xué)知識可以完成編程中的科學(xué)計算。
第二類數(shù)學(xué)知識是幾何內(nèi)容。借助Scratch編程方式,繪圖功能很容易實(shí)現(xiàn)。教師在講授幾何圖形時,可以讓學(xué)生在繪制過程中發(fā)現(xiàn)、探索幾何圖形的相關(guān)原理。在之前的編程學(xué)習(xí)過程中,學(xué)生已經(jīng)學(xué)習(xí)了Scratch的繪圖功能,那么如何讓他們使用編程思維完成幾何圖形的繪制呢?例如,三角形分為銳角、鈍角、直角三角形。學(xué)生繪制鈍角三角形時,只需要繪制第一條邊,然后讓小貓旋轉(zhuǎn)到相對應(yīng)的角度即可,旋轉(zhuǎn)的角度為90度到178度之間。通常,學(xué)生繪制的時候會選擇一個固定的角度,這時,教師可以告訴學(xué)生,如果運(yùn)用編程思維,可以用隨機(jī)數(shù)確定角度。這樣學(xué)生不僅理解了隨機(jī)數(shù)的使用,還鞏固了數(shù)學(xué)角度的知識。這時再讓他們使用隨機(jī)數(shù)繪制銳角三角形,他們對知識的理解會更深刻。
通過知識的過渡,學(xué)生對編程認(rèn)知從感性思維上升到理性思維,學(xué)生對編程有了新的認(rèn)識,不再只是利用其制作游戲,而是將其作為幫助運(yùn)算的工具。把數(shù)學(xué)知識運(yùn)用到編程中后,教師可以引導(dǎo)學(xué)生進(jìn)行更深一步探究,嘗試對數(shù)字、文本、條件的定義進(jìn)行挖掘。例如,編程需要重要數(shù)據(jù)處理——函數(shù)的運(yùn)用,學(xué)生不一定能理解,但如果教師跟學(xué)生說未知數(shù),他們可能會聯(lián)想到方程式,而方程式就是函數(shù)的一種表達(dá)方式。為了讓學(xué)生提前理解函數(shù)部分的內(nèi)容,筆者選擇了一些與函數(shù)有關(guān)的程序。例如,拋物線的學(xué)習(xí),在Scratch背景圖庫中有XY坐標(biāo)圖的背景,學(xué)生在移動中運(yùn)用點(diǎn)坐標(biāo)在圖中確定移動到的位置就可以制作出拋物線。函數(shù)的學(xué)習(xí)大多需要使用繪圖的方式,編程可以使知識更容易呈現(xiàn)。學(xué)生能夠根據(jù)公式制作出程序,并演示拋物線的軌跡。這雖然屬于初中學(xué)習(xí)的知識,但教師可以通過畫圖讓學(xué)生理解函數(shù)的概念和公式。
程序解決的是大量的計算和數(shù)據(jù)處理,計算機(jī)程序設(shè)計中需要掌握的基礎(chǔ)就是算法,這里的算法不只是算數(shù)方法。計算機(jī)的算法不僅是優(yōu)化程序使用的方法,而且是優(yōu)化計算程序的方法,算法很多內(nèi)容源自數(shù)學(xué)知識里的最優(yōu)結(jié)構(gòu),強(qiáng)調(diào)能使用最少且邏輯最清晰的程序語句來完成相關(guān)程序設(shè)計。數(shù)學(xué)教學(xué)不只是數(shù)學(xué)知識的講授,更多的是培養(yǎng)學(xué)生解決問題的邏輯思維。學(xué)生思考問題的方式不同,通過學(xué)習(xí)算法的內(nèi)容能夠形成處理簡單問題的思維,最終呈現(xiàn)的程序設(shè)計思路每個人都是不相同的,所以算法正確的基礎(chǔ)就是學(xué)生能夠根據(jù)問題設(shè)計出程序的整體思路。
小學(xué)階段的計算思維培養(yǎng)可以借助數(shù)學(xué)知識,通過程序設(shè)計拓展學(xué)生的知識,并使其將自身所學(xué)的知識與程序結(jié)合延伸出新的知識,讓學(xué)生在進(jìn)行程序設(shè)計的同時提升自身分析數(shù)據(jù)、處理數(shù)據(jù)、輸出數(shù)據(jù)的能力。