第一篇:教學課題-算法
教學課題:生活中的算法實例
學情分析:學生在前面的學習中,理解了算法的概念,了解了使用計算機解題的一般過程,通過實例分析初步掌握了算法的自然語言和流程圖表示方法。本節課我們將算法的實例延伸到我們生活中,讓學生進入生活,結合生活,在生活中理解算法,體會算法其實在我們的生活中也是無所不在的。
教學要求:通過生活實例進一步了解算法思想。教學重點:生活實例的算法分析。教學難點:算法思想的理解。學案:
生活實例1:
狼、羊和卷心菜過河游戲。在一河岸有狼、羊和卷心菜,農夫要將它們渡過河去,但由于他的船太小,每次只能載一樣東西。并且,當農夫不在時,狼會把羊吃掉,而羊又會把卷心菜吃掉。問農夫如何將它們安全渡過河去?
游戲規則:沒有農夫看管的時候,狼會吃羊,而羊會吃卷心菜。試著寫出你的方案: 1、2、3、……
參考視頻:木子的博客
視頻《狼羊菜過河問題》
參考答案:(設:要從河的右岸到河的左岸)
①農夫先帶羊過河到左岸,然后農夫將船劃回右岸;
②農夫帶卷心菜過河到左岸,然后將羊帶回到右岸;
③農夫帶狼過河到左岸,然后農夫將船劃回右岸;
④農夫帶羊過河到左岸;
類似的問題還有傳教士和野人過河問題(參閱閱讀材料及視頻資料《傳教士和野人過河問題》)以及交換青蛙問題(參閱閱讀材料及視頻資料《交換青蛙問題》)。
生活實例2:韓信點兵問題。西漢大將韓信,善于帶兵,神機妙算,能征善戰。一次閱兵時,韓信要求士兵排成3路縱隊,此時末尾多出2人,改排成5路縱隊,末尾多出3人,再排成7路縱隊,末尾余下2人,這時,領兵的部下報告說:這對士兵共有262人,韓信立刻搖頭說:不對,實際只有233人,部下遲疑地回去,又重新清點人數,果真是233人,部下們因此對韓信十分佩服。
思路探索:從2開始,逐個數去試試,如果這個數能同時被3、5、7整除后的余數分別為2、3、2,則輸出這個數。
根據上面的思路探索,補充算法: 第一步:m=2.第二步:若,則執行第三步;否則m=m+1,執行第二步。第三步:若
,則執行第四步;否則m=m+1,執行第二步。第四步:若
,則執行第五步;否則,執行第二步.第五步:輸出m
進一步嘗試:你能根據上面的思路,畫出流程圖嗎?(動手大膽試試,在你試著畫出自己的流程圖后可以到網絡上尋找韓信點兵的流程圖,看看你畫的和它一樣嗎?你理解嗎?可以將你的想法和看法給我留言)
根據題目我可以列一個等式:
M=3i+2=5j+3=7k+2
其中,m為總的人數,i表示3路縱隊時,每列的人數,J表示5路縱隊時,每列的人數,K表示7路縱隊時,每列的人數。
我們發現:3i和7k是相等的,說明
(3i和7k的值都是21的倍數)我們再試試:若3i=7k=21,這時m=
,這時j(有、沒有)整數解,整數解為。
若3i=7k=42,這時m=
,這時j(有、沒有)整數解,整數解為。
若3i=7k=63,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=84,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=105,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=126,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=147,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=168,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=189,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=210,這時m=
,這時(有、j沒有)整數解,整數解為。
若3i=7k=231,這時m=
,這時(有、j沒有)整數解,整數解為。
到此為止,我們知道了其中有
組解符合我們列出的式子,第一組符合條件的解的人數是當3i=7k=21,m為23人,但是在上面的資料中,韓信卻說士兵的總人數為233人,這是因為
(雖然有多組解滿足列出的式子,但士兵的范圍總是在一定的范圍中的),所以,我們在具體分析每個題目的過程中,我們首先要確定題目中給出的對象的范圍,然后才能確定它的準確解到底是哪一組。這道題目中,i= ,j= ,k=
,總人數為233人。
小試牛刀:假如今天早晨我們班出操,排成了3路縱隊,此時末尾多出了1人,改排成5路縱隊,末尾多出了2人,再排成7路縱隊,末尾余下2人,請報出共有多少學生出操?(試著和同學交流,可以通過討論組或者通過發表評論完成)
生活實例3:停車場停車問題。
某大型停車場對于進入該場地的車輛有如下規定:
1、進入該停車場必須為客運車輛,貨運車輛謝絕入內。
2、如果該車的乘員數量小于等于4,則收費五元。
3、如果該車的乘員數量大于4人,則收費八元。請根據該停車場的規定,判斷進入該車場的車輛是否符合規定?應該收費多少?
思路探索:
1、先判斷車型是否是
,如果是,進入下一步,如果不是,不許進入。
2、判斷乘員數,如果乘員數
,收費五元,允許進入,如果不是,收費八元,允許進入。
能力提升:你能否根據剛才的分析畫出其流程圖呢?(大膽試試,這一次肯定能畫出來。)
算法思想總結:計算機的程序設計中時刻會提到算法,其實算法也存在于我們生活中,生活算法與程序設計中的算法是相似的,都體現出共同的一個方向——算法思維。目標都是問題解決。生活算法與程序設計算法類似,它也可以分成不同階段:分析問題、尋找解決問題的途徑和方法、解決問題的實踐活動(例如用計算機進行處理)、算法的反思與優化。生活中算法廣泛地存在于我們身邊。靜下心來仔細分析生活,可以發現很多問題以及與之對應的算法。
附:
生活中算法的例子:
1、華羅庚泡茶招待客人。
2、超市收銀機。
3、學校設置的鈴聲。
4、如何打電話最省錢。
5、如何合理安排學習和生活時間才能讓學習效率最高。
第二篇:《枚舉算法》教學設計
《枚舉算法》教學設計
蒼南縣成人教育中心學校 陳榮軍
一、教學目標
1、知識與技能目標:
理解枚舉算法的基本原理,熟悉枚舉算法程序設計的基本思路及程序結構特點;學會使用枚舉算法解決現實生活、學習中所遇到的問題。
2、過程與方法:
圍繞“課堂任務導航程序”,通過課堂任務設計,讓學生熟悉用枚舉算法求解問題的基本過程,并把它運用到實際生活中去解決問題,學會選擇適當的枚舉方法多角度分析問題,解決問題。
3、情感態度與價值觀:
激發學生的學習熱情,提高學生自主學習能力,增強學生創新意識;引導學生關注枚舉算法在社會生活中的應用,并以此培養學生將算法思想運用到解決實際問題中去的能力。
二、學情分析
本節內容的教學對象是普通高中高一學生,他們經過半學期的信息技術教學,具備了一定的計算機操作能力;在VB程序設計方面,也已經有所學習,具備一定的基礎,但因所上課時不多,學生對VB還只是略知皮毛,語法及編程能力有待于進一步提高。
三、教材分析
1、本節主要內容介紹
枚舉算法是程序設計中使用最為普遍、學生必須熟練掌握和正確運用的一種算法。它利用計算機運算速度快、精確度高的特點,對要解決問題的所有可能情況,一個不漏地進行檢查,從中找出符合要求的答案。用枚舉算法解決問題,通常可以從確定范圍、逐一列舉,驗證條件、逐一驗證這兩個方面進行分析,把這兩個方面分析好了,問題自然會迎刃而解。
2、重點難點分析 教學重點:
(1)理解枚舉算法的基本原理。
(2)能根據問題描述確定枚舉范圍,并能用程序正確表示驗證條件。(3)枚舉算法的程序實現。教學難點:
(1)各種枚舉算法的優劣評價。(2)編程實現枚舉算法。
四、教學設計理念 采用了以學生的學習和發展為中心,基于建構主義理論的任務驅動、情境教學等教學方法,突出自主、合作、探究等學習方法;強調信息技術與生活實際的聯系,培養學生的邏輯思維能力、解決問題的能力以及創新意識等;設置多元化的評價方式,讓學生掌握學習內容的同時,形成交流與評價的能力。
主要教學方法:講授法、演示法、任務驅動、情境教學等 主要學習方法:自主學習,合作探究學習等
五、教學策略
通過“課堂任務導航程序”,在教學過程中,圍繞“情境導入→回顧算法思想→任務引領→自主學習→合作探究→交流評價→課堂總結”的教學流程來展開教學活動。
六、教學環境
教師用VB自制的“課堂任務導航程序”(客戶端)、教師服務端程序、多媒體網絡教室、多媒體教學軟件、VB6.0中文企業版等。
七、教學過程
一、情境導入(3分鐘)
教師活動:同學們,大家好!首先,很高興今天能給大家上一節課,希望老師今天的這節課能讓大家有所收獲。在上新課內容之前,老師想先請同學們幫老師一個忙(教師廣播展示VB制作的“QQ登錄程序”):老師前段時間申請了個QQ,結果把密碼給忘記了,但我記得密碼是由六位相同的數字組成,哪位同學能上來幫老師找出密碼?
學生活動:學生上臺,根據老師的描述,從000000到999999一一測試密碼,最終找到密碼。教師活動:非常感謝這位同學的幫忙!這位同學能說下,你是怎么找出密碼的嗎? 學生活動:從000000,111111,222222?? 999999這樣逐個測試。教師活動:很好。像剛才這位同學這樣,根據老師給的范圍,逐一列舉所有可能,并根據程序提示(驗證條件)逐一驗證,從而找出答案的方法就是今天我們要來共同學習的《枚舉算法》。
設計理念:通過學生熟悉的QQ密碼破解來引入課堂,增強學生興趣,也能使學生樂于接受。
二、回顧枚舉算法思想,提出課堂任務(5分鐘)
教師活動:教師廣播展示課件,學習枚舉算法的概念,說明枚舉算法的兩個關鍵點:
1、確定范圍,一一列舉(既不遺漏,也不多余);
2、確定條件,逐一驗證。教師活動:在了解了枚舉算法的概念后,同學們能不能列舉幾個我們實際生活中用枚舉算法解決的問題的例子呢? 學生活動:學生舉例(教師根據例子引導分析,重點強調“確定范圍、一一列舉,根據條件、逐一驗證”)
教師活動:非常好!看來大家對枚舉算法已經有了一定的理解了,接下來,我們來看下在程序里面,如何實現枚舉算法解決問題。請大家打開桌面“學生”文件夾里的“課堂任務導航.exe”,完成“任務一”。(教師簡要說明“課堂任務導航程序“使用方法)
三、課堂任務一(10分鐘)
學生活動:根據課堂任務導航程序及幫助信息自主完成課堂“任務一”(4分鐘)教師活動:教師巡視、個別指導,觀察、總結并及時記錄學生在完成任務過程中出現的問題。同時,在“教師服務端”程序中觀察展示學生任務一的完成情況,及時了解學生的學習進度。
任務反饋:大部分學生能順利完成任務一,對于不能自主完成的,可由已完成學生幫助完成。
教師活動:很好!大部分同學已經完成任務一了,接下來讓我們一起看下我們的程序是如何實現枚舉算法的。教師展示任務一程序(廣播)教師活動:我們知道要想實現枚舉算法,主要是要做到兩點:一個是確定枚舉范圍進行一一列舉;還有就是根據條件,逐一驗證。我們來看下我們的程序的怎么實現這兩點的?
學生活動:觀察程序,思考。
教師活動:我們先來看下“確定范圍、一一列舉”在程序里是如何體現的?(6分鐘)
學生活動:使用for語句實現
教師活動:“根據條件,逐一驗證”呢? 學生活動:if語句
教師活動:很好!一般實現枚舉算法的程序都是由循環結構嵌套分支結構組成。好了,大家現在已經知道了枚舉算法的程序結構了,接下來請同學們繼續完成任務二。
(設計理念:通過任務一的設計,讓學生自主探究學習,培養學生的自主探究學習能力,通過學生互助,培養學生互幫互助的精神;通過對任務一的程序分析,培養學生的善于觀察思考、解決問題的能力,并讓學生熟悉枚舉算法的程序結構特點,以便學生能更加順利的完成任務二。)
四、課堂任務二(設置陷阱,探討交流)(15分鐘)學生活動:學生先自主完成任務二。(5分鐘)
教師活動:教師巡視、個別指導,觀察學生在完成任務過程中出現的問題:有些學生能輸出58個數,有些學生只輸出6個數,原因在哪里?請一個能輸出58個數的學生上臺演示操作,然后讓學生分析輸出的這些數都能滿足要求嗎?經過分析,學生會發現有些數的個位數不符合要求。提出問題:如何修改程序將不符合要求的數去掉?(2分鐘)
學生活動:修改程序(由學生小組合作相互探討完成)。(5分鐘)教師活動:當有部分學生輸出正確答案后,請一個能輸出正確結果的學生分析如何修改,并到教師機上修改剛才錯誤的程序(算法1); 請一個不同算法的同學來修改程序(算法2);讓他們分析各自算法的效率誰更高。然后教師小結,鼓勵學生要善于發現問題、深入分析問題、積極解決問題;從不同角度分析問題可以得到不同效率的算法。(3分鐘)
(設計理念:設計任務陷阱培養學生善于發現問題、深入分析問題、積極解決問題的能力;通過探討交流,培養學生的團體協作能力及合作探究精神;設計任務一題多解,培養學生從不同角度分析問題的能力,鍛煉學生的發散性思維。通過算法分析,讓學生理解算法的執行效率,懂得選擇最優算法去解決問題,提高程序的性能。)
五、層層遞進,任務拓展(高層次學生做)
拓展任務:在任務二的基礎上,增加驗證條件:“十位數是3的倍數,百位數是4的倍數”,提出問題:如何將數字里的十位數和百位數分離?
學生活動:學生通過教師提供的幫助材料,討論分析問題,嘗試去完成拓展任務 教師活動:教師觀察,引導。
(設計理念:設計拓展任務,提高任務難度梯度,供高層次學生完成,以實施課堂中的分層教學。)
六、提交作品,課堂評價(3分鐘)
學生提交作品,教師選擇幾個作品做總結性評價。
七、歸納總結、布置課后作業(1分鐘)
1、通過“教師服務端”程序中學生“自我評價”中的知識點,進行課堂總結:(1)枚舉算法的基本原理:
確定范圍、逐一列舉(既不遺漏,也不多余)(循環語句)確定條件、逐一驗證
(條件語句)
(2)枚舉算法中范圍的確定及列舉:循環語句(如for)實現
(3)枚舉算法中驗證條件的表示:利用if語句進行條件判斷;條件表示主要運用VB中的算數運算符及邏輯運算符實現。(4)實現枚舉算法的程序結構特點:
外層循環嵌套內層條件判斷
2、布置課后作業: 找水仙花數(學生任務導航程序)
(設計理念:通過知識總結,幫助學生將知識系統化,便于學生理解記憶。通過知識的延伸,促使學生將知識內化,并進行能力遷移,進一步提高學生解決問題的能力。)
八、自我評價(1分鐘)
讓學生利用“課堂任務導航程序”中的自我評價功能進行自我評價。教師活動:展示學生自評結果。
(設計理念:通過評價,引導學生自我反思,加深對所學知識的認識與理解;教師查看學生自我評價結果能及時了解到學生對本堂課所學知識點的掌握情況,以便安排后續教學內容。)
第三篇:算法的快樂教學
算法的快樂教學
浙江省浦江中學 何菲
【摘要】:普通高中新課程信息技術學科包括五個選修模塊,其中“算法與程序設計”模快是信息技術學習的核心內容之一。算法是邏輯性和抽象性思維很強的一門學科,它的“高深”“難度大”是學習算法這門課程經常聽到的一些詞。在教學中如果處理不當往往會導致學生喪失學習算法的興趣,有挫折感,進而影響用算法來解決問題。為此,本文就從多個角度來探討讓學生樂于學習,來快樂的學習算法。
關鍵詞:算法
程序設計
興趣
經驗
思維
生活
引言:新課程標準的教學已開展的紅紅火火,成為教學熱點。信息技術是一門提高學生信息素養,并在信息化社會環境下以計算機為載體,融知識性、技能性和工具性于一體的重要的課程。它分為必修模塊和選修模塊。其中,“算法與程序設計”模塊是我校選修模塊,一提起“算法”,人們立刻會覺得這是一門高深,而且枯燥的學問,難度也很大。大多數學生對算法學習不感興趣。隨著教學的深入,學生個體差異的增加,算法學習反而成為部分學生學習一道難以逾越的屏障!即使同學通過會考,后來再回過頭去問他們關于算法的問題,他們都認為在云里霧里一樣,講不出個所以然來。學生對“算法”的這種“可怕”的程度,可想而知。其實,這是一種誤解。在日常生活中,我們時時處處都在與“算法”打交道。舞臺上舞步的圖譜;樂譜是樂隊演奏和指揮的算法;菜譜是廚師燒菜的算法等等。不論是日常生活,還是信息技術,我們到處可找到“算法”。假如我們能把教科書上的算法生活化,那么,也可以把“算法”學得生動活潑。
那么,為什么學生對算法和程序設計不感興趣呢?對算法又這么地不適應,存在哪些問題呢?
教學中存在的一些實際的問題: 因為我們是一個人口眾多,地域廣闊的一個大國。信息技術課的更新也飛快。而“程序設計”也一直占據著不可或缺的重要地位,也是成為難教之一。正因為有這樣的一些方面,所以也導致以下幾個方面實際的問題:
1、是高中學生的起點參差不齊,現在大部分同學在初中學習過電腦,但并未接觸過算法的知識,處于一個初期的階段,由于學生個性的差異,接受能力的不同,導致學生的水平上下相差比較大。
2、教學內容多,而課時少。這一門選修課是信息技術學習的核心內容之一。高中階段學生課業繁重,很少會有學生安排課余的時間來學習“算法”這門課,他們的時間僅限在上課45分鐘,學校設了每星期兩課時的時間來進行教學,要求學生能初步使用一種程序設計語言編制程序實現算法以能從簡單問題出發,設計解決問題。這對教師和學生來講都是一個不小的挑戰。
3、由于本身這一門學科的嚴密的邏輯性和語言的枯燥性導致學生失去對它的興趣,增加了老師的授課難度。
如何能讓算法思維成為學生學習生活的一部分?通過又一學期的算法學習與實踐,我也逐漸地摸索出一些適合時下學生學習的解決方法。
一、要提高學生的學習興趣,要盡量做到零起點分層教學
教師在算法與程序設計教學時,應循序漸進,尤其是盡量做到零起點教學,免得太抽象的問題把還未建立起來的興趣的學生嚇退。尊重學生的興趣很重要,我們的目的不是讓每個學生成為一個優秀的程序員,而是讓學生學點算法思想去解決實際問題是我們的首要任務。首先對學生做一個信息技術能力的問卷調查的摸底工作,對學生基本解決能力有一個大體的了解,決定分層分組的學生。教學中也不要著急的引入具體程序,而應該從基本算法思想開始,從簡單的生活實例出發,或從游戲著手,如讓學生先學會畫流程圖,再進而學習具體的程序設計,讓學生心中有個緩沖。比如:學習流程圖的畫法,可以先給學生一簡單上體育課的生活實例,準備上體育課,是晴天,雨天,或下雪天,在操場上課,還是室內上課,把這一形為用圖的形式表達出來,進而引出流程圖的畫法,再引入數學問題中稍復雜點的解決比較兩數大小的問題。慢慢地,循序漸進的,學生就理解了用流程圖的畫法來解決問題理清思路的好處。并布置學生在課余時間也可以寫幾個簡單的流程圖進行鞏固。
二、在教學中引入課堂角色扮演,師生互動,層層深入 課堂角色扮演是指在教學中由教師根據學生的特點,對教師及學生進行角色設定,根據教學內容設計規定動作,指導學生進入角色,領悟“劇情”,完成規定動作和自選動作。課堂角色扮演可以激發并保持學生的學習興趣,啟迪智慧,加深學生對問題的理解。
比如在學習教科書《算法與程序設計》2.3.2節的冒泡法排序時,我就挑了7位身高不等的學生站成一排,首先讓他們逐個比較身高,最高個站在最右邊,然后在剩下的6位同學里面挑出次高個,以此類推,直到他們從左到右按照個子從低到高的順序排好。學生通過參與這種角色扮演,短短幾分鐘,冒泡排序的過程便牢牢印在腦海中。
角色扮演活動有利于教師體驗學生的感受,站在學生的角度去理解教學,增強師生間的交流與溝通。有利于培養學生的學習興趣,因為表演的語言和行為貼近他們的生活。參與表演的學生由被動地接受知識逐步轉變為主動探究知識。在準備表演的過程中,學生的學習能力可以得到明顯的提高。
在講授4.3.3節的For循環結構時,我用了一節課的時間來進行講解,用上生活中的一些關于循環的例子:星期,時間,月份,人造地球衛星,繞月衛星,引出“嫦娥一號”的發射,提出我們雖然沒有能夠到現場觀看,但我們在教室中同樣可以模擬感受。教師展示火箭發射倒計時程序及其源代碼,讓學生借助注釋從整體上大概理解其實現的功能。然后進行簡化,當程序設計中,當需要重復執行某一段代碼時,可以采用循環結構。教師先不講for…..next語句的格式和用法,而把重復的語句組提取出來,要求學生根據剛才的分析進行推測,把空白補充完整。然后,引出用for語句修改源程序,并調試運行。進而教師指出其中的循環體、循環變量、初值、終值、步長,進而由個別到一般,總結出for…next語句的基本格式。就這樣,層層深入,直到學生理解并會運用此循環語句為止。
三、從學生已有的生活經驗出發,習慣思維入手,巧妙的利用Flash的動畫游戲,從先直觀后抽象逐步接受算法的思維方式。在信息技術課程標準里,提高學生的信息素養是教學的目標,所以教學過程 完全不必拘泥于程序設計這個狹小的范圍,可以結合其它學科,于游戲中學習,生活中學習,再加上信息技術學科本身有著綜合性、更強發散性的特點,可以讓我們的教學變得更加生動多彩。如在講算法概念時,書上沒有舉出生動具體的例子,叫學生看書也很難引起一定的興趣來理解這個概念。所以在上課是,教師可以舉一些感性的例子來激發學生的思維和興趣。如:一個人帶三只老虎和三頭牛過河。只有一條船,同船可以容一個人和兩只動物。沒有人在的時候,如果老虎的數量不少于牛的數量就會吃掉牛。請設計安全渡河的算法。通過學生感興趣的內容來調度學生思考問題的積極性。在課程學習中,很多老師甚至家長排斥游戲,怕學生玩上隱。其實在教學中適當的引入游戲,不但可以提高學生學習的樂趣,還可以把游戲運用到算法中去。如可利用一些智慧技能型、益智型、演示型的游戲來進行引導。如,課后教師可以讓學生玩flash小游戲《商人過河》:仆人3人,商人3人,其中小船最多同時2人,兩岸不允許仆人多于商人,否則被打劫,游戲失敗。或《三人三鬼》是同樣的道理,游戲中感受到的刺激同樣的也激發學生思維的開始,算法在游戲中的運用。從而使學生真正的理解算法,用算法去解決生活中碰到的一些問題。
算法中的枚舉算法如果用學生感興趣的內容去理解,去引導,其實還是比較好掌握的,教師可以引入提出有誰被盜取過QQ密碼的,學生一定涌躍發言,然后可以問學生你的QQ密碼是怎么被盜的呢?這時的學生就會異常的專心致至的等著老師揭開神秘的面紗,達到引入枚舉算法,學生會豁然開朗。進而教育學生要懂得保護自己的密碼,取什么樣的密碼才不會被盜,教育學生做個遵紀守法的公民。
也有許多人認為學習算法意義不大,因為他們認為專業的算法很難指導生活。當然,無論黑貓白貓,能抓老鼠就是好貓。生活中問題的解決方式有多種多樣,算法以縝密的邏輯思維,通過使生活中繁復的問題抽象化的方式成為解決生活問題的一個重要途徑,有時,甚至可以用來指導我們的生活。如解析法的教學,里面講到銀行存款利息的問題來源于生活有計算復利和不計復利兩種方式。在實際生活中,還有住房貸款的還貸,股票和基金的投資方式等。在教學中,我們可以把它看成是一種投資理財問題,讓學生以研究性課題的形勢進行深入分析,可以獲得良好的效果。從生活中選取算法實例出發,進而用算法來為生活服務。在這樣的算法學習中,學生不僅學得不亦樂乎,而且還可以從中學到多種解決問題的方法,養成嚴謹的生活思維方式,那將是受益終生的。
第四篇:算法案例教學設計
算法案例——輾轉相除法與更相減損術
唐勁松
一、教材解讀
本節內容是在學習了算法的基礎知識上,探究古代典型的算法案例——輾轉相除法和更相減損術,鞏固算法三種描述性語言(算法步驟,程序框圖和程序語言),使學生對算法中的迭代思想有一個初步的認識。一方面以輾轉相除法及更相減損術為載體,使學生通過模仿,操作,探索經歷算法設計的全過程,幫助學生進一步體會算法的基本思想,感受算法在解決實際問題中的重要作用,另一方面讓學生體會中國古代數學家對現代數學發展的貢獻。
二、教學重難點
重點:輾轉相除法與更相減損術的方法和步驟;
難點:輾轉相除法的原理及其程序。
三、教學過程
Ⅰ引入新課
簡單回顧短除法求兩個數的最大公約數,并提出問題:當兩個數較大時(如:8251與6105),如何求它們的最大公約數?引出課題——輾轉相除法。
Ⅱ知識探究
1、以求8251與6105的最大公約數的過程為例,講解如何利用輾轉相除法求兩個數的最大公約數。對于輾轉相除法的原理,書本介紹的不是很詳細,學生容易產生疑惑,需要教師講解清楚。
2、通過這個實例,讓學生能夠模仿求任意兩個數的最大公約數,體會這種迭代的思想,并能與前面學習的循環結構聯系起來。
3、訓練(學生演排),了解學生的掌握情況,及時指出問題。
4、簡單介紹歐幾里得其人,增強學生人文素養。
5、引導學生根據前面的過程畫出輾轉相除法的程序框圖,并編寫出程序。靈活運用直到型循環結構及當型循環結構,并能轉化成語句。完成課本P45練習1:用輾轉相除法求下列兩個數的最大公約數:(1)225,135;(2)98,196;(3)72,168;(4)153,119.并用程序進行演示判斷是否正確。
6、鞏固提高:
(1)求三個數:324,243,135的最大公約數;(2)求228與1995的最小公倍數。
7、介紹另一種求最大公約數的方法——更相減損術,簡單介紹相關數學史的知識,對學生進行數學文化熏陶,增強民族自豪感。
8、通過實例:求98與63的最大公約數 來理解更相減損術的原理和過程。
9、分別用輾轉相除法和更相減損術求168與93的最大公約數,來體會和總結輾轉相除法和更相減損術的區別。
Ⅲ課堂小結
學生回顧總結兩種方法的步驟,教師加以補充和點評。
第五篇:算法教學設計
3.4算法及其表示 智能吸塵器算法簡單分析
【教材分析】 本節教材的地位、作用等分析。
本節教材位于高中信息技術必修模塊第三章中:“算法及其實現”部分內容,本節課的學習目的是使學生體驗算法思想,了解算法和程序設計在解決問題過程中的地位和作用;體驗信息技術中算法的魅力,為學生選修算法模塊奠定基礎。
【學情分析】
算法是我們信息技術基礎模塊的最難的一塊內容,課時又少,只有兩課時,如果初中信息技術正常開展,那么這個內容也容易開展。
【教學目標】
1.知識與技能
理解算法的含義,體會算法在程序設計中的地位; 培養用計算機編程解決現實問題的能力。2.過程與方法
能通過觀察吸塵器的工作來分析其算法,培養學生用程序設計的思想來思考產品。3.情感態度與價值觀
引導學生了解程序設計的更多知識,體驗信息技術的強大魅力; 激發學生對計算機編程解決現實問題的學習欲望,提高學習興趣。滲透人文教育,懂得感恩。
【重點難點】
教學重點:算法的特征;算法的表示 教學難點:對算法的理解,流程圖
【設計思想】
新課標強調要“培養解決問題的能力,倡導運用信息技術進行創新實踐”,以前教學中我一直從面到點,先講算法的定義和特點,再舉例,效果不是很好,學生印象不深,往往到學期結束的時候,對算法印象全無。
因此,這次在設計本節內容的時候,在選擇實例的時候,我從兩點考慮:一是生活化,選擇的例子盡可能貼近生活,既要達到吸引學生的目的,又能體現技術的真實內涵(現在的學生,生活自理能力太差了);二是通過把抽象的問題分析成為具體步驟或方法,從而形成算法,讓學生理解計算機解決問題的基本過程。
我在選擇實例的時候,盡量讓這個例子能貫穿整堂課,把一個問題分析透,印象會深刻。
【教學流程】
導入
師:喜歡干家務嗎? 生:不喜歡
師:可是有一個人就是無怨無悔的做著家務(滲透人文教育,懂得感恩)生:誰?
師:“馬大嫂”,你們認識“馬大嫂”嗎?每個家庭都有。生:領悟
師: “馬大嫂”在我們同學們的年紀時,也是不喜歡干家務的,是什么讓他們無怨無悔的干著家務?作為他們的孩子,我們有沒有想過替他們分擔一點?或者當我們長到“馬大嫂”的年齡,我們能不能讓家庭生活輕松一些?
生:討論
師:家庭的智能化腳步離我們越來越近,我們的生活里隨處可見,比如有定時功能的家電,洗衣機、洗碗機,今天我給大家推薦一款“買汰掃”的掃:智能吸塵器。(引導學生用計算機編程來解決現實問題)
首先聲明,我不是搞推銷的,而是帶領大家去設計生產產品的。今天我們一起來分析、設計一款智能吸塵器。
首先,我們分析一下原始的手工操作吸塵器的工作需要幾步? 新課(先把復雜的問題簡單化,得出大的方向,然后逐步細化)生:三步,打開電源、開始工作、關閉電源
師:看來你們都是宋丹丹的徒弟,其實這也是我們用計算機解決實際問題的思維:先設計算法、再編制程序來實現算法。
師:什么是算法呢?算法是解決問題的方法和步驟,同學們用的是自然語言描述的算法,我是用流程圖來描述算法。
算法描述的方法和步驟應該是有限的,有開必有關;有Begin必有End;
同學們是不是有被忽悠的感覺?有,就說明了我們的同學想的更遠了,是啊,我這個算什么算法,跟本沒解決什么問題,對了,算法還有一個定義,解題方法的精確描述,我這個算法的步驟有了,但不夠精確描述,所以我們要自頂向下,逐步求精。師:你們說哪個步驟需要細化? 生:第二步
師:那你們覺得吸塵器要體現智能,應該從哪些方面考慮? 生:討論
歸結你們的觀點,主要有三個:設定清潔路線模塊,躲避障礙物模塊,自動充電程序 設定清潔路線模塊
師:你們拖過地嗎?如果讓你來拖地,你會選擇怎樣的路線既能減少重復路線,又能全部覆蓋? 好,我們模擬一下,(用flash 規定幾個相同的區域,然后計時擦除)把橡皮擦當成我們的吸塵器,擦除前景顏色并計時,……通過大家的實踐,我們可以看出幾種方案比較科學,通過這個試驗,我們知道解決問題的方法有很多,生活中也一樣,關鍵是要選擇合適的一種,達到既快又好.這是我們在最優環境下的情況,沒有考慮實際情況。我們看看具體的設計
前面同學們提到躲避障礙物是設計的關鍵。躲避障礙物模塊
師:躲避障礙物模塊是體現吸塵器智能的關鍵一點,我們先分析碰到墻壁怎么處理,只要碰到墻壁能處理,其他的是不是也是一個道理?
現在我請同學們描述一下碰到墻壁這個算法。
真了不起,你們用自然語言描述了這個算法,我習慣用流程圖來描述。請看我的算法
這個算法同樣比較粗糙,我們一起把它修正一下,首先要確定哪些地方需要細化,對了,是怎樣判斷“有沒有碰到墻壁?”,這是核心,你們認為怎樣判斷好?請大家在紙上設計設計
還有沒有其它需要修正的?對了,怎樣“轉變方向”也要細化,你們認為怎樣改變方向好?
就這個流程圖本身,還有什么地方需要修正的嗎?Y和N線路里有相同的語句,我們可以把
它提出來,放在合并后的線路中.好,我們把經過大家修改后的算法稱為智能清掃模塊
自動充電程序
我們還少了一個關鍵模塊,地沒掃完,電沒了怎么辦?
現在請同學們參考智能清掃模塊的流程圖,畫一畫碰到電不足了那一刻怎么處理的算法。
學生上臺畫流程圖,根據學生的流程圖修正,得到循環結構。回顧小結
現在我們回顧一下我們設計智能吸塵器的過程:首先我們把復雜的問題簡單化,設計了一個三步走的算法,然后,選擇了一個最優路線,再設計了一個具有智能的障礙物躲避模塊和自動充電模塊,在第一個流程圖里我們提出了算法要有開始和結束,即算法的有限性;最優路線里我們得出了最優算法;障礙物躲避模塊我們提出了可行性和沒有二義性。
針對以上算法,從開始到結束都離不開這三種情況,就像我們的生活,有可能一路直行、也有可能碰到分叉口、還有就是回到原路,還有沒有其他的可能?這就如同我們的算法,所以這三種我們就稱為基本結構,由這些基本結構組合成大的程序。
拓展
有了算法,程序實現就容易了,經過我們一起設計的第一代機器人初具模型,請看我們的作品(展示物體碰撞的動畫),再看看我寫的代碼,一些簡單的語句你們也看得懂,比如我們的核心模塊??
我們用一節課的時間就已經設計出這樣的產品,如果學了一本書,讀了四年的大學,你們的產品不知要好到哪里,到時候別忘了給全班同學發一個哦。
課外作業
研究了智能吸塵器,你們有什么啟發?那么我們就一起設計一下自己未來的家庭生活吧?
只有想不到的,沒有做不到的。想法高于一切,這個想法就是我們今天講的算法,它不單單存在于我們的計算機行業,生活中處處可見,希望大家做個有心人,好好設計自己未來的生活,設計不好,繼續馬大嫂的生活。