● 模塊
高中算法與程序設計。
● 課標要求
通過實例,掌握使用排序算法設計程序及解決問題的方法。
● 課時
2課時。
教學目標
1.知識與能力目標
(1)理解什么是排序算法。
(2)學會用簡單的數組處理、表示數據。
(3)掌握選擇法與冒泡排序的原理。
(4)掌握兩種排序VB程序的實現和優化,以及兩種算法的區別。
2.過程與方法目標
(1)初步學習分析解題的思路。
(2)通過實例,使學生能夠使用選擇和冒泡等排序算法設計程序,掌握其解決問題的方法。
3.情感態度與價值觀目標
培養學生積極思考、精益求精的求學精神和科學態度。
● 教學重點
兩種排序算法的原理。
● 教學難點
兩種排序算法的實現過程與優化。
● 課堂組織流程

● 教學過程設計
1.復習導入新課
(1)教師活動:教師提問后,根據學生回答加以點評。肯定排序在生活中的地位與作用。
(2)學生活動:學生思考并回答的問題:①大批量的數據用什么存儲和處理?如何用隨機函數產生一個指定區間的隨機整數?②我們學過幾種查找方法,其中二分查找的算法前提是什么?③如何實現數據交換?④列舉日常生活中要對數據進行排序處理的實例。
設計意圖:為新課作鋪墊,使學生意識到排序的重要性。
2.排序方法的探索
(1)教師活動:①教師給出10個隨機排列的數據,要求學生討論:我們手動實現從小到大排序的方法有哪些?②教師總結:選擇法與冒泡法兩種排序方法的理論基礎(概念)。
(2)學生活動:①學生分組討論,提煉排序的方法;②各組回答排序討論的結果。
設計意圖:讓學生自主探索,尋找規律。發揮小組協作作用,討論交流,得出結論。
3.探討算法實現
(1)教師活動:給出10個隨機排列的數據,提問“怎樣實現最大數放置于最后一個位置的算法”?
(2)學生活動:學生用VB語句實現找極值的算法。
設計意圖:讓學生明確找“極值”的“打擂臺”算法,為實現排序算法作鋪墊。
4.算法的描述
(1)教師活動:用自然語言描述出兩種排序的算法。
(2)學生活動:學生分組討論并描繪出兩種算法的流程圖。
設計意圖:讓學生掌握如何把自然語言描述的算法用流程圖表示。
5.進一步比較分析
(1)教師活動:①運用課件,總結歸納兩種算法的根本點;②突出解析要進行幾趟比較,每趟比較的次數,以及循環變量的取值。
(2)學生活動:聽講①兩種算法的根本點;②比較兩種算法的相同點、不同點;③注意循環體的內容和循環變量的取值以及比較的對象。
設計意圖:培養學生分析、比較做出判斷的能力,以及舉一反三的能力。此處課件的作用是表述循環的規律,明確算法的關鍵步驟。
6.用VB實現算法
(1)教師活動:①觀察學生完成情況;②即時指導;③搜集學生錯誤,集中講評;④運用課件實現一種排序算法代碼。
(2)學生活動:聽講①掌握一種排序算法代碼。學生通過交流討論,用VB實現另一種排序算法;②確定自己注重的一種算法,并加深理解。
設計意圖:此處課件為節省時間,不用設計窗體,只用編寫代碼。通過討論,快速掌握另一種算法。
7.知識拓展
(1)教師活動:①提供相關學習網站;②引導學生思考兩種排序算法能否進一步優化。
(2)學生活動:①了解更多的排序算法;②運用排序算法解決更多實際問題;③根據自身情況做進一步提升。
設計意圖:拓寬學生視野;提高學生興趣;引出更多的問題。
8.總結
(1)教師活動:知識點歸納總結。
(2)學生活動:學生著重理解冒泡排序的思想、極值算法、兩種排序原理及程序實現。
設計意圖:突出教學重難點。
9.布置作業
(1)教師活動:①基礎性任務:完成從大到小的排序算法程序;②提高性任務:“目前奧運會參賽國家的出場次序是按照東道主國家的文字排列次序安排的(除東道主國家是最后一個出場)。現要求輸入一些國家的英文名稱和東道主英文名稱,請輸出他們在奧運會上的出場次序”。
(2)學生活動:請學生上機及時做上機作業。
設計意圖:整理、鞏固已形成的知識和技能。
● 教學評價
過程評價:課代表和教師在課堂記錄冊上,記錄課上表現出眾的學生,如:發言正確者,小組代表等。
作業評價:教師通過學生作業的完成情況,給予評價。
● 教學反思
通過教師引導學生自主探究,使學生掌握了 “選擇排序”和“冒泡排序”。學生探討待解決的問題與算法之間的關系,歸納出該算法與算法實現的一般規律。但由于學生基礎差異大,教學內容在難度選擇方面不是很合理。針對一些問題,如能采用較簡單的設計算法,或通過并不復雜的編制程序來求解問題,效果會更好。