袁立新 吳 玉
(1.揚州職業(yè)大學師范學院,江蘇揚州,225013;2.揚州市育才小學西區(qū)校,江蘇揚州,225013)
當前,重視信息技術與數(shù)學教學的深度融合已成共識。事實上,人們早有借助于計算機學習數(shù)學的研究與實踐,如西蒙·佩帕特教授指導開發(fā)了LOGO過程性語言,目的就是通過有趣的簡單操作,培養(yǎng)兒童嚴密的算法化思維,體驗創(chuàng)造或再創(chuàng)造過程。罔森博和教授在其著作《數(shù)學教育與計算機》中,認為數(shù)學教學中使用計算機的首要目標就是“利用計算機培養(yǎng)學生有步驟的思考能力”。后來,這樣的能力被提升到“計算思維”層面,并抽象為一種公民必備的思維方式。這表明,在計算機出現(xiàn)之后,學會有條理地思考和解決問題是不可或缺的數(shù)學教學目標。但是,當前的數(shù)學教學,一方面只關注信息技術的表層功能,如作教學演示或說明書式的操作工具之用,而忽視其本應具有的“文化”氣息:開發(fā)、設計、創(chuàng)新要素;另一方面片面強調(diào)數(shù)學的思辨性,而對于數(shù)學與信息技術蘊藏的算法特性重視不夠。因此有必要在數(shù)學教學過程中加強算法的了解,以及算法化思維的培養(yǎng),特別是重視基于現(xiàn)代信息技術的算法化思維能力提升的教學處理。
廣義上講,算法就是解決某一特定問題或一類問題的過程。算法既是一個程序化的過程,也是一個過程凝固、外化后的數(shù)學結果。數(shù)學教學涉及的“算法”大致有三個理解角度。一是解決某個數(shù)學問題的計算過程或方法。即“運用運算法則或公式,通過計算的形式來解決數(shù)學問題”的過程或方法就是算法。這事實上就是“數(shù)學運算方法”,是與培養(yǎng)數(shù)學運算能力相對應的數(shù)學活動。如小學數(shù)學中“乘數(shù)中間有0的乘法計算”。二是數(shù)學領域?qū)iT為解決某一類問題給出的過程或方法。這類“算法”具有普適性和數(shù)學問題解決價值,如求最大公約數(shù)的輾轉(zhuǎn)相除法、高次方程求根的算法等等。三是基于以計算機為代表的信息技術工具的問題解決過程或方法。這是所謂的現(xiàn)代意義上的“算法”。這類算法與特定計算工具相關聯(lián),無論是抽象、分解、建模,還是自動化處理都是與工具的功能相匹配。第二個層面的算法大部分都可以用現(xiàn)代的信息技術工具實現(xiàn)。一方面信息技術的發(fā)展,可以產(chǎn)生更多的與算法相關的新興的數(shù)學學科門類。另一方面各類算法的創(chuàng)造與革新也催生計算工具更加智能化。事實上,早期的一些計算工具,如算盤、自動計算尺、甚至后來的“圖靈機”等等都有相應的算法或算法的設想。珠算口訣就可以看作是基于算盤的算法。目前基于計算機的算法更是琳瑯滿目,功能更為強大。隨著人工智能技術的不斷發(fā)展,算法概念的外延不斷擴大,“可計算的”變得更加難以界定。同時,算法變得更加抽象。它已不僅是簡單的計算過程,而是方法論意義上的概括性更高的一般性方法。而且算法與演繹不再對立,而是相輔相成。正如荷蘭數(shù)學教育家弗萊登塔爾所說:任何思辨的新生事物都在其自身中包含著算法的萌芽,這是數(shù)學的特點。算法化意味著鞏固,意味著由一個平臺向更高點跳躍[1]。所以,在信息化社會,我們非常關注第三個層面的“算法”??傊惴ň褪墙鉀Q某一特定問題或一類問題的過程或方法,特別是利用計算手段結構化、自動化、機械化地求解問題。信息工具不斷智能化,使我們對算法的理解可以更加接近現(xiàn)實世界。所以從數(shù)學教育的角度,學會算法化地思考相對于學習算法本身更為重要,就像學習數(shù)學目標是學習如何數(shù)學化一樣。
數(shù)學思維就是用數(shù)學的觀點去思考問題和解決問題。數(shù)學教育就是數(shù)學思維的教育。強調(diào)算法化,就是強調(diào)算法化思維,這是一種重要的數(shù)學思維形式,即能按照算法的要求,有條理、符合邏輯地思維和行動,同時,具有把復雜問題的解決轉(zhuǎn)化為一系列有序的、有限的、前后相依的步驟意識與能力[2]。算法化思維的結果就是形成算法化思想。數(shù)學教學要讓學生不滿足于探求數(shù)學問題的形式解,而是努力構造解決問題的算法,這也是一種思維方式的轉(zhuǎn)變。
自從2006年計算思維概念被提出以后,人們對此做了更多、更深入的探討。事實上,計算思維的本質(zhì)就是算法化思維。首先,計算思維的提出是信息技術發(fā)展到一定階段的產(chǎn)物,與基于信息技術的現(xiàn)代意義上的“算法”一脈相承。從計算思維最初的界定以及后來學者們的拓展、泛化、抽象,都表明這一點[3][4]。其次,從行動的角度,計算就是執(zhí)行一個算法的過程,與算法密不可分。2011年,國際教育技術協(xié)會和美國計算機科學教師協(xié)會明確提出計算思維的操作性定義,與算法化思維一樣,計算思維也是面向問題解決過程,包括問題確定、數(shù)據(jù)分析、抽象表示、算法設計、方案評估、概括遷移等六個環(huán)節(jié)。另外,計算思維是一種數(shù)學思維(當然是人的思維而非機器),是眾多數(shù)學思維形式中的一種,其本質(zhì)就是抽象和程序式系統(tǒng)。它是算法化思維的相同或相近表達。更為重要的,盡管目前人們對計算思維有各種各樣的理解,但是其獨特性仍體現(xiàn)在算法化、自動化方面。為了能使理論與實踐研究聯(lián)系更緊密,在將一個概念抽象過程中,它的獨特性不要輕易地被舍棄。計算思維雖不能簡單以機械程序化認知,因為它與其它數(shù)學思維形式交錯通融,不可分割,但泛化為把其它數(shù)學思維形式都納入到“計算”當中,不利于對數(shù)學教學實踐的指導。猶如數(shù)學項目學習、探究學習、合作學習等都屬于“深度”學習討論范疇,但項目學習的產(chǎn)品性、探究學習的方法特點、合作學習的共同體理念等都是各自特有的,也應該分別探索才能彰顯它們的價值。所以,以下討論都是基于算法化思維的,實踐性更明顯。
數(shù)學教學內(nèi)容的算法化能促進學生數(shù)學思維的整體發(fā)展。算法化不是單調(diào)化、刻板化的代名詞。人們常常對算法思想有偏見:算法就是外顯的、固化的解題步驟,算法化根本無法提升數(shù)學思維能力。事實上,算法本身就是創(chuàng)造性思維的產(chǎn)物,并且蘊藏豐富的“算理”,弄清楚算法的過程就是一個嚴謹?shù)倪壿嬎季S的過程,是一個“講道理”的過程。所以算法思維的學習與其它形式的思維是相生相依的。因此,強調(diào)算法化的教學,對目前的數(shù)學教學是一個有力的補充。
算法還能增強學生學習數(shù)學的信心,增加對數(shù)學的情感表達。算法本身就能滿足人的游戲天性,通過有限的構造或者操作就能展現(xiàn)新的結果;改變算法結構還可能有新的發(fā)現(xiàn)和創(chuàng)造。例如學生可以自己改變參數(shù)或設置命令組合,“隨心所欲”地通過信息技術與學習內(nèi)容互動,以表達或驗證自己的想法。有了各種猜想和驗證,便自然有證明的愿望和信心。
某些數(shù)學問題經(jīng)過模塊化、程序化處理還能夠降底數(shù)學學習的難度,促進數(shù)學學困生的轉(zhuǎn)化。許多學生學習數(shù)學之所以出現(xiàn)困難,就是缺乏條理性訓練,缺乏有步驟地思考與執(zhí)行的能力。將復雜的數(shù)學問題分解為關聯(lián)的簡單問題可以幫助學生展現(xiàn)解題的“算法流程”,避免“一步到位”式思考所導致的思維困難。也就是說教學需要力求從生成和歸納的角度幫助學生學習。從這個角度說,算法化思維是一種歸納思維。相對于演繹,更容易被接受和理解。
首先要讓學生了解數(shù)學中常見的算法及其功能。與公理-演繹體系不同,我國古代數(shù)學是問題-算法體系。以《九章算術》為代表的一系列數(shù)學著作中記載了大量的很“神奇”的算法。如與歐幾里得輾轉(zhuǎn)相除算法功能相同的“約分術”(即后來的“更相減損術”)、開方術,甚至還有分離系數(shù)法解方程組的方法(這事實上已類似利用系數(shù)矩陣和增廣矩陣解方程組的方法了)。還有像中國剩余定理、秦九韶算法等等都能展現(xiàn)古代中國的算法數(shù)學成就,一直沿用至今。這些算法在計算工具發(fā)展到一定程度之后,“老樹新花”,更能展現(xiàn)其價值。其次,要讓學生體驗基于計算機算法的獨特性。如要驗證π是無理數(shù),用高級算法可以計算到小數(shù)點后幾十億位(當然證明它是無理數(shù)只需一頁紙,這也說明了“頭腦編程”的高級所在,以及計算機的不足),再如某些方程無法求出根式解,則可以求出數(shù)值解。另外,要讓學生從文化的高度重視算法的價值。算法不僅能體現(xiàn)古今中外數(shù)學發(fā)展的差異與差距,在信息社會,它也是與信息技術打交道、增加解決問題手段、培養(yǎng)創(chuàng)新能力的重要途徑,否則會陷入新時代“文盲”的尷尬境地。因此,某種程度而言,數(shù)學的機械化就是數(shù)學現(xiàn)代化。
數(shù)學教學中,算法化思維培養(yǎng)有三個層次。第一是數(shù)學知識層次。如解決雞兔同籠問題,常用“假設法”,但計算機擅長的“列舉法”也有必要讓學生掌握。數(shù)學問題求解既要追求演繹方法得到的形式解,也要重視基于計算的數(shù)值解,不可偏廢?!八纳倍ɡ淼淖C明就是它們相得益彰的范例。在計算工具越來越強大的今天,將數(shù)學問題轉(zhuǎn)化為以計算工具可理解的“算法”是必要的,也是可行的。如用迭代法求方程的根。第二是解題的認知策略層次。如波利亞的“解題表”是典型認知策略的算法化。認識策略算法化不能被機械理解為瀑布式解題策略,而是各種思維活動的算法組合。對認知策略的認知角度不同,其算法特征的理解也有差別,如既有解題策略的行為性算法:閱讀、分析、探索、計劃、實施、檢驗等[7],也有策略性算法,如觀察(紛繁復雜的客觀世界)、抽象、探索(直覺、類比、歸納、聯(lián)想、推理等)、猜測(可能的規(guī)律)、論證(依據(jù)定義、公理、定理等邏輯推理)、揭示事物的內(nèi)在規(guī)律。第三個是元認知及直覺層次。對認知策略的監(jiān)控、數(shù)學的直覺等有時也認為是有程序和固定模式偏好的,即是算法思維的高度縮減??傊?,在教學時,我們要力求讓學生把思考的重點放到對數(shù)學問題的整體抽象形式的理解和規(guī)劃步驟上,即抽象的“算法”上,而不是重復的技巧性強的計算上。
這里所說的思維工具是指那些便于學習者呈現(xiàn)他們的學習內(nèi)容而采用或開發(fā)的基于計算機的工具和學習環(huán)境。這里所說的思維工具是一種認知工具,如概念圖、動態(tài)建模工具、可視化工具等等。學生不深入思考就無法使用這些工具,所以思維工具應該是一種“促進思維的工具”。數(shù)學課堂上,技術環(huán)境至少是能使師生與計算機做一些可探究的、開放的交流,包括具體數(shù)據(jù)、符號(包括圖形)的解釋表達和運算;預測用某種算法可能帶來的結果;根據(jù)具體數(shù)學學習內(nèi)容構造性的選擇操作;制造適合自己的學習情況的規(guī)定和規(guī)則;表達自己數(shù)學教學思想(對師范生而言)等等。
“算法化”在不斷泛化過程中,其“初心”即關鍵屬性不能丟,即有條理、有步驟地思考。同時,它在與數(shù)學的聯(lián)系上更不能被割斷。數(shù)學教學中培養(yǎng)算法化思維是“近水樓臺”,是自然的,也是必要的。算法化思維在培養(yǎng)學生的解決問題能力和創(chuàng)新能力中起著獨特的作用。當然,任何一種數(shù)學思維過程都不是單獨存在的,所凝練出的數(shù)學思想都應該是算法的、形式的、直覺的統(tǒng)一體。同時,算法化思維具有普適性,教育的最終目標也必須由課內(nèi)推及課外,并逐漸重新脫離信息技術的束縛,融入學生的日常生活中,引導他們尋找更加美好的生活策略,并能切身體驗到“算法之美”[5]。