冒泡排序教學(xué)設(shè)計(jì)_第1頁
冒泡排序教學(xué)設(shè)計(jì)_第2頁
冒泡排序教學(xué)設(shè)計(jì)_第3頁
冒泡排序教學(xué)設(shè)計(jì)_第4頁
冒泡排序教學(xué)設(shè)計(jì)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、高一冒泡排序教學(xué)設(shè)計(jì)一、設(shè)計(jì)思想算法與程序設(shè)計(jì)具有高度的抽象性和嚴(yán)密的邏輯性,教師難教、學(xué)生難學(xué)成為一個(gè)突出的現(xiàn)象。如何消除學(xué)生畏懼心理,充分調(diào)動(dòng)學(xué)生的積極性,正是我設(shè)計(jì)該課的主要目標(biāo)。程 序設(shè)計(jì)的基本方法是自頂向下地逐步求精和模塊化。自頂向下地逐步求精是指首先要對(duì)所設(shè)計(jì)的系統(tǒng)有一個(gè)全面的理解, 其次從頂層開始連續(xù)地逐層向下分解,直到系統(tǒng)的所有模塊都被分解為一條條的詳細(xì)指令時(shí)為止。模塊化是指把一個(gè)大的程序按照一定的原則劃分為若干 個(gè)相對(duì)獨(dú)立但又相關(guān)的小程序(模塊)的方法。依據(jù)這個(gè)基本方法,在教師的引導(dǎo)下,從簡(jiǎn) 單到復(fù)雜,從粗到精,各個(gè)難點(diǎn)分解,最后師生共同完成總流程圖的設(shè)計(jì)。在整個(gè)過程中, 教

2、師要積極引發(fā)學(xué)生的思考,讓他們真正參與進(jìn)來。二、教材分析本節(jié)內(nèi)容選自浙江教育出版社算法與程序設(shè)計(jì)第二章第三節(jié)和第五章第三節(jié)。以第二章內(nèi)容為主,下節(jié)課讓學(xué)生進(jìn)行第五章編寫程序及上機(jī)實(shí)踐。課程標(biāo)準(zhǔn)指出算法與程序設(shè)計(jì)模塊教學(xué)主要目的是“使學(xué)生進(jìn)一步體驗(yàn)算法思 想,了解算法和程序設(shè)計(jì)在解決問題過程中的地位和作用;能從簡(jiǎn)單問題出發(fā),設(shè)計(jì)解決問題的算法,并能初步使用一種程序設(shè)計(jì)語言編制程序?qū)崿F(xiàn)算法解決問題?!泵芭菖判虻乃惴俺绦?qū)崿F(xiàn)就很好地較全面地體現(xiàn)了這點(diǎn)。排序算法是使用頻率最高的算法之一,而冒泡排序是其中一種很典型而且相對(duì)簡(jiǎn)單的方法。它的學(xué)習(xí)同時(shí)為后面的選擇排序做了鋪墊。通過冒泡實(shí)例的學(xué)習(xí),可以提高學(xué)

3、生的程序設(shè)計(jì)能力,為今后在算法與程序設(shè)計(jì)方面的進(jìn)一步研究和學(xué)習(xí)打下基礎(chǔ)。三、學(xué)情分析我是先上第一、三、四章,再上第二和第五章。通過前面三章的學(xué)習(xí),同學(xué)們已經(jīng)了解 了算法設(shè)計(jì)的基本知識(shí),學(xué)會(huì)了利用自然語言和流程圖描述解決問題的算法,對(duì)排序中碰到的循環(huán)結(jié)構(gòu)的流程圖和循環(huán)語句以及數(shù)組變量的使用方法都已有基礎(chǔ)。但由于實(shí)踐比較少, 對(duì)以前知識(shí)的遺忘率比較高,畫流程圖還不太熟練,程序設(shè)計(jì)思想比較弱。因此由淺入深, 逐步引導(dǎo)比較適合學(xué)生的口味。四、教學(xué)目標(biāo)知識(shí)目標(biāo):掌握冒泡排序的原理;理解冒泡排序的流程圖;編寫冒泡排序的主要代碼; 能力目標(biāo):學(xué)會(huì)使用冒泡排序思想設(shè)計(jì)解決簡(jiǎn)單排序問題的算法;進(jìn)一步理解程序設(shè)計(jì)

