任士凡
算法初步是高中新課程中的一項新增內容,也是廣大數學教師教高三復習中普遍感到比較棘手的的一章,如同曹操口中的雞肋,講太深考試難度太大,學生理解不了;講得太淺高考中也會出現算法與其他知識的綜合。
《新課程標準》里指出:算法是數學的重要組成部分,是計算理論、計算機理論和技術的基礎。隨著現代信息技術飛速發展,算法在科學技術、社會發展中發揮著越來越大的作用,并日益融入社會生活的許多方面,算法思想已經成為現代人應具備的一種數學素養。
什么是算法?算法在人教A版教材中的呈現形式有哪些?在高中教學中實施算法一章的教學應注意哪些問題?在此本文就以上問題,結合我們的教學實踐,與同仁們交流,敬請指導。
一、什么是算法?
算法(algorithm)一詞源于算術(algorism)。算術方法是一個由已知推求未知的運算過程。今天,人們將它推廣到一般,把進行某一工作的方法和步驟稱為算法。從廣義來說,某種電器的說明書是使用這種電器的算法,歌譜是一首歌曲的算法,課程表是上課的算法。在數學中,做四則運算先乘除后加減,從里往外去括號,多位數相乘中列豎式計算的方法等等都是算法,至于乘法口訣、珠算口訣和其它計算口訣更是算法的具體體現。只要按照算法的程序一步一步做,就一定會做好這件事。因此,算法其實是耳熟能詳的數學對象,一般地,算法是指在解決問題時按照某種機械程序步驟一定可以得到結果的處理過程。這種程序必須是確定的、有效的、有限的。從狹義上看,我們現在通常所討論的算法是指可以用計算機來解決某一類問題的程序或步驟。即可以用計算機程序來表示,并且可以上機執行,對任何合法的輸入,算法要在有限的時間內通過有限步的計算后終止。算法的基本思想就是程序化思想。
二、算法的內容在高中課程中的呈現形式:
算法的內容在高中課程中是以兩種形式呈現一是模塊3中,相對集中地介紹算法的基本思想、基本結構、程序框圖、基本語句、算法案例等。這里大約有12課時。二是滲透在高中數學的其他課程之中,如在人教A版教材中2.4.2介紹求函數零點近似解的一種計算方法二分法,在概率、統計的案例中設計算法解決問題,人教社A版教材必修4第10頁中介紹由角度換算為弧度的一個算法等等。總的來講,一是集中系統解決基礎知識及形成基本技能,二是滲透、運用,把算法作為基本思想來教育,同時把算法及程序設計又作為技能讓學生掌握應用以體現如何學數學、用數學的新的教學觀念
三、"算法初步"的教學中應注意的幾個問題
《標準》中指出:學生將在義務教育階段初步感受算法思想的基礎上,結合對具體數學實例的分析,體驗程序框圖在解決問題中的作用;通過模仿、操作、探索,學習設計程序框圖表達解決問題的過程;體會算法的基本思想,認識算法的重要性和有效性,發展有條理的思考與表達的能力,提高邏輯思維能力。
為了更好地實現新課標的要求,我覺得在實際教學中一定要注意以下幾個問題:
1.要正確地定位算法教學
算法初步的教學內容有:算法的含義、程序框圖,基本算法語句,算法案例。它們的教學目標具體定位在哪里?通過我們的研究認識到,我們對算法教學目標的定位是從認識一般意義上的算法基礎上,著重學習在計算機上可以實現的算法。算法初步中的所研究的算法除了具有算法的基本特點,既具有確定、有效、有限的特征外;教學中圍繞著計算機是如何解決問題的,選擇數學中具有重要價值的算法范例為內容,如一次方程組的消元法、二分法求方程近似根、迭代求和、比較許多數的大小等等問題,來進行教學。因此,我們算法教學中要從培養學生運用計算機進行思維的素養、體會數學中所孕含的算法思維。在教學中,要實現學生從一般意義上的算法問題轉移到運用計算機解決數學問題的算法的學習。
2.要正確地處理好案例學習與解決問題的關系
在算法初步的學習中安排了許多案例,這些案例的算法在計算機應用中所體現的一些數學思想、思維方法都是比較經典、有深度的,同時也是較難以理解的。通過學習使學生能理解它們的算法原理、算法程序設計的技巧,領悟其中的思想與智慧。這里更多的是了解與感受,但并不是要求學生也來解決一些較難的問題。因此,教學中要把握好教學的要求,以理解案例的算法為重點,利用它們解決一些簡單的問題。鼓勵有興趣有能力的同學去解決某些具有挑戰性的問題。
3.要正確把握學習算法的一些原則
對算法的學習我們必須通過實例進行,在解決具體問題的過程中學習一些基本的邏輯結構,并且盡可能的上機嘗試,在實例的選擇中,我們要把握這樣的一些原則:
親和原則--選取的實例要貼近自己,或者來自我們的生活實踐,或者我們學過的數學。
趣味性原則--選取的實例一般要有豐富的背景,本身要有趣味性。
基礎性原則--問題本身的算理并不難,但要蘊涵豐富的算法思想。
可操作性原則--所選取問題的算法一般能在計算機上實現。
4.在選擇結構教學中時要注意糾正學生易犯的錯誤
學習選擇結構時,學生往往因為對計算機的工作的邏輯原理是2進位制,只有是與非二種判斷的原理理解不夠,在寫條件分支的程序設計中常出現多于2個的選擇分支的錯誤。如設計解一元二次方程ax2+bx+c=0(a≠0)的程序中,學生按判別式b2-4ac大于、等于、小于零三種情況來分支寫出算法,這在計算機是不能實現的,是錯誤的,這些在教學時要給予引導或糾正。
5.在循環語句教學中要加深學生對循環的形成與控制的理解
循環語句的學習時,如何能夠有效的保證循環,一個關鍵的地方是設計累加器,在表示時利用計算機特有的替換方式,如I=I+1,或S=S+x;對于學生理解很困難。建議在教學中可從數列的迭代、遞推的角度讓學生理解,再讓學生明白因為計算機的替代功能,理解I=I+1,或S=S+x實際表的意義,通過簡單的例子來弄清楚,最后再解決復雜的問題。
在循環過程中對于循環的開始與結束的控制,要給以條件限制,開始學生設計時會遺漏,教學中要引導學生認識它,任何循環都必須給以控制這是循環語句中基本要素之一。
算法作為高中數學的必修內容的一部分,反映了人們在現代社會對數學的新的審視,算法在數學中的地位得以提高。算法進入中學數學課程,即使時代的要求,也是古代數學思想在一個新的層面上的復興;傳統數學中許多算法的內容,特別是我國古代數學是以算法為主要特征許多成果今天又煥發了生機。同時它會引發人們對數學中新的算法的研究,總之,算法的教學對傳統和未來的數學都會產生深遠的影響。endprint