1 高中數學引入算法的背景及其教育價值
人類進入了21世紀,在這個以計算機為代表的高度信息化的時代,算法是計算機科學的重要基礎,它在科學技術和社會發展中發揮著越來越重要的作用,掌握算法和算法思想也是信息時代對學生提出的一項新要求,是新生代的一項基本數學素養,在新一輪課程改革中,我國高中數學新課程就順應了時代的要求,將算法列為數學教學內容,并明確指出:算法是數學的重要組成部分,是計算理論、計算機理論和技術的基礎。
這一創新性變革其價值是不可估量的,僅就算法內容的教育價值而言,主要是算法內容有利于培養學生的邏輯推理等思維能力;算法內容有利于培養學生的理性精神和實踐能力;由于算法通常強調的是解決一類問題的通性通法,因此又有利于學生整體地把握數學知識;同時算法內容也有助于學生了解我國古代數學的偉大成就和特點,增強民族自豪感,
正是這塊充滿無限價值的新增內容,目前在高中的數學教學中,處境卻異常尷尬。
2 《算法初步》的尷尬處境
2.1 不同版本教材的算法語言不盡相同
雖然《課程標準》強調,在算法的教學中,重點在于讓學生理解和初步掌握算法的基本思想和操作過程,不要將此部分內容簡單地上成算法語言課和程序設計課,但是北師大版教材在“信息技術應用”欄目介紹了一些具體程序,第3節《幾種基本語句》以BASIC語言為例介紹條件語句和循環語句及大量實例,為了增強此節內容的趣味性,鼓勵學生上機嘗試,又不得不學習,而人教A版教材使用的是類BASIC語言,信息技術課《算法與程序設計》使用的是Visual Basic(VB)語言,單就北師大版教材而言,部分符號也是混亂不堪,比如賦值符號,《數學3(必修)》教師用書第126頁第9題的流程圖之第—個處理框內:“i-0”,第130頁第2題的第一個處理框內:“x:=a”,同一頁第3題的第一個處理框內:“k=1”,同一本教參三種賦值符號并存,其混亂程度由此可見一斑再如廣東省2008年和2009年的算法考題后都加上括號:“注:框圖中的賦值符號‘=’也可以寫成‘←’或‘:=’”,
混亂的算法符號,對于其他省市可能沒有什么影響,但是安徽省皖北地區使用的是北師大版教材,其他地區使用的均是人教版教材,這就使得第3節《幾種基本語句》成了擺設,因為全省教材不統一,高考肯定不考,無形之中,算法內容的所謂教育價值也就大打折扣,甚至無從談起。
2.2 信息技術老師和數學老師相互推諉
算法內容具有雙重身份,既是計算機的,也是數學的,恰恰因為這一點,使得算法教學處境尷尬,信息技術老師說,算法是數學內容,《算法與程序設計》第一節:“在數學課里,我們學習過算法的基本思想和初步知識,學會了運用算法流程圖來描述問題求解的過程,”數學老師則說,這一章內容信息技術老師都教過了,我們的任務是能讀懂流程圖。
本來算法的教學是信息技術老師側重“算則”,數學老師側重“算理”的,結果兩科老師這么一推,學生虧大了,計算機課上比葫蘆畫瓢,熱鬧又低效,而數學課上算法內容所蘊含的深刻數學思想成了紙上談兵之事,算法的思維模式也沒能如期樹立。
2.3 大部分數學教師的算法素養亟待提高
我們知道,《算法初步》里涉及到簡單的BASIC語言,對于近幾年畢業的年輕教師,算法知識沒有問題,但對于年長些的教師卻是一種挑戰,由于年齡偏大,思維模式固定等多種原因,造成他們對新增內容,尤其是算法內容有點排斥,再加上計算機知識的相對匱乏,他們雖然認真細致地研讀了教材,也只是達到自己能看懂的地步,許多年長的老師反映,這塊內容講完了也就忘完了,下次還要再學,對于如何把“晦澀”的、“抽象”的內容轉化為能讓學生容易接受的知識,如何讓學生領會算法的思想精髓和優越性,卻是一大難題,這也是數學老師把《算法初步》推給信息技術老師的一個最直接的原因,因此,我校許多老教師有的是讓學生自學,有的是和年輕老師拼班上課,有的干脆直接推給計算機老師,但是長此以往卻埋下深重的隱患,比如算法教學的系統性和滲透性等,這也大大違背了《課程標準》的初衷。
總之,教師在算法教學中的表現不如其他內容,年輕教師不夠自信,年長教師力不從心,對算法教學有畏懼心理,課堂上以課本為主,教學循規蹈矩,不敢隨意拓展和發揮,課外輔導顯得捉襟見肘。
2.4 《課程標準》與《考生說明》對算法的要求相互剝離
《課程標準》第24頁對算法的要求是:
(1)算法的含義、程序框圖
①通過對解決具體問題過程與步驟的分析(如二元一次方程組求解等問題),體會算法的思想,了解算法的含義。
②通過模仿、操作、探索,經歷通過設計程序框圖表達解決問題的過程,在具體問題的解決過程中(如三元一次方程組求解等問題),理解程序框圖的三種基本邏輯結構:順序、條件分支、循環。
(2)基本算法語句
經歷將具體問題的程序框圖轉化為程序語言的過程,理解幾種基本算法語句——輸入語句、輸出語句、賦值語句、條件語句、循環語句,進一步體會算法的基本思想。
(3)通過閱讀中國古代數學中的算法案例,體會中國古代數學對世界數學發展的貢獻,
2011年安徽省的《考生說明》對算法內容的要求則是:
(1)算法的含義、程序框圖
①了解算法的含義,了解算法的思想,
②理解程序框圖的三種基本邏輯結構:順序、條件分支、循環。
(2)基本算法語句
了解幾種基本算法語句——輸入語句、輸出語句、賦值語句、條件語句、循環語句的含義。
對比發現,《考生說明》對“幾種基本算法語句”的要求由《課程標準》的“理解”層次降格為“了解”層次,兩者類似這種相互剝離的現象比比皆是,因此而帶來的直接后果是,第3節形同虛設,很少有老師用心教學,基本都是這樣處理:“看看就行了,了解一下”,“不清楚的問信息技術老師”,“高考肯定不考,全省教材不統一,沒法考,”甚至部分老師創造性地“整合”教材,把第1節《算法的基本思想》也“PASS”掉,掐頭去尾,直奔主題——第2節《算法框圖的基本結構及設計》,而對此內容的要求也僅僅是“能讀懂框圖”。
由此可見,對算法知識的考核評價方式,顯然影響到教師對算法教學的熱情,教師對算法教學的態度勢必給學生的算法學習帶來負面影響,事實上,在日常的教學中,就《課程標準》與《考生說明》的指導性而言,前者與后者是不可同日而語的,盡管我們欣喜地看到,近幾年的高考試卷正在不斷貼近《課程標準》,但兩者若即若離,之間的距離依然很大,兩者相互剝離的現狀必須盡快整合,否則定會影響新課程改革的效果,也定會阻礙教育改革的深入推行。
3 教學建議與對策
3.1 有自主命題權的省份,最好要統一教材
“一綱多本”是此次新課程改革的最大特色,各個版本對個別概念、定義的敘述,數學符號,部分內容順序的編排,尤其是算法計算機語言的選擇等等,都不盡相同,這勢必影響高考試題的命制,也給全國將來走到一起交流學習的學生(也包括教師)帶來不必要的麻煩,這也不符合《課程標準》“構建共同基礎,提供發展平臺”的基本理念,鑒于此,筆者建議安徽省的高中教材最好統一(筆者傾向于人教A版教材)。 3.2 《算法與程序設計》與《算法初步》能否同時學習
我們知道,《算法與程序設計》是在高一第一學期開設的(此時學生哪里學過算法),而《算法初步》則編排在《數學3(必修)》里,絕大多數的學校和老師都是把《數學3(必修)》放在5本必修的最后,甚至一推再推,穿插在選修里學習,這樣以后學習算法的兩個“螺旋”之間的距離過大,極易在信息技術老師和數學老師間推來推去,所以筆者考慮,能否把《算法與程序設計》與《算法初步》同時開課,數學老師側重算法思想的培養和算法模型的樹立,即重“算理”;信息技術老師側重算法語言的講授和上機實驗,即重“算則”,這樣兩種互補互助,協同發展,學生和老師的受益肯定匪淺。
另外針對年長教師的現狀,備課組可以加強集體研課,幫助老教師“脫盲”,我們老師首先要自己認真鉆研,體會和感悟算法的可行性、明確性、有窮性、有效性和普遍性等數值化、程序化和機械化特點,感受算法的優越和精妙,然后再和學生一起學習算法的思想方法,欣賞算法的簡潔美。
3.3 認真研讀《課程標準》,教學要到位而不越位
《算法初步》是高中數學新增內容,設置的主要目的是讓學生體會算法思想,提高邏輯思維能力,在算法的教學中,不要忘了“初步”,“初步”意味著“淺”,有側重點,應特別凸顯實例的重要性,在解決具體問題的過程中學習和體會一些基本邏輯結構和語句,通過具體實例來說明由數學的算法到計算機使用的算法的過渡過程,從而說明算法的必要性,理解算法各個基本內容(結構、框圖、語言等)的作用,重點是算法思想的滲透,算法思維模式的建構,經歷運用自然語言、算法框圖和基本算法語句解決具體問題的過程,注重算法和其他知識的聯系與整合,而不能簡單地處理成算法語言課或程序設計課。
3.4 堅持算法思想的滲透性和算法思維的長期性
算法思想的培養和算法思維的樹立是一個長期的工作,不可能一蹴而就,在新課程教材中,算法的內容以兩種形式呈現:一是相對集中的《算法初步》;另一種是把算法思想滲透并貫穿于整個中學數學內容之中,許多豐富的層次遞進的素材都滲透著算法的思想,如必修系列《數學1》中判斷元素是否屬于某個集合;《數學2》中判斷直線與圓的位置關系;《數學3》中根據輸入數據,判斷兩組數據的相關性;《數學5》中數列求和的計算;選修系列《選修1-1》中用導數判斷函數單調性;《選修2-1》中用定積分求面積的計算;系列4中求逆矩陣的計算,用輾轉相除法求解一次不定方程的計算等等,隨著學生對算法理解和掌握程度的加深,學生學習算法的興趣和熱情勢必進一步增強,使得算法思想成為一種潛意識。