4、的基本方法,體會(huì)程序設(shè)計(jì)在現(xiàn)實(shí)中的作用;情感目標(biāo):培養(yǎng)學(xué)生分析問題、發(fā)現(xiàn)規(guī)律的能力,激發(fā)學(xué)生學(xué)習(xí)熱情;培養(yǎng)良好的程序書寫習(xí)慣;五、重點(diǎn)難點(diǎn)重點(diǎn):理解冒泡排序原理及它的流程圖難點(diǎn):理解冒泡排序中的遍、次等概念(即對(duì)變量使用的理解)六、教學(xué)策略與手段采用講解法、演示法、討論合作、分析歸納法引導(dǎo)學(xué)生參與思考,用逐步求精的方式降 低學(xué)生的理解難度,化抽象為具體,由特殊到一般,有效地突出重點(diǎn)突破難點(diǎn)。七、課前準(zhǔn)備1教師的教學(xué)準(zhǔn)備:冒泡排序的課件2教學(xué)環(huán)境的設(shè)計(jì)與布置:多媒體網(wǎng)絡(luò)教室、投影機(jī)、多媒體教學(xué)平臺(tái)、flash軟件八、教學(xué)過程一、導(dǎo)入:創(chuàng)新情景我們經(jīng)常會(huì)碰到要排隊(duì)的情況,比如排座位,做操、排大合唱

5、隊(duì)伍等。今天我想請(qǐng)四位同學(xué)上來表演一下排隊(duì)。 我報(bào)了四位學(xué)生的名字,讓他們上來,并讓他們按報(bào)到的次序排起來。問:他們現(xiàn)在是按什么排的?一一學(xué)號(hào)(我有意按學(xué)號(hào)報(bào)的)。好,現(xiàn)在請(qǐng)你們按身高 從矮到高排起來。不一會(huì)四位學(xué)生就排好了。【設(shè)計(jì)意圖】一開始讓四位學(xué)生上來,其他學(xué)生覺得挺有意思的,所以注意力一下都集中過 來。我指著其中一位換到前面去的學(xué)生,問大家他是怎么知道自己矮的。這時(shí)下面有學(xué)生在喊,他本來就是矮的,還有學(xué)生說一看就知道了。我又請(qǐng)這位學(xué)生談?wù)勊?dāng)時(shí)的想法。一般學(xué)生會(huì)提到與別人比一下,矮的話就換上去了(如果說不出來,教師可以適當(dāng)引導(dǎo)一下)。 師:對(duì),肯定要比一下才知道,而且需要交換。有些學(xué)生

6、說一看就知道,其實(shí)也是看了以后 經(jīng)過大腦思維飛快比較得出的結(jié)論。排隊(duì)其實(shí)是一種排序:通過調(diào)整位置,把雜亂無章的數(shù)據(jù)變?yōu)橛行虻臄?shù)據(jù)。如Excel中的排序功能,通過本節(jié)課的學(xué)習(xí)我們自己也可以設(shè)計(jì)出類似的小軟件。二、新課排序的方法很多,這節(jié)課我們來學(xué)習(xí)其中一種比較典型的排序方法一一冒泡排序。1. 冒泡排序的基本思想教師可以先讓學(xué)生根據(jù)字面意思想像一下“冒泡”是一個(gè)怎么樣的情景一一氣泡一個(gè)一個(gè)從下往上不斷地冒上來。然后一邊講解一邊以文字形式給出冒泡排序的基本思想(書P31略)。特別要強(qiáng)調(diào)怎樣算一遍處理,而且每遍總是從“最下面起”,“自下而上”,比較“相鄰”兩數(shù)。我請(qǐng)剛才那四位學(xué)生仍先按學(xué)號(hào)排回來, 然

7、后演示利用冒泡排序法進(jìn)行從矮到高排序的 過程。學(xué)生在進(jìn)行表演時(shí),教師可以充當(dāng)解說員, 關(guān)鍵的地方進(jìn)行提示,如每遍的開始和結(jié) 束,同時(shí)引導(dǎo)學(xué)生認(rèn)識(shí)到第幾遍處理完找到的應(yīng)該是第幾矮的同學(xué)(或第幾小的數(shù))。【設(shè)計(jì)意圖】學(xué)生的表演比單獨(dú)拿出幾個(gè)數(shù)來比較往往更能吸引學(xué)生的注意力,學(xué)生們?cè)谳p松活躍的氣氛中明確了冒泡排序的基本方法。演示完畢,教師提出一個(gè)問題:4位學(xué)生共進(jìn)行了幾遍查找?為什么?然后再用一個(gè)flash動(dòng)畫演示規(guī)模為4的數(shù)組變量d的數(shù)據(jù)按非減次序進(jìn)行冒泡排序的 逐個(gè)過程,再次強(qiáng)化學(xué)生對(duì)冒泡排序過程的理解。 也為下面每一遍中兩兩交換情況的分析做 了鋪墊。2. 畫流程圖(按非減次序排序)這塊內(nèi)容是本

