信息技術教學案例評比——選擇排序的算法實現(金華第一中學)
教師:我們一起觀察剛才得到的流程圖。其中,第 i 步操作是:從位置i到位置n中,找最小的數的位置,與位置i的數據交換。我們可以用怎樣的結構來實現?
學生: 循環結構,for語句
for i = 1 to n-1
1. 從位置i到位置n中,找到最小的數的位置。
2. 與位置i的數據交換。
next i
教師:非常好! 我們可以根據這個框架來實現程序。要真正實現,我們還需要解決以下3個問題:
1. 數據怎么存儲?
(集體回答: 使用數組存儲。)
2. 如何從位置i到位置n中,找到最小的數的位置k?
(結合第一關的游戲解說,然后由學生回答。)
3. 如何實現兩數交換?
(結合程序填空,解決這個問題。)
教師:解決了這個問題,我們一起來看一下這個程序(展示選擇排序的一段不完整的程序,讓學生填空)。
教師:終于知道怎么用程序來實現排序了,我們來解決一下剛才的游戲成績的排名問題。(回歸剛上課時拋給學生的問題,如何實現成績的排序?讓學生用已經學會的知識解決這個問題。)
5.牛人大賽第三關(10分鐘)
教師:請進入第三關,打開中國牛(單機版),這是我們剛才玩的游戲的單機版,選手的成績將進入這個列表。但是呢,這個排名按鈕的功能還沒有完成,我們要做的就是,實現這個按鈕的功能(界面見圖四,要完成的功能代碼見圖五)。
圖四 中國牛(單機版)
圖五 程序填空
在這個問題中,當前的成績數量在變量rs中,成績記錄在數組元素 cj(1)-cj(rs)中。
要求: 1. 將數組cj中的數據從小到大排序,把程序補充完整。
2. 程序補充完整后,試著玩一玩這個游戲,使得數據有3組以上,然后測試排序按鈕功能是否已經實現。
3. 完成后,請進入站點的課堂自評欄目,完成課堂自評,再研究一下這個程序,看看能不能改成從大到小排序。
學生活動:學生參與并完成第三關的任務。
教師活動1:巡視并指導學生完成任務,并通過教學輔助網站實時通報學生的任務完成情況。
教師活動2:根據學生的完成情況,講解程序。
(如果有時間,學生再進一步完成第三關與自評)
(頒獎前,1分鐘完成課堂自評)
6. 課堂小結 (3分鐘)
(1) 頒獎
教師: 大家已經闖過了牛人爭霸大賽的三關,我們來看一下總成績。恭喜這3位牛人中的牛人,王者中的王者。為3為牛人頒獎。
(2) 總結
教師:我們一起來總結一下今天的收獲。
第一點,在今天這節課里,我們看到我們身邊牛人很多,我們要做牛人,更要做“牛王”。有想法、有行動、認定目標后能堅持到底的人最牛(牛王)!
第二點,我們今天學會了選擇排序,并用vb實現了這個算法。但是,算法是死的,我們要靈活應用,才能取得更好的效果!
第三點,今天大家所用的游戲程序都是用vb編寫的,都是些簡單的東西,同學們可以拿去參考一下,制作類似的小程序呢?我期待著,期待大家變得“更牛”!
【教學反思】
回顧這堂課,我自己比較滿意的有三點。
第一,是在游戲中解決了課堂的難點,讓學生學得很輕松。“從生活中來,到生活中去,寓教于樂”這種方法大有可為。