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