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