第一篇:《對分查找及其算法實現》教學設計
《對分查找及其算法實現》教學設計
湖北省巴東縣第一高級中學 劉少銀
一、教材學情分析
本次課是浙江版高中信息技術選修教材《算法與程序設計》第二章算法實例第四節查找中的一部分內容。由于教材體系不適合校本實際,我們在教學過程中對教材體系作了如下調整。
講授順序:第一章 算法和算法的表示、第三章 面向對象的程序設計的基本知識、第四章 VB程序設計初步、第二章算法實例,第五章 算法實例的程序實現穿插在相關內容教學中完成。
因此在前期教學中學生已經初步掌握了算法基礎及算法表示,VB程序設計初步等。本次課是讓學生掌握對分查找的思想及算法的實現。
二、教學目標
知識與技能:理解對分查找的基本含義、方法,理解并能畫出對分查找的流程圖;
過程與方法:通過案例分析、直觀觀察,增強分析問題和解決問題的能力;
情感、態度與價值觀:感受信息技術與現實生活的關聯,激發對信息技術學科的求知欲,培養主動學習和使用信息技術的意識;養成科學的學習態度,不迷信書本、不迷信權威。
三、教學重難點
教學重點:對分查找的基本方法及注意事項;
教學難點:對分查找算法的實現。
四、教學策略
·以“猜數”游戲導入,引入對分查找的概念;
·師生討論、生生討論、生生互助;分析、歸納、總結,理解并掌握對分查找的基本思想;
·采用分類研究、分享成果、課后練習等學習方法,理解對分查找方法及基本主要特征;
·采用自然評價、師生評價、生生評價等形式對學習進行過程性評價。
五、教學過程
1.游戲激趣,釋疑對分查找
(三個程序圖片)
(初始界面)(人工猜數界面)(程序猜數界面)
準備:幾張白紙,一支記號筆。啟動猜數程序。
師:同學們好!大家看到前面的程序了嗎?它是一個什么程序呢?
同學:猜數游戲程序。
師:對,這是我用VB針對李泳主持的“幸運52”中猜商品價格環節開發的一款程序,我先來說說針對主持人的部分:當李泳宣布商品的價格范圍時,比如10000元內,猜商品價格的人就可以在猜數范圍欄起始欄填上“0”,終至欄填“10000”,然后再將鼠標移到猜數欄中單擊,程序即提示:“準備!倒計時30秒”,當單擊提示處,猜價格倒計時開始,猜價格人即可在猜數欄上填上所猜價格的數值,然后根據主持人的提示,選擇“不對”重新填寫商品價格或選擇“正確”讓所猜價格在“猜得結果”欄內顯示正確結果并停止計時,提示欄中即顯示“您猜了M次,對了,恭喜您”。
師:大家覺得程序光有這樣的功能神奇嗎?
生:不神奇。
師:對,我也是這樣認為的。這個程序神奇的地方在它能幫助猜商品價格人在規定的時間內,根據主持人的提示準確地猜出商品的價格,而且猜中率100%,所以現在“幸運52”停播了,大家知道為什么嗎?
生:不知道。
師:就是因為我開發了這個程序呀!
生:(有的說信,有的抱著懷疑的態度不吭聲,也有說不信的)
師:有同學愿意上來試試嗎?
師:你在紙上寫下你的數值范圍和要猜的數,然后給大家看一下,別說出來,別讓電腦聽見了。
師:好,操作程序讓程序幫忙把寫的數找出來。
(程序找到正確的數)
師:神奇吧。
師:還有那位同學愿意試一下。
師:同樣,你還是先寫下要猜的數和范圍100~200,這次我們不讓大家看到他要猜的數,請大家幫忙記下程序每次出現的數字。
師:電腦程序也猜出了正確結果:132。
程序給出的數字是:
第一個數是:150
第二個數是:12
5第三個數是:137
第四個數是:1
31第五個數是:13
4最后是:13
2大家能看出什么規律了嗎?
生:看不出
師:單純從這幾個數當中是看不出什么規律,現在我們依次把這些數放到數軸上,再看一下,大家看能找出什么規律呢?
同學發言??
師:大家認為他說的怎樣?為什么不鼓掌呀!
師:對,正如剛才的同學說的那樣,程序是在給定范圍內依次找中點方法來找到我們要找的最終數值,這就是我們今天要討論的一種新的查找方法:對分查找。
師:我們剛才的游戲中的數列是序的嗎?
生:是有序的,升序排列的。
師:如果是降序能用對分查找方式查找嗎?
生:能。
師:大家想一想,如果我們打亂數據的排序順序,在沒有排序的數列中能否用對分查找的方法,找到我們想找到的數據?
同學:不能。
師:對,這就是對分查找方法的一個特征,或稱為條件。因為我們是根據數據的大小找到它在數列中的位置。
【設計意圖】通過游戲和對程序給出數值在數軸上的分布分析,讓學生初步理解和掌握對分查找的方法及前提條件,為后一階段對分查找算法的實現作好鋪墊。
2.分析實例,實現對分查找算法
師:下面我們一起來看一下程序是怎樣一步一步的給出以上數據并最終找到“132”這個數的。
師:首先在100至200之間找中點,然后再用中點值150與所要找的數132比較,得出的結論是所要找的數在100至150之間的數,一下數值的范圍就縮小了一半,終止變量j的值就由200變成了150;第二次查找時,程序就給出100至150的中點值125;當程序進行第三次查找時,起始變量i的值就被修改為125,它們的中點值應該是:(125+150)/2=137.5。有小數了,怎么辦?
生:??(有點茫然)
師:對于小數,程序可以繼續查找,但有可能要增加查找次數。為了保證在整數范圍內查找,我們就要對含小數的中間值進行處理:取整。大家還記得我們學過VB的取整函數嗎?
生:int。
師:對。即int(137.5),結果是多少?
生:137。
師:所以我們查找i到j范圍內的中點值的表達式應該為:m=int((i+j)/2)。
師:依次類推,程序會依次給出131、134、132即找到了要找的數。
師:請同學們根據算法逐步求精的原則在下面畫出流程圖。
(展示如下流程圖,然后請同學完成完善對分查找的算法流程圖)
流程圖補充完善后的結果:
【設計意圖】通過對程序給出中間數的分析,幫助學生理解對分查找算法實現的方法,為學生順利完成對分查找算法流程圖給予理論與實踐上的支持。
3.推出特例,完善對分查找算法
師:同學們,剛才我們完成的對分查找的流程圖;下面請同學們用剛才的查找方法分析一下在199至200范圍內要找200這個數,能找到嗎?為什么?如何解決這個問題?
(將教室內學生按座位分成若干組,進行討論。每個組推選一名小 組長,完成后作小組發言)
??
(每一小組完成發言后,老師或點評,或讓學生點評)
師:根據剛才同學的討論分析,那我們先前給出的流程圖就有了一些缺陷,怎么修改?
(在同學們的發言聲中,修改完善流程圖)
修改后的流程圖如下:
【設計意圖】給出特例,讓學生相互討論、互助學習,歸納總結出上述流程圖中出現問題的癥結所在,并給出正確的流程圖;由此可讓學生體驗到科學探究的方法,從而培養學生的科學態度與探索精神。
六、課后作業
師:1.在前面的取整中我們用了取整函數int,大家想一想能不能用四舍五入函數處理?如果用四舍五入函數(round)處理,流程圖又將怎樣修改?
2.請看教材P40-43,比較我們所給出的流程圖與教材上的流程圖有什么差異?兩個流程圖最后結果是否一致,那個流程圖的結果有問題,問題是怎么造成的?請寫出一篇500—800字的小論文。
(提示:認真閱讀教材P40至P43內容,并分析教材中所給算法的邏輯錯誤)
作業提交方式:電子郵件(校內、校外均可)
郵件名稱:登分號+姓名+論文題目
作業提交地址:bdxyz@qq.com
【設計意圖】作業(1)擴充課堂內容,豐富學生知識面,豐富學生分別學習內容;作業(2)通過兩個流程圖之間差異性比較,引導學生判別書本上所給出流程圖的邏輯錯誤,從而培養學生:1.科學的學習態度和精神,不迷信教材、不迷信權威;2.運用論文等形式來表達自己觀點;3.通過學生自己的分析、探索,找出教材中的錯誤。
七、教學反思
整節課充滿了笑聲和掌聲,課堂氣氛活躍,學生參與度高。老師的主導作用和學生的主體地位得到了充分的體現。學生在師生互動、生生討論、生生互助中比較好地掌握了對分查找的思想和算法實現,教學效果好。但由于時間關系,沒有將程序的源代碼展示給學生,讓學生有一種意猶未盡的感覺是本次課的一個缺憾。
第二篇:對分查找算法教案
對分查找算法教案
一、設計思想
對分查找是計算機科學中的一個基礎算法。對于一個基礎算法的學習,同樣可以讓學生在一定的情境下,經歷分析問題、確定算法、編程求解等用計算機解決問題的基本過程。本堂課以一個游戲暖場,同時激活學生的思維,引導學生去探索游戲或生活背后的科學原理。為了讓學生在教師的引導下能自我解析算法的形成過程,本課分解了問題動作,找出問題的全部可能情況,在對全部可能情況總結歸納的情況下,得出對分查找的基礎算法,最后在程序中得到實現,從而使學生建立起對分查找算法形成的科學邏輯結構。
二、教材分析
本課的課程標準內容:
(一)計算機解決問題的基本過程(1)結合實例,經歷分析問題、確定算法、編程求解等用計算機解決問題的基本過程,認識算法和程序設計在其中的地位和作用。
(三)算法與問題解決例舉 C 查找、排序與問題解決
(2)通過實例,掌握使用數據查找算法設計程序解決問題的方法。本課的《學科教學指導意見》內容:基本要求:1.初步掌握對分查找算法。2.初步掌握對分查找算法的程序實現。
教材內容:第二章 算法實例 2.4.3對分查找和第五章5.4查找算法的程序實現,課題定為對分查找算法及程序實現,安排兩個課時,第一課時著重是對分查找算法的形成和初步程序實現,第二課時利用對分查找算法解決一些實際問題的程序實現,本教學設計為第一課時。
從《課程標準》和《學科教學指導意見》對本課教學內容的要求來看,要求學生能從問題出發,通過相應的科學步驟形成對分查找的算法。對學生來說,要求通過這一課時的學習能初步掌握或了解對分查找的前提條件、解決問題的對象,明確對分查找算法結構和對分查找的意義。
三、學情分析
學生應該已經掌握程序設計的基本思想,掌握賦值語句、選擇語句、循環語句的基本用法和VB基本操作,這節課學生可能會遇到的最大問題是:如何歸納總結對分查找解決不同情況問題的一般規律,鑒于此,在教學中要積極引導學生采取分解動作、比較遷移等學習策略。(說明:由于這個課是算法與程序設計課,對學生有一定的要求,學生至少應該熟悉算法的基本概念,掌握順序結構、分支結構和循環結構,天津的學生雖然學的是Java,但是在算法這一塊上都是相通的,如果對算法流程,三種基本結構原理和語句如果都掌握的話,理解這個課應該沒什么大的問題,VB只是一個程序實現的工具。但如果學生沒有較好的算法基礎,沒有前續的知識作輔墊,這節課會比較困難,教師就要靈活處理。)
四、教學目標
知識與技能:理解對分查找的概念和特點,通過分步解析獲取對分查找的解題結構,初步掌握對分查找算法的程序實現。
過程與方法:通過分析多種不同的可能情況,逐步歸納對分查找的基本思想和方法,確定解題步驟。
情感態度與價值觀:通過實踐體驗科學解題的重要性,增強效率意識和全局觀念,感受對分查找算法的魅力,養成始終堅持、不斷積累才能獲得成功的意志品質。
五、重點難點
教學重點和難點:分解并理解對分查找的過程。
六、教學策略與手段
1、教學線索:游戲引領---提出對分查找原理---解析對分查找的算法特征---實踐解決問題。
2、學習線索:分解問題---歸納問題---實踐提升,在三個階段的不斷推進中明確對分查找算法,總結規律。
七、教學過程
1、新課導入
(1)熱身:游戲(2分鐘)教師展示一件特色物品,讓一個學生來猜這個物品的價格,其他學生只需要根據這個學生猜出的價格提示“高了”或是“低了”,如果學生能在約定次數內猜對這個物品的價格,就把這件物品“贈送”給他……。
(2)討論:你覺得怎么樣猜可以猜的快一點呢?有什么技巧嗎?你從這個游戲當中得到什么啟示?(2分鐘)
(3)教師引導:這個世界不是缺少問題,而是缺少發現,其實在這個游戲的背后,含有一個非常經典的算法。引出對分查找的的概念。(1分鐘)
2、新課:
教學步驟一:分析對分查找的原理和方法。(3分鐘)
(1)對分查找是效率很高的查找方法,但被查找的數據必須是有序的。
(2)首先將查找的數與有序數組內處于中間位置的數據比較,如果中間位置上的數與查找的數不同,根據有序性,就可確定應該在數組的前半部分還是后半部分繼續查找。
(3)在新確定的范圍內,繼續按上述方法進行查找,直到獲得最終結果。
教學步驟二:分解查找過程中可能出現的所有情況。(第一種情況5分鐘)
以規模為10的升序數組d為例:用一個數組d(1 to 10)來存放序列,用i表示查找范圍的第一個數組元素的下標,j表示最后一個數組元素的下標,mid表示中間位置元素的下標。(1)
第一種情況:要找的值在后半部分;
以查找鍵KEY=48為例分析
第一次查找::
范圍d(1)~d(10),mid= └(1+10)/2┘, d(mid) 所以可以確定接下來要找的范圍是后半部分。 比較后i=mid+1 第二次查找: 范圍d(6)~d(10),mid= └(6+10)/2┘,d(mid) 所以可以確定接下來要找的范圍是后半部分。 比較后:i=mid+1 第三次比較: 范圍d(9)~d(10),mid= └(9+10)/ ┘2,d(mid)=Key,找到了。 思考:如果要找的是52? i,j,mid分別是多少? 總結一: 如果d(mid) 教學步驟三:繼續分解對分查找算法中包含的其他情況。(9分鐘) 討論:兩人為一合作小組,分別畫出key=17和key=20的查找示意圖,并用共同的智慧討論并回答以下兩個問題。 問題1:當d(mid)>key時,新查找的范圍在哪里?i和j如何變化? 問題2:在什么情況下查找會結束?繼續進行重復查找的條件是什么? (2) 第二種情況:要找的值在前半部分; 以查找鍵KEY=17為例分析: (3)第三種情況:要找的值找不到;以查找鍵KEY=20為例分析: 總結二:如果d(mid)>key ,新查找范圍為上半部分, i值不變,j=mid-1。 總結三:(1)找到了查找會結束;(2)在i<=j時重復查找,如果還是找不到,查找也會結束。 教學步驟四:對各種情況進行歸納總結。(2分鐘) (1)Key與d(mid)的大小比較影響i,j的取值的規律: i的取值規律:if d(mid) j的取值規律:if d(mid)>key then j=mid-1,用分支結構實現。 (2)繼續進行重復查找的條件: i≤j,用循環結構實現。 教學步驟五:用流程圖來描述對分查找算法(3分鐘) 教學步驟六:對分查找算法的初步程序實現。(9分鐘) 教師事先設計好VB窗體,學生只需在相應的程序體輸入代表算法思想的關鍵語句。 附主要程序體: Private Sub Command2_Click() Dim key As Integer, mid As Integer, i As Integer, j As Integer key = Val(Text1.Text)i = 1: j = 10 Do While ____(1)_______ mid =(i + j)2 If d(mid)= key Then Text2.Text = “找到了,是第” & mid & “個” Exit Sub End If If _____(2)_______ Then _____(3)_______ Else _____(4)_______ End If Loop Text2.Text = “對不起,找不到!” End Sub 教學步驟七:評價。(4分鐘) 用過程反饋表評價學生的程序實現情況,學有余力的同學可以進一步討論或實踐問題:如果是降序序列,該怎么樣改動程序?如果序列元素不是10個,而是100個或更多呢? 教學步驟八:盤點對分查找法的核心內容,總結提升。(3分鐘)(1)采用對分查找的前提是數據序列必須是有序。 (2)由于對分查找過程中的每次比較都能使得搜索空間減半,對分查找將不會使用超過┌log2(n+1)┐次來找到目標值。 (3)提升對分查找算法的實際意義:同學們可能還沒有意識到對分查找是多么高效,那不妨設想一下在一個有一百萬個人名的電話簿中找一個名字,對分查找可以讓你不超過21次就能找到指定的名字。如果你能夠將世界上所有的人按照姓名排序,那么你在35次內就能找到任何人。 教學步驟十:總結本課的科學解題過程。(2分鐘) 八、作業: 以下的三組元素序列能采用對分查找法來查找嗎? (1)7,22,25,35,44,61,88,99,100 (2)22,46,77,89,67,99,33,20,98 (3)87,75,58,44,23,11,7,2,0,-8,-10 2、設計一個能用對分查找算法思想解決的實際問題,用自然語言描述即可,為下節課作準備。 《3.4算法及其實現》教學設計(第一課時) 一、設計思想 隨著新課程改革的深入,信息技術課程理念發生了巨大的變化,具體表現為:強調培養學生的信息素養;為學生打造終身學習的平臺;關照全體學生的發展;強調培養學生解決問題的能力,運用信息技術創新實踐的能力,與人交流合作的能力。新課程要求教師必須改變傳統的“教教材”,要 “用教材去教”,要求教學模式由以往的“以教師為主體”轉變到“以學生為主體”,提倡“任務型”教學,關注學生的情感態度價值觀。 本節課我根據新課標,結合學生的特點對教材的內容進行了深入的挖掘和思考,創作了學生學案,創設豐富的教學情境,提供多樣的學習資源。教學以生活中的實際問題和有趣故事作為任務驅動,讓學生采用自主、合作、探究、體驗等學習方式,通過意義建構獲得新知,充分體現學生的主體地位。 二、教材分析 《算法及其實現》是普通高中課程標準實驗教科書——《信息技術基礎(浙江教育出版社)》的第三章第四節內容,該教材是按照高中信息技術課程標準編寫的實驗教材。通過學習本節內容可以達到“初步掌握用計算機進行信息處理的幾種基本方法,認識其工作過程與基本特征”的課程標準要求。 本節內容是第三章的難點,介紹了算法的基本概念和算法的表示方法。相比較前三節的內容要抽象的多,二本節又是第四節的第一課時,是第二課時《程序設計實例》的知識基礎,起到承上啟下的作用。本節的學習重點是算法的概念、特點及表示方法;難點是用流程圖描述算法。 三、學情分析 從思維品質上來說:高一學生已有使用計算機的感性經驗,已經可以 超越簡單的技術操作,具備了接受更高層面文化的能力。學生的思維能力已接近成人,他們有旺盛的求知欲,較高的學習自覺性,并具備一定的自學能力,已具有較強抽象思維和邏輯推理能力。 從知識儲備上來說:經過前面的學習,學生已經可以使用計算機處理一些實際問題,例如:利用計算機對文字、圖片、多媒體信息的處理,但是學生還不了解了使用計算機解決問題的一般過程和解決方法,以及以何種方式來表示。 四、教學目標 (一)、知識與技能: 1、理解算法的含義; 2、了解算法的特點及表示方法; 3、學會用流程圖表示算法。 (二)、過程與方法: 1、能初步利用算法解決簡單的問題; 2、培養學生的理論聯系實際能力和動手操作能力。 (三)、情感態度與價值觀: 1、培養學生學習信息技術課程的興趣; 2、培養學生主動探究和合作學習的意識和能力。 五、重點難點 教學重點:算法的含義、及表示方法 教學難點:用流程圖描述算法 六、教學策略與方法 1、學案導學,自主學習 2、問題導入,激情引趣。 3、創設情境,任務驅動。 4、合作探究,交流提高。 七、課前準備 1.教材、教材配套的教師用書、配套光盤 2.學生學案 3.教學課件 4、多媒體教室/大屏幕投影儀 5、將學生分為4人一組,每組都有優、中、差三個不同層次的學生。 八、教學過程 (一)新課導入 同學們,上節課我們講了聲音和視頻處理,都是要利用計算機內存儲的應用軟件來解決處理問題,同樣,像我們之前學習的文字處理軟件、表格處理軟件、多媒體報告處理軟件也都是已經編制好的軟件幫助我們處理信息。 但是,也有許多問題是沒有現成的軟件可以借用的,因此,我們必須根據不同的問題和工作要求,設計針對特定問題的解題步驟,編制專用的軟件來解決這些問題。 今天開始我們一起來看看如何實際編寫一個簡單的程序來解決一個特定的問題。 (二)新課教學 1、算法 (1)師生共同完成游戲 師:首先,我們一起來做一個農夫過河的游戲(游戲內容分別用文字和flash動畫顯示在屏幕上),請同學們按小組討論,幫農夫設計一個具體的步驟,安全地將這三樣東西帶過河。 生:分組討論過河的方案,最終得出了成功的方案。 師:讓小組代表與全班同學分享各自的方案,評價各組的方案進而得出正確的步驟并總結: 同學們,這6個步驟是這個游戲中是不可缺少的動作,否則就不能完成總體目標,使問題獲得圓滿解決。因此,在解決某一問題時我們要把各個步驟都精確的考慮到。 上面這個例子中的解決問題的步驟其實就是編制程序的基礎:算法。設計意圖:游戲激發學生的興趣,讓學生在完成游戲中已經編出了一個解決問題的算法,讓學生輕松進入新知識的學習。 (2)學生閱讀,完成學案 師:現在請大家閱讀課本3.4.1第一二自然段,完成學案1、2、3題。學生:閱讀課本制定內容,完成學案。 學生完成學案時,教師要走進學生,觀察學生的完成情況。完成后,學生要對學案的完成做簡要展示,教師要對學生的完成情況作簡要總結。 師:大家完成的都很好,請同學們告訴我有那些生活中算法的實例呢? 生:回答(多樣) 師:大家說的都很好,樂譜、菜譜、廣播體操圖解、搬家的次序等等都是生活中的算法,就拿“搬家”來說,是不是設計的次序不一樣,搬家的效果就不一樣呢?也就是說,解決同一個問題,會有很多種不同的算法,那么什么樣的算法更好一點呢? 現在請大家閱讀課本3.4.1剩余部分,完成學案4題。學生完成學案時教師引導: 師:方法甲和其他兩個方案比較優秀在哪里?節省了什么? 我們在設計算法時應如何做呢? 生:回答 設計意圖:以學案的形式給學生一個一個的任務,讓學生自己去嘗試、探究,然后在教師的指導下進行小結,接下來再嘗試,這樣就形成螺旋式的知識學習和能力提高過程。學生的主動和教師的主導都得到充分的發揮。在本節課的教學設計中,教師重視的不應該是結果,而是過程。 2、算法的表示 (1)常見算法的表示形式 師:大家已經知道我們可以編寫算法來解決生活中的問題,那么我們可以用什么形式來表示算法呢?請大家閱讀課本3.4.2第1自然段,完成學案5題。 完成后要挑選學生回答。(2)流程圖 師:通過大家的閱讀和總結,流程圖是形象直觀,便于掌握的描述算法的形式,因此我們需要認真學習如何用流程圖描述算法,現在請大家閱讀課本3.4.2中2、3、4自然段,完成學案第6題。 生:完成學案第6題。(3)用流程圖描述算法 師:我們已經知道了流程圖的功能,現在我們就嘗試著用流程圖來表示算法,需要注意的是在用流程圖描述算法之前必須能能夠用自然語言描述算法,否則也無法用流程圖來描述。 操作一:將大象裝冰箱 操作一由老師講解演示,學生聽講。 操作二:學校上體育課,一般在操場上課,遇到下雨或下雪,改到室內上課,用流程圖表示。 操作二由學生獨立完成。 生:聽老師講解完操作一之后,完成學案的第7、8題。 操作三:對任意輸入的三個整數x,y和z,找出并輸出其中的最大值。 操作三老師講解。 師:操作三用自然語言描述: 1.輸入變量x,y,z 2.比較x,y。如果x>y,則x存入以max命名的存儲單元中;否則,y存入max 3.比較z和max。如果z>max,則將z存入max。4.輸出max。用流程圖描述: 課堂練習:對任意輸入的三個整數x,y和z,找出并輸出其中的最小值。用流程圖表示。 聽老師講解后,完成學案第9、10題。 設計意圖:本環節設計是充分調動學生的積極性和主動性。教學中不斷的給學生新的任務,讓學生主動學習,增強技能,在練習設計中注意難度的梯度,讓學生不斷的戰勝困難,而不是一下就被困難嚇倒。最后,通過不斷的練習,讓學生真正掌握知識和技能。 (三)課堂小結 本節課學習了算法的定義、特征、優化和算法的表示方式,并著重學習了如何用流程圖表示算法。請同學們在課后完成學案第11、12題,并在小組之間交流。 九、課后作業 1、完成教材P71頁上的“練一練”中的第(1)、(2)兩題。 2、觀察猜數字游戲,嘗試畫出猜數字游戲算法的流程圖。 設計意圖:課后作業分為課內作業和課外拓展兩部分,讓不同層次的學生分別完成。課外拓展部分的算法比較復雜,涉及到了循環結構,可讓學生在完成思索的過程中預習第二課時的內容。 十、學生學案(另附) 【問題研討】 1、信息技術教育,采用任務驅動的形式,圍繞一個能激起學生濃厚興趣的主題展開教學,以學生的探究過程作為學習載體,較之與傳統的信息技術課教學,以單純的計算機知識和計算機操作作為教學內容,更能激發學生強烈的學習欲望。 2、采用學案導學的方式,學生手中都有學案,方便了學習,梳理了思路,提高了效率,更主要的是真正實現了學生主動學習,教師只是引導的教學模式,更加貼近新課程改革的要求。 3、以小組協作學習方式展開教學,使學生的知識、技能的獲取變成了多渠道。學生相互之間的只言片語,遠勝于教師長篇大論的講解和繁瑣的演示操作,大大提高學生的學習效率和學習興趣。同時高、中、低不同層次的學生組成小組,充分利用優秀學生資源,進行同伴互助,縮小生生間的差距,改變兩極分化的現狀。同時也減少教師的課堂工作量,避免了很多學生同時提問教師忙不過來的尷尬局面。 4、自主探究的學習方式,要求學生具有一定的知識準備,并不適合于所有內容的教學。當學生對所要學習的知識毫無所知時,讓學生去自主探究要花費很多的時間和精力,大大降低了學生的學習效率,由于受課時限制應有選擇的采用。 《算法及其實現》教學設計 XXXXX中學 XXX 一、教材分析 在前面的章節已經提到,用計算機解決實際問題的過程中,有兩個重要的環節——設計算法、編制和運行程序實現算法,所以算法是學習程序設計的前提和依據。算法是理論知識,具有一定的抽象性,學生理解起來比較困難,為了不讓學生害怕后面程序的學習,在選擇例子的時候降低了難度,都是貼近學生生活易于理解的例子。上好本章的第一節,對學生學習算法和編程興趣的影響十分重要。 二、學情分析 該課程的學習者是高中一年級的學生,這個階段的學生已具有接受抽象事物的能力、同時邏輯思維、好奇心強,對新鮮事物和新理念、新知識興趣濃厚,但是怕吃苦,遇到難題,易退縮。雖然通過初中信息技術課程的學習,掌握了一定的利用計算機解決問題的知識,然而大多數的同學對算法還是比較陌生的。基于這樣的情況,在教學中,要盡量的把抽象的問題具體話,和生活中的事例緊密聯系,化難為易,學以致用,激發學生的學習興趣和動機,使同學們在快樂中學習算法及程序設計。 三、教學媒體 a)b)多媒體網絡教室 教材、教學幻燈片、圖片。 四、教學方法 主要以任務驅動法、小組討論為主,講授為輔。充分調動學生的主觀能動性,已達到主動式學習、探究性學習和創新性學習。 五、教學目標 1、知識目標 (1)理解算法的含義,能從生活中準確舉例說明使用算法的例子; (2)了解算法的表示形式,有自然語言、偽代碼、流程圖;(3)掌握用流程圖描述算法的方法。 2、技能目標 (1)培養學生分析、解決問題的能力;(2)會用流程圖描述算法,解決問題。 3、情感目標 (1)讓學生明白解決任何問題有應具有清晰地思路和步驟; (2)通過對算法的設計,提高學生對算法的興趣,培養學生的邏輯思維能力。 重點:1.如何分析問題、設計算法。2.流程圖的畫法。 難點:1.如何分析問題、設計算法。2.流程圖的畫法。 六、教學流程 (一)情景導入,引入新課(5分鐘) 【教師活動】 (1)教師提出一個有趣的問題:一個農夫帶著一條狼、一頭山羊和一籃蔬菜要過河,但只有一條小船.乘船時,農夫只能帶一樣東西.當農夫在場的時候,這三樣東西相安無事.一旦農夫不在,狼會吃羊,羊會吃菜。 (2)要求學生分組討論設計一個方案,使農夫能安全地將這三樣東西帶過河.。 【學生活動】 (1)學生積極思考討論問題。(2)派小組代表發表解決方案。 【教師活動】 (1)口述總結學生提出的方案 第一步,農夫帶羊過河.第二步,農夫獨自回來.第三步,農夫帶狼過河.第四步,農夫帶羊回來.第五步,農夫帶蔬菜過河.第六步,農夫獨自回來.第七步,農夫帶羊過河 當然,也有可能學生會提出第二種方案: 第一步,農夫帶羊過河.第二步, 農夫獨自回來.第三步,農夫帶蔬菜過河.第四步,農夫帶羊回來.第五步,農夫帶狼過河.第六步,農夫獨自回來.第七步,農夫帶羊過河.設計意圖:通過這個有趣的問題,在學生的討論中已無形的接觸到算法,讓同學對算法有一個初步的了解。 (二)循序漸進,引出算法(8分鐘) 【 教師活動】 教師簡單介紹算法的定義,即“算法”就是是解決方法的精確描述。從廣義的角度來看,生活中到處存在著算法,樂譜是樂隊演奏的算法,菜譜是廚師做菜的算法,廣播操圖解是廣播體操的算法。 (2)讓同學談談生活中,你還遇到什么樣的算法?!緦W生活動】 (1)認真聽講,做好筆記(2)積極發言。 設計意圖:為了使抽象的知識更加具體化,聯系生活中的實例,讓學生從生活中發現知識,易于理解后面的知識。 (三)逐步深入,突破重、難點(15分鐘)【 教師活動】 (1)教師講述算法的表現形式——自然語言、偽代碼、流程圖。(2)結合PPT,講述流程中常用的幾種符號。 ? 處理框(矩形框),表示一般的處理功能。 ? 判斷框(菱形框),表示對一個給定的條件進行判斷,根據給定的條件是否成立決定如何執行其后的操作。它有一個入口,二個出口。 ? 輸入輸出框(平行四邊形框)。 ? 起止框(圓弧形框),表示流程開始或結束。 ? 連接點(圓圈),用于將畫在不同地方的流程線連接起來。如圖中有兩個以1標志的連接點(在連接點圈中寫上“l”)則表示這兩個點是連接在一起的,相當于一個點一樣。用連接點,可以避免流程線的交叉或過長,使流程圖清晰。 ? 流程線(指向線),表示流程的路徑和方向。 ? 注釋框, 是為了對流程圖中某些框的操作做必要的補充說明,以幫助閱讀流程圖的人更好地理解流程圖的作用。它不是流程圖中必要的部分,不反映流程和操作。 (3)引導學生看課件中學校上體育課的流程圖?!?學生活動】 (1)認真聽課,了解算法的表現形式。(2)了解流程圖的畫法。 設計意圖:這部分的知識是本堂課的重點和難點,讓學生自主學習課本,掌握知識,提高學生的總結、歸納、表達對于他們的學習很重要。 (四)層層展開、鞏固新知識(8分鐘) 【教師活動】 (1)引導學生思考課件中提出的問題(2)教師分析課件中的流程圖得出最終結果 【學生活動】 (1)積極討論思考,回答教師的提問。 設計意圖:通過練習,鞏固學生對新知識的掌握,同時通過學生的回答,老師對學生知識的掌握情況有所了解。 (五)課堂總結(3分鐘)【教師活動】 (1)老師以提問的方式,什么是算法,算法的表現形式,自然語言和流程圖的對比。 【學生活動】 (1)積極回答教師的提問,回顧本節的知識點。設計意圖:進一步鞏固加深學生對本堂課知識的理解。 (六)布置課后作業(1分鐘)【 教師活動】 給出三個數a、b、c,請問如何判斷出最大數?并畫出流程圖 【學生活動】(1)課后認真完成。 設計意圖:進一步鞏固學生對知識的理解。 五種查找算法總結 一、順序查找 條件:無序或有序隊列。 原理:按順序比較每個元素,直到找到關鍵字為止。 時間復雜度:O(n)二、二分查找(折半查找) 條件:有序數組 原理:查找過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜素過程結束; 如果某一特定元素大于或者小于中間元素,則在數組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。 如果在某一步驟數組為空,則代表找不到。 這種搜索算法每一次比較都使搜索范圍縮小一半。 時間復雜度:O(logn)三、二叉排序樹查找 條件:先創建二叉排序樹: 1.若它的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值; 2.若它的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值; 3.它的左、右子樹也分別為二叉排序樹。 原理: 在二叉查找樹b中查找x的過程為: 1.若b是空樹,則搜索失敗,否則: 2.若x等于b的根節點的數據域之值,則查找成功;否則: 3.若x小于b的根節點的數據域之值,則搜索左子樹;否則: 4.查找右子樹。 時間復雜度: 四、哈希表法(散列表) 條件:先創建哈希表(散列表) 原理:根據鍵值方式(Key value)進行查找,通過散列函數,定位數據元素。 時間復雜度:幾乎是O(1),取決于產生沖突的多少。 五、分塊查找 原理:將n個數據元素“按塊有序”劃分為m塊(m ≤ n)。 每一塊中的結點不必有序,但塊與塊之間必須“按塊有序”;即第1塊中任一元素的關鍵字都必須小于第2塊中任一元素的關鍵字; 而第2塊中任一元素又都必須小于第3塊中的任一元素,……。 然后使用二分查找及順序查找。第三篇:算法及其實現 教學設計(第一課時)
第四篇:算法及其實現教學設計
第五篇:五種查找算法總結