案例教學法是指在教師的精心策劃和指導下,根據教學目的和教學內容的需要,運用典型案例,將學生帶入特定的情境,深入角色,分析案例,以提高學生分析和解決實際問題能力的一種教學方法。教師恰到好處地運用典型案例到《算法與程序設計》教學中,不僅有助于提高學生聽課的興趣,而且能達到學生理解和記憶的目的。
一、運用案例教學法的優點
1.學生是教學過程主體,調動學生學習積極性。
在傳統的教學中,教師是主體,教師在任何教學環節中同時擔當“導演”和“演員”的雙重角色。而案例教學法中則要發揮學生的主體地位,教師作為指導者,有效地把握課堂討論氣氛,讓每一個學生的才智得到充分發揮。
2.通過主動參與,提高學生能力。
教學案例的設計具有較強的針對性,案例教學法讓學生在案例中主動參與,在分析中充分表現自己。這樣從中鍛煉學生的分析問題、解決類似問題的能力。
3.所學知識可操作性強,寓原理于操作中。
教師通常針對每個教學案例設計一定的思考題,通過學生用現有的理論知識去思考、參與、分析和設計,來掌握相關的理論知識。
二、案例教學法在《算法與程序設計》教學中的應用
1.預備知識。
學生已掌握了用計算機解決問題的過程,掌握了程序設計基礎,掌握了解析法、窮舉法、查找法、排序法設計程序的技巧。
2.從斐波那契的“兔子問題”看遞歸算法。
著名的斐波那契提出了一個“兔子問題”:假定小兔子一個月就可以長成大兔子,而大兔子每個月都會生出一對小兔子。如果年初養了一對小兔子,問到年底時將有多少對兔子?
(1)分析問題:仔細觀察一下表1,不難發現第一月是最初的一對小兔子,第二月仍是最初的一對小兔子,但是已經長成大兔子,到第三月除了最初的兔子外又新生一對兔子,因此共有2對兔子,繼續推下去,第12個月時最終共有144對兔子。
(2)討論:讓學生討論每一個月份的大兔數、小兔數與上一個月的數字有什么聯系?
(3)設計算法:“兔子問題”很容易列出一條遞推式而得到解決。假設第N個月的兔子數目是F(N),我們有:當N=1、2時,F(N)=1;當N≥3時,F(N)=F(N-1)+F(N-2)。這是因為每月的大兔子數目一定等于上月的兔子總數,而每個月的小兔子數目一定等于上月的大兔子數目。由上述的遞推式我們可以設計出遞歸程序。遞歸程序的特點是獨立寫出一個函數(或子過程),而這個函數只對極簡單的幾種情況直接給出解答,而其余情況下通過反復的調用自身而把問題歸結到最簡單的情況而得到解答。自定義函數的定義格式:
Function<函數名稱>([參數列表])[as類型]
局部常量、變量定義
語句組
函數名稱=返回值
End Function
自定義函數的調用 變量=函數名稱(參數)
(4)編寫程序:根據遞推式可以寫出遞歸程序如下:
Pubilc Function Fib(N As Integer)As Long
If(n=1)or(n=2)ThenFib=1 Else Fib=Fib(N-1)+Fib(N-2)End if End Function
Private Sub Command1_Click()
N=Val(Text1.Text)
Text2.Text=“第” N “月的兔子數目是:” Fib(N)
End Sub
3.歸納。
通過分析演算過程,引導學生總結遞歸法的概念:是一種直接或間接地調用自身的算法。它的基本思想是:對于復雜的問題,把原問題分解為若干個相對簡單前類同的子問題,繼續下去直到子問題簡單到能夠直接求解,也就是說找到遞推的出口,這樣原問題就由遞推得解。
三、運用案例教學法要注意的問題
1.選用典型事例,注重培養學生的分析和思維能力。
選擇合適的案例是十分重要的。教師所舉事例比較形象,不但可以使抽象的知識變得直觀具體,而且可以激發學生有興趣去觀察、研究案例,并且去努力發現其中的規律。特別在程序設計教學中,不要把運行出正確結果作為唯一的目標,而是要關注學生的分析和思維過程,讓學生在自身實踐探索的過程中實現技能的提高。
2.學生應該有效參與,而不是無效參與。
所謂有效參與是能夠從案例中作出有意義的分析,找出自己的觀點與解決辦法,確定案例所包含的合理假設;無效參與是指學生能夠提出不切實際的假定,沒有依據地表明自己的觀點與辦法或提出不當的問題影響討論。
3.要配合其它教學方法進行教學。
案例教學法對算法與程序設計教學無疑是一種先進的教學方法,但在提倡一種教學法時,我們不能排斥另一種教學法。傳統的講練法仍是不可或缺的,只有在學生具備一定的理論知識前提下,教師才可以從容地將案例教學法得以充分運用。
教學實踐表明,在程序設計教學中實施案例教學,能夠充分調動學生學習的積極性,也提高了學生實際動手能力和探索、合作、創新能力,所以在程序設計教學中合理、有效地使用案例教學將會很好地解決傳統教學中遇到的問題。當然,任何一種教學模式的推廣和使用都需要根據實際情況不斷進行調整、改造和完善,這樣才能達到創新素質教學的目的。