何晴 劉瑩
【摘 ? 要】“豎式”算法是小學(xué)階段數(shù)學(xué)課程內(nèi)容中的“人為規(guī)定”,具有“主客統(tǒng)一”的特征。因其“普遍適用”及“所需基本技能簡單”,成為小學(xué)階段學(xué)生必須掌握的內(nèi)容。一方面“豎式”算法是解決計算問題的方法,可以滿足人們提高計算效率及減輕思維負擔(dān)的需要,反映的是人們“求簡”的思想;另一方面“豎式”算法不是“任意而為”的產(chǎn)物,其發(fā)明和創(chuàng)造的過程離不開“客觀規(guī)律”。由此算法的教學(xué)既要體現(xiàn)“主觀性”,即感受需要,也要注重“客觀性”,即通過活動發(fā)現(xiàn)“規(guī)律”。
【關(guān)鍵詞】算法;知識屬性;人為規(guī)定;客觀規(guī)律
“數(shù)的運算(Operation)”是貫穿整個義務(wù)教育階段的重要課程內(nèi)容之一,習(xí)得“算法(Algorithm)”解決問題是其中的一個重要方面。作為現(xiàn)代人所熟知的筆算方式之一,筆算“豎式”是小學(xué)階段學(xué)生必須掌握的學(xué)習(xí)內(nèi)容。傳統(tǒng)課堂一般是由授課教師創(chuàng)設(shè)相應(yīng)的問題情境或直接給出算式,同時要求學(xué)生運用盡可能多的方法計算出結(jié)果并寫出自己的思考過程。而后學(xué)生則在教師的“引導(dǎo)”下“發(fā)現(xiàn)”標準豎式算法的“優(yōu)越”,并在之后計算中被動地將其奉為圭臬。
這樣的體驗不禁使學(xué)生感到疑惑:既然最終都要學(xué)習(xí)標準豎式,為什么還要運用多種方法進行計算,到頭來還要受到否定?進一步需要思考:應(yīng)如何看待“標準豎式”?“算法”學(xué)習(xí)又如何開展?謝明初教授指出“數(shù)學(xué)知識的性質(zhì)直接決定著數(shù)學(xué)的學(xué)習(xí)過程”[1],故而解決“學(xué)什么”和“如何學(xué)”的問題就需要重新審視“豎式”算法的知識屬性。
一、“豎式”算法具有“規(guī)定”的特征
新世紀以來,在“建構(gòu)主義(Constructivism)知識觀”的影響下,我國學(xué)者對數(shù)學(xué)課程知識的本質(zhì)屬性產(chǎn)生了新的認識,相對一致的觀點是數(shù)學(xué)中既有“發(fā)現(xiàn)(Discover)”又有“發(fā)明(Invention)”。前者是指數(shù)學(xué)課程中那些不證自明(Self-evident)的客觀事實,后者則是指那些因滿足人的某種習(xí)慣或數(shù)學(xué)自身發(fā)展的需要做出的“規(guī)范性設(shè)定”,如“0是自然數(shù)”等,郜舒竹教授將這類知識統(tǒng)稱為“人為規(guī)定(Artificial rules)”[2]。
《柯林斯數(shù)學(xué)詞典(Collins Maths Dictionary)》將“算法”解釋為:可以解決問題的設(shè)定完成的“程序”(Procedure),由一系列明確定義和確定順序的操作步驟組成,屬于人類的“發(fā)明”。如使用“豎式”計算[12×4]所對應(yīng)的“算法”:第一步將12拆分為10和2;第二步計算[4×2]得到8;第三步計算[4×10]得到40;最后將兩步計算結(jié)果相加得到算式結(jié)果48。算法所描述的操作過程往往可以通過流程圖(Flowchart)的形式表示出來。
一個問題可以對應(yīng)多種不同的“算法”,作為“人造(Artificial)”的知識,“算法”并不具備“唯一”的特征。李維武《從歷史的視角看“豎式”的人文性》、郜舒竹《筆算方法多樣性的歷史考察》等系列文章都對古今中外有史可稽的筆算算法進行了深入細致的梳理,足以證明筆算“豎式”僅是眾多“算法”之一。另外“豎式”算法始終處于選擇與優(yōu)化之中,通過對比不難發(fā)現(xiàn):現(xiàn)代“標準豎式”改善了某些算法因“移位”引起的計算過程的繁雜與混亂;避免了因從高位算起造成的“進位計算”的重復(fù);精簡了不必要的計算過程的呈現(xiàn)……
至于為何“豎式”具有如此廣泛的應(yīng)用性,成為小學(xué)階段計算方法學(xué)習(xí)的重心,與其普遍適用性及所需基本技能簡單的特征有關(guān)。如前文所述筆算“豎式”是程序化的,不論數(shù)的大小,不論執(zhí)行程序的對象是人還是機器,只要嚴格執(zhí)行設(shè)定的步驟就能得到正確的結(jié)果。而所需“基本技能簡單”是指學(xué)生僅需理解“位值制(Place Value)”和掌握101以內(nèi)四則運算就能解決幾乎所有計算問題。
二、“規(guī)定”因“需要”而產(chǎn)生
從某種意義上來講,“豎式”算法是一種解決計算問題的手段,符合人們的某種期望(Exception)。試想下面的情形:根據(jù)加法運算的意義,計算兩個一位數(shù)相加(如[2+3])可以由2開始數(shù)“3、4、5”三步得到算式結(jié)果5;也可以使用學(xué)具(如鉛筆、小棒……)將2個和3個相同的物品“合”在一起,通過數(shù)“1、2、3、4、5”得到結(jié)果??傊皵?shù)(shǔ)數(shù)(shù)”可以解決某些簡單的加法問題。然而隨著參與運算的“數(shù)(shù)”增大,數(shù)(shǔ)的過程也會變得枯燥且不那么“有效(Efficient)”,此時便亟待找到一種方法使得計算能夠擺脫或盡量減少“一個一個”地“數(shù)(shǔ)”的過程。
阿拉伯記數(shù)系統(tǒng)(Arabic Numeral System)提供了這樣的捷徑。該記數(shù)系統(tǒng)以“位值制記數(shù)法(Positional Notation)”為基本記數(shù)規(guī)則,“位值”簡單來說就是數(shù)碼的值取決于它的位置[3],不同的數(shù)位對應(yīng)的“計數(shù)單位”不同:個位的計數(shù)單位是“一”,十位的計數(shù)單位是“十”,百位的計數(shù)單位是“百”……數(shù)碼0~9表示該位置“計數(shù)單位”的個數(shù)。這就好比數(shù)一個倉庫的蘋果數(shù)量,打開倉庫發(fā)現(xiàn)這些蘋果是被整齊地放置著——不足10個的放在一起,剩下的以10個為一箱,以10箱為一組,以10組為一排……數(shù)出幾排、幾組、幾箱、幾個便能輕松得到蘋果的數(shù)量。這提供了一個自然而然的思考傾向2:分部——由“一個一個”地數(shù)變?yōu)椤耙活愐活悺钡財?shù)。
“豎式”算法產(chǎn)生的另一個需要是減輕思維負擔(dān)。[4]這不僅是因其以筆算的形式呈現(xiàn)了部分計算過程而減輕記憶上的負擔(dān),而且是滿足了人們的某種情感偏好:求簡。具體來說,無論是生活還是學(xué)習(xí),人們都不希望解決太過困難的問題,對比四種運算的“豎式”算法不難發(fā)現(xiàn)這樣的情感傾向:運算中的每一步盡可能都只涉及一位數(shù)的運算,使得運算對象由復(fù)雜變得簡單。更進一步,這種想法實際是將復(fù)雜的計算問題簡單化、分部化,通過逐一解決部分問題以實現(xiàn)解決整體問題。數(shù)學(xué)乃至生活中許多問題的解決(如求組合圖形的面積、稱大型物體的重量等)都與它相關(guān),是重要的數(shù)學(xué)思想,稱之為“化整為零”。
教學(xué)月刊·小學(xué)數(shù)學(xué)2021年2期