8、節(jié)課的重點(diǎn),采用自頂向下逐步求精的方式,由特殊到一般歸納總結(jié), 利用模塊化,各個(gè)難點(diǎn)一一突破。以具體的情況4個(gè)數(shù)為例,由最簡(jiǎn)單的流程圖一左側(cè)的圖開始,讓學(xué)生將冒泡排序過程用形象的語言表示出來:不斷冒起一個(gè)泡(最小數(shù)),于是轉(zhuǎn)化成右側(cè)流程圖。流程圖一(4個(gè)數(shù))冒泡排序1t不斷冒起一個(gè)最小數(shù)1f思考:以4個(gè)數(shù)為例,這里的 流程圖二(4個(gè)數(shù)) 張冒起一個(gè)攝小數(shù)1結(jié)束給出流程圖二左邊的圖之后,教師可以讓學(xué)生思考一下,這種結(jié)構(gòu)實(shí)際上屬于什么結(jié)構(gòu)一一循環(huán)結(jié)構(gòu)。但是左圖是不規(guī)范的, 我們需要用一個(gè)變量來控制循環(huán)次數(shù),從而引出用變量i來記錄正在執(zhí)行的排序的遍數(shù),它的值應(yīng)該是從1到3,每次做完后加1。讓學(xué)生回顧

9、一下循環(huán)結(jié)構(gòu)的流程圖模式,兩兩學(xué)生討論,合作將上面流程圖二左側(cè)的圖轉(zhuǎn)換成右側(cè)規(guī)范的流程圖。思考:如果參與排序的是 n個(gè)數(shù)呢?比較遍數(shù)與個(gè)數(shù)關(guān)系:遍數(shù)=個(gè)數(shù)-1【設(shè)計(jì)意圖】遍數(shù)與個(gè)數(shù)關(guān)系算是其中一個(gè)難點(diǎn),但無論是通過學(xué)生上臺(tái)表演以及4個(gè)數(shù)的flash動(dòng)畫演示,還是學(xué)生已有的認(rèn)知規(guī)律,他們還是可以比較容易得出這個(gè)結(jié)論的。所以 將上面流程圖中的“ i=3 ”改成“ i=n-1 ”即可得到下面左側(cè)這個(gè)流程圖。為了分解后面一個(gè)難點(diǎn),教師讓學(xué)生用簡(jiǎn)單的語言描述每次“冒起一個(gè)最小數(shù)”是怎么冒出來的:不斷兩兩比較交換,這也是冒泡排序也叫“比較交換”法的原因。于是下面左側(cè) 流程圖又可轉(zhuǎn)化成右側(cè)的形式。流程圖二(

10、n個(gè)數(shù))現(xiàn)在只剩下“不斷兩兩比較交換”還需要進(jìn)一步細(xì)化。如何進(jìn)行不斷兩兩比較交換?以4個(gè)數(shù)為例,可以回看剛才的flash動(dòng)畫。在程序中有些數(shù)據(jù)規(guī)律不是很明顯,如果用表格來列一下,可以極大地提高數(shù)據(jù)分析的有效性和準(zhǔn)確性,規(guī)律也更容易找出來。第幾遍依次與它的前一個(gè)數(shù)進(jìn) 行比較的第一個(gè)數(shù)依次與它的前一個(gè)數(shù)進(jìn)行比較的最后一個(gè)數(shù)共比較次數(shù)第1遍d(4)d(2)3第2遍d(4)d(3)2第3遍d(4)d(4)1引導(dǎo)學(xué)生發(fā)現(xiàn)規(guī)律:每次都是從最后面一個(gè)數(shù)開始比較,最后一個(gè)參與比較的數(shù)的下標(biāo)與比較的遍數(shù)有關(guān):遍數(shù)+1思考:共n個(gè)數(shù)呢?讓學(xué)生討論共n個(gè)數(shù),各遍比較的情況,特別是第i遍,完成下表的填寫:第幾遍依次與

11、它的前一個(gè)數(shù)進(jìn) 行比較的第一個(gè)數(shù)依次與它的前一個(gè)數(shù)進(jìn)行比較的最后一個(gè)數(shù)共比較次數(shù)第1遍d(n)d(2)(n-2 ) +仁n-1第2遍d(n)d(3)(n-3 ) +1= n-25 55 5第i遍d(n)d(i+1)(n-(i+1) +仁n-i5 55 5第n-1遍d(n)d(n)(n-n )+1=1這里又需要用一個(gè)變量來標(biāo)識(shí)正在參加比較的數(shù)組元素的下標(biāo),引進(jìn)變量j :記錄一遍處理過程中,當(dāng)前數(shù)組元素下標(biāo)。小結(jié)論:共n個(gè)數(shù),第i遍處理時(shí),j的值從n到i+1之間遞減,每次d(j)與它的前一個(gè)數(shù) d(j-1)進(jìn)行比較。【設(shè)計(jì)意圖】本節(jié)課最大的難點(diǎn)就是變量j的取值范圍,尤其是它的終值為什么是i+1學(xué)生

12、往往更是難以理解,因?yàn)樗窃趧?dòng)態(tài)變化的。而由特殊的4位數(shù)開始找出規(guī)律, 然后歸納推廣到一般的n個(gè)數(shù)就相對(duì)比較簡(jiǎn)單。 我花了比較長(zhǎng)的時(shí)間讓學(xué)生自己探討,目的是經(jīng)過充分思考得出的結(jié)論才會(huì)記憶深刻。為了加深他們的理解,我又用下表更直觀地來說明這個(gè)問題。我一邊講解,一邊手繪了如下的表格,說明當(dāng)要進(jìn)行第i遍處理時(shí),即要找第i個(gè)最小 數(shù)時(shí),此時(shí)前面i-1個(gè)最小數(shù)已經(jīng)找到(陰影部分),這部分不需要再參與以后的兩兩比較, 所以第i遍處理時(shí),第一次兩兩比較應(yīng)該是d(n)與它的前一個(gè)數(shù) d(n-1),以此類推,最后要比的是d(i+1)與它的前一個(gè)數(shù)d(i),至此此輪最小數(shù)就冒到第i個(gè)位置了。所以最后一個(gè)的“它”的

13、位置應(yīng)該是i+1。位置數(shù)組變量d1最后一次兩兩比較第一次兩兩比較“如果下面一個(gè)數(shù)比上面一個(gè)數(shù)小,就交換”。如果 ,就, 否則,其實(shí)是一種分支結(jié)構(gòu)。教師可以用生活中的實(shí)例說明(如果天氣好的話就去打球;如果60分以上就顯示合格,否則就顯示不合格),并簡(jiǎn)單回顧一下分支結(jié)構(gòu)的流程示意圖?!驹O(shè)計(jì)意圖】程序?qū)嵗罨瘜W(xué)生更容易接受。流程圖三(n個(gè)數(shù))不斷兩兩比較交換至此,所有問題、難點(diǎn)我們都全部細(xì)化,一一解決了,現(xiàn)在將流程圖三“兩兩比較交換”總流程圖n:參加排序的數(shù)組元素總個(gè)數(shù)i:記錄正在執(zhí)行的排序的遍數(shù),由1變到n-1j:記錄一遍處理過程中,當(dāng)前 數(shù)組元素下標(biāo),由 n變到i+1說明:虛線框部分即為第i遍

14、處理時(shí)“不斷兩兩比較交換” 的流程圖當(dāng)剛顯示這個(gè)總流程圖時(shí),學(xué)生還往往不太相信自己的眼睛。師:不要驚訝,這的確是我們通過自己的努力一起畫出來的??磥碓O(shè)計(jì)算法畫出流程圖也并不是什么天大的難事,只要我們有信心,由淺入深還是可以解決的。當(dāng)然別忘了說明一下這個(gè)總流程圖各部分的作用,并留1分鐘讓學(xué)生自己消化一下。3 學(xué)生體驗(yàn)冒泡排序“算法執(zhí)行過程”提供本書配套輔助軟件“運(yùn)行體驗(yàn)”文件夾中的“冒泡排序.swf ”,讓學(xué)生采用“單步執(zhí)行”模式。4 流程圖t程序語言可以通過對(duì)兩個(gè)變量和兩數(shù)互換語句的解決,最終得到主要參考代碼。(1) i:記錄正在執(zhí)行的排序的遍數(shù),由1變到n-1我們學(xué)過的循環(huán)語句不外乎for

15、, next和Do, Loop兩種,這里已知循環(huán)次數(shù)的情況下,用for , next比較簡(jiǎn)單。for i=1 to n-1冒起一個(gè)最小數(shù)(循環(huán)體)next i(2) j:記錄一遍處理過程中,當(dāng)前數(shù)組元素下標(biāo),由n變到i+1for j=n to i+1 step 1d(j)與它的前一個(gè)數(shù)d(j-1)進(jìn)行比較next j(3) d(j)與 d(j-1)互換k=d(j) : d(j)=d(j-1): d(j-1)=k教師可以利用醬油和米醋互換來做比喻,引導(dǎo)學(xué)生實(shí)現(xiàn)兩數(shù)互換的方法。對(duì)照總流程圖,自上往下,寫出主要參考代碼:for i=1 to n-1i記錄正在執(zhí)行的排序的遍數(shù),由1變到n-1for j

16、=n to i+1 step -1j記錄一遍處理過程中,當(dāng)前數(shù)組元素下標(biāo),由n變到i+1if d(j)d(j-1) then如果 d(j)比 d(j-1)小k=d(j): d(j)=d(j-1): d(j-1)=kd(j)與 d(j-1)互換en difnext jnext i【設(shè)計(jì)意圖】因?yàn)橐褜W(xué)過VB基本知識(shí),對(duì)賦值、選擇和循環(huán)這三種語句都有基礎(chǔ),所以流程圖畫出來以后,轉(zhuǎn)換成程序語言并不太難。趁熱打鐵,順理成章之間完成了主要代碼的編寫,為下節(jié)課學(xué)生上機(jī)實(shí)踐打下基礎(chǔ)。顯示參考代碼后,教師要引導(dǎo)學(xué)生養(yǎng)成良好的習(xí)慣,用規(guī)范的代碼書寫格式有利用于程序的調(diào)試,還增加了可讀性。5 拓展:優(yōu)化冒泡排序至U

17、網(wǎng)上搜索冒泡排序的改進(jìn)方案?!驹O(shè)計(jì)意圖】為尋找解決問題的最佳方案而產(chǎn)生更好的學(xué)習(xí)目標(biāo)。尤其是一些理科比較好對(duì)程序設(shè)計(jì)比較感興趣的學(xué)生,離開機(jī)房的時(shí)候還一路在討論著。九、知識(shí)結(jié)構(gòu)或板書設(shè)計(jì)用課件顯示:1.各個(gè)流程圖(見上面);2.主要參考代碼(見上面)十、作業(yè)設(shè)計(jì)設(shè)計(jì)一個(gè)評(píng)分系統(tǒng)的流程圖:有n個(gè)評(píng)委,最后得分為去掉一個(gè)最高分與一個(gè)最低分后 的平均分?!菊n后反思】1. 如何用人的思維模擬計(jì)算機(jī)的工作過程我讓學(xué)生上來排隊(duì)演示,本想讓他們能用不同方法,以便能引到各種排序方式。但后來 發(fā)現(xiàn)這太難了。因?yàn)槿耸怯醒劬驮姓J(rèn)知能力的,有些事想當(dāng)然就可以解決。但計(jì)算機(jī)與人不同,它看不見、摸不著這些數(shù)據(jù),所以不可能像人一樣來完成任務(wù)。其實(shí)計(jì)算機(jī)解決問 題的關(guān)鍵,就是要把人解決問題的每一步思維過程描述出來。這也是所有學(xué)程序的人尤其是初學(xué)者最難的地方。然而程序設(shè)計(jì)思想并不是一下子就能培養(yǎng)的,我們高中階段只能是慢慢引導(dǎo)學(xué)生學(xué)著去分析問題,將問題解決方法步驟化。所以課后我在想,是否可以在上這塊內(nèi) 容之前給學(xué)生布置一個(gè)任務(wù):閉上眼睛,將十根亂排的長(zhǎng)短不一但相差不大的的小木棍從短 到長(zhǎng)排起來,要求每次比較最多只能兩根。 事后我也請(qǐng)一些人做過實(shí)驗(yàn),發(fā)現(xiàn)每個(gè)人都有自己不同的想法,但各自的原理都可以從程序中的各種排序法中找出原型。2. 細(xì)節(jié)也不容忽視

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論