若問新課改中高中數學最大變化是什么?是算法,絕大多數人會這樣說,事實也正是如此。算法原為計算機程序設計的組成部分,現在把它放到高中數學課本的必修部分,充分體現了新課標重應用、重能力的思想。課標中明確指出:通過算法初步的教學,使學生能體會算法的基本思想以及算法的重要性和有效性,初步形成算法思維;發展學生有條理地思考與表達的能力,提高邏輯思維能力,培養理性精神和實踐能力。
算法思想源遠流長,中國古代數學中就蘊涵了豐富的算法思想。隨著現代信息技術飛速發展,算法在科學技術、社會發展中發揮著越來越大的作用,并且日益融入社會生活的許多方面,大到各種規劃、政策的制訂,小到解決具體的數學問題甚至生活中諸如洗衣、煮飯之類的小事,無不蘊含著算法思想。總之,算法思想已成為現代人應具備的一種數學素養。算法是數學及其應用的重要組成部分,是計算科學的重要基礎。它既是高中數學的新增內容,又具有較強的應用性。在高中學生而言,培養算法思想對其思考、分析問題上的條理性和邏輯思維的嚴謹性的養成有著積極、深遠的意義。
一、對數學家庭中的這個新生事物,在目前高中教學中也存在著一些不足
(一)教材編制上存在一些問題。算法作為一門“語言”,必須有它的語法規則,但筆者翻看了新課程的幾個不同版本,發現其代碼的語法規則不同,如對print語句各版本規則、要求不一;即使同種版本前后兩次印刷說法也不盡相同,如蘇教版教材在第三版時對“if…else”的嵌套問題在書寫格式上對else后出現的if沒有另起一行縮格書寫,這與結構化算法設計要求大相徑庭,學生也容易造成混淆(這個問題在第四版得到修正)。特別要提的是算法雖然跟計算機聯系較大,但在“語言”表述上教材上卻推出了“偽代碼”這一概念,用的雖然是BASIC語言的關鍵詞,可語法卻不相同,這樣教師、學生編寫代碼只能是紙上談兵,不能上機操作調試,缺少了這一環節,學生就少了對算法用途的主觀認識和感受,對有些問題的分歧也只能停留在爭論階段。
(二)教師對算法不太熟悉。絕大多數數學教師沒有程序設計基礎,對算法不很熟悉,基本是在邊學邊教,特別是對算法的結構不了解,簡單的流程圖還能馬虎過得去,對復雜的流程,如“百雞問題”等不看答案還真不知如何處理;另外,算法的邏輯性較強,稍不留意就會造成變量被重新賦值、條件不嚴密或死循環等程序設計經常出現的問題。不少教師都感覺較累,還經常應付不了好學學生拿來的課外參考書的問題。而各主管部門對教師的新課程培訓主要是講早已學習過的新課標的內容、設置的理念,對具體內容特別是對算法基本沒有相應的培訓,教師只能通過閱讀教材、參考書自己去認識算法,這就難免有認識上的不足和教學上的被動。
(三)算法與其他數學分支的整合度不大。高中數學課程標準明確提出:“算法除作為本模塊內容外,其思想方法應滲透在高中數學課程其它有關內容中,鼓勵學生盡可能地用算法解決相關問題。”目前,算法與其他數學分支關聯的題型并不多,教材中出現較多的也就是等差、等比的求和等簡單應用,與其他數學傳統分支的整合程度相比,算法的情況不能盡如人意,但實際上,算法與其他分支的整合還很多,如判斷元素與集合折關系、復合函數的迭代、圓與圓的位置關系判斷、統計的運算與判斷、幾何概型的試驗、復雜的數列問題等都可用算法來解決,07年廣東高考的第六題就是一道算法與統計的整合題。就目前這種狀況,筆者認為其原因有二:⒈課程資源缺乏,即使與教材相配套的參考資料也存在著若干問題,這種情況隨著時間的推移可能漸漸好轉。⒉先期進入課改的廣東等四省高考中對算法的考查只有一道填空題,整合程度并不大,各校對開發算法與其他內容整合的新題型的興趣不大。
二、針對以上狀況,筆者認為可在以下諸方面作些努力
(一)教材改版時要及時修正,以求統一標準,易操作。教材編著者要時時關注一線教學,對可能的存在問題要多加推敲,及時修正。如對代碼可考慮用VB,因為VB學生在信息技術課上接觸過,有基礎,而且也方便對代碼進行調試。另外,統一代碼也能有標準的語法規則,方便橫向溝通和資源共享。
(二)加強教師的培訓和自我業務進修。針對教師對算法問題的一些困惑,各級教育部門在組織新課程培訓時對算法這個“新成員”要多加關注,要重內容輕形式。各位數學教師也要注重加強自我業務研修,對程序設計要多涉及、多認識,可考慮與信息技術教師合作教學,以期優勢互補,共同提高。
(三)注重算法分析,提高教學效率。在算法三大結構中,循環結構是重點,也是難點,學生分析算法出主要問題就在這兒。教師在教學時要注重對語句順序變化和條件變化作比較辨析。如對右面這個簡單問題可考慮作如下變形:①將“S←S+1”與“i←i+1”語句互換,看結果有何變化?②將“print S”放到“Wend”語句前,結果又將有何變化?③將“i←1”改為“i←0”,看看①、②的結果又是如何變化?④再考慮將當型循環改為直到型循環,又如何變動?通過種種變型讓學生了解了各語句之間的邏輯關系,學會了如何去分析算法,培養了學生的算法意識。當然就要求教師備課要充分,要將可能出現的問題盡量考慮全面。
(四)加強算法與其他數學分支的整合。隨著算法逐步深入地走進高中課堂,將算法與其他數學知識融合將越來越重要,以后高考中出現算法新題型也應是意料之中,各位教師在教學中要盡可能多在算法綜合運用上下點功夫,這樣既能注重知識前后呼應,又能培養學生綜合運用所學知識的能力。如對右面這道題,考查的知識點就較多:先分析算法,得出該題實質上是“求滿足S=1×2+2×22+3×23+…+n×2n≥7000的最小整數”,再用錯位相減法求得S=(n-1)×2n+1+2≥7000,得到(n-1)×2n≥3499。解此不等式用一般方法不太可行,但由于n為整數,不等式左邊又為單調遞增數列,可考慮用二分法思想來求得n的值為9。形如此類的題型只要廣大教師在平時教學中注重多思考,真正重視算法思想的滲透,定會給自己教學帶來一番新氣象。
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”