一、教材依據
本節課是奧教版《算法與程序設計》(選修1)第四章《算法與程序實現》的第4節第1課時。
二、設計思想
【教學指導思想】:基于問題主導的教學模式。
【設計理念】:本節課采用基于問題主導的創新教學模式,指導學生在問題解決視野下去親歷算法分析與程序設計實踐、理解算法思想、發現新問題,從而全面提升學生的能力。
【教材分析】:排序算法是程序設計的基本算法,主要要求學生理解選擇排序算法,選擇排序算法的特點,進一步分析排序算法時間和空間效率。
【學情分析】:高二年級的學生在高一階段的必修教材中已經學習了編制程序解決問題,他們已經具有較強的邏輯思維能力和分析問題的能力,只要講清楚算法,本節課的內容對學生來說應該容易掌握。
三、教學目標
【知識目標】:理解選擇排序算法思想,學會使用選擇排序算法思想解決問題。
【能力目標】:通過學習選擇排序算法,提高學生分析與解決問題的能力。
【情感態度與價值觀】:通過上機完成“大型國際運動會上的國家排序問題\"VB程序設計,體驗編程快樂、感受成功的喜悅與程序的魅力。
四、教學重點
選擇排序算法的基本思想及相關的程序實現。
五、教學難點
如何使用選擇排序算法解決實際的問題。
六、教學準備
1.用PowerPoint 2003制作的課件。
2.從網上下載選擇排序的動畫演示文件。
七、教學過程
1.引入新課:(以一些現實生活的實際問題開始,啟發同學們去思考)
教師:同學們每次的考試成績我們會以Excel表格的形式公布給大家,同學們想想計算機是如何在瞬間進行分數排序的呢?
學生想。
2.啟發思考,分析選擇排序算法及程序實現。
教師:好,今天我們就來學習選擇排序算法。
開始新課學習:
教師:現在我們一起看看人工是如何進行數據的排序的,老師給出8位同學的分數,同學們把它們由小到大地排成順序。數據分別是:86.5,77.5,87,68.9,89.6,77.2,79.7,71.1。同學們想想笫一個位置應該放哪個數?
學生:放最小的。
教師:好,那么,我們是不是只需要將最小的數68.9與在第一個位置的數86.5進行交換呢?
學生:是。
教師:同學們再想一下第二個位置是不是應該放置的是除了第一個以外的數中最小的呢?
學生:是。
教師:那么第N-1個位置應該放什么呢?
學生:應該放置的是除了前N-2個以外的數中最小的。
教師:老師是不是可以總結我們剛才的算法,所謂選擇排序,就是給數組的N-1個位置選擇合適的數據,而每次是選擇第i個位置的數據到最后一個位置(第Ⅳ個位置)的數據的最小值,然后將找到的最小數據與第i個位置上的數據交換?
學生:是的。
教師:下面我用一個動畫演示剛才的算法,請同學們看大屏幕。
現在我們只需要將剛才的算法用VB語言表達出來,就是選擇排序的程序,那么我們需要解決三個問題:
(1)給數組的N-1個位置選擇合適的數據? 這個問題顯然我們可以用一個循環結構來完成: For i=l【o
N-1Next i
(2)如何尋找第i個位置的數據到最后一個位置(第Ⅳ個位置)的數據的最小值?
這個問題也就是在數組中的極值(最大值或最小值)的問題。其實我們只關心最小值數據的位置,用變量M記錄其位置。
于是我們很容易寫出選擇排序的程序。
3.調試程序:
教師:同學們想不想看一下運行結果呢?
學生:想(很強烈)。
教師:運行程序后,輸入測試數據,可得排序后的輸出結果在窗體上。
4.課堂實踐練習與知識拓寬:
(1)完成課本127頁的國家名排序問題。
【設計意圖】:使學生看到選擇排序不僅可以對數字排序,也可以對字符串排序,同時也能達到對選擇排序的應用練習。
(2)明明的隨機數(題目描述發送到學生機的桌面)
【設計意圖】:這個問題是很現實的例子,學生對這個問題很感興趣,激發他們探索的欲望,要求學習優秀的學生必須完成,我想通過這個問題,一方面提升學生學習的積極性;另一方面再通過這個實際問題的解決,實現本節課的知識目標。
【學習評價】:教師隨機讓個別學生講解練習題的算法、演示其所編程序,師生共同進行點評。
【課堂小結】:
(1)什么是選擇排序算法?
(2)選擇排序算法的實質及時間和空間效率。
(3)選擇排序算法的優點、缺點。
八、教學反思
通過本節課的教學設計,我認識到信息技術教學的關鍵是要調動學生的積極性,算法與程序設計這部分知識如果課堂教學設計不當,就會讓學生覺得很枯燥,所以我將抽象的問題通俗化,復雜的問題分解成幾個小問題來解決,這樣學生就很容易接受,再加上所舉的例子都是學生身邊的實際事例,使學生很想知道問題的答案,從而極大地調動了學生的積極性。
(作者單位陜西省成陽市禮泉縣第一中學)