☆高騰
知識(shí)與技能:了解什么是窮舉法,了解運(yùn)用窮舉法設(shè)計(jì)算法的基本過程,能根據(jù)具體問題運(yùn)用窮舉法解決簡單問題。
過程和方法:通過對(duì)實(shí)際問題的窮舉程序?qū)崿F(xiàn)過程的觀察,發(fā)現(xiàn)和歸納窮舉算法的一般規(guī)律,發(fā)展歸納思維,培養(yǎng)獨(dú)立思考與自主探究的學(xué)習(xí)能力。
情感與價(jià)值目標(biāo):了解算法和程序設(shè)計(jì)在計(jì)算機(jī)解決問題過程中的重要性,體驗(yàn)將算法變?yōu)槌绦虻倪^程,享受計(jì)算機(jī)解決問題的快樂,通過對(duì)實(shí)際問題的解決,體驗(yàn)算法在實(shí)際生活中的廣泛應(yīng)用,激發(fā)對(duì)算法與程序設(shè)計(jì)的求知欲,形成積極主動(dòng)的學(xué)習(xí)態(tài)度。
教學(xué)重點(diǎn)、難點(diǎn):
重點(diǎn):根據(jù)具體問題的具體要求來使用窮舉法設(shè)計(jì)算法,并編寫相應(yīng)程序。
難點(diǎn):學(xué)生歸納思維的培養(yǎng)。
教師活動(dòng):我們現(xiàn)在先來回答一道搶答題:甲、乙、丙高考結(jié)束后在一起討論。甲說:“我肯定能考上重點(diǎn)大學(xué)?!币艺f:“重點(diǎn)大學(xué)我是考不上了?!北f:“要是不論重點(diǎn)不重點(diǎn),我考上大學(xué)肯定沒問題。”放榜結(jié)果表明,3人中考上重點(diǎn)大學(xué)、一般大學(xué)和落榜的各一人,并且他們3人的預(yù)測(cè)結(jié)果只有1個(gè)是對(duì)的。那么,3人中誰考上重點(diǎn)大學(xué),誰考上一般大學(xué),誰沒考上呢?
(設(shè)計(jì)意圖:之前的課堂舉的都是數(shù)學(xué)例子,為防止學(xué)生“審美疲勞”故采用了邏輯實(shí)例來激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動(dòng)學(xué)生學(xué)習(xí)積極性,并為下面的探究創(chuàng)造氛圍。)
教師活動(dòng):(1)分析人腦解決問題過程并和學(xué)生共同完成下表。(2)引入用程序設(shè)計(jì)來解決問題,要求學(xué)生給出算法流程。
(設(shè)計(jì)意圖:讓學(xué)生了解人腦是怎么用窮舉法來解決問題的,再過渡到通過窮舉法編程來解決問題。)
教師活動(dòng):逐句分析調(diào)試以下程序。
教師引導(dǎo):在分析了如上程序后,你能發(fā)現(xiàn)什么?
學(xué)生發(fā)現(xiàn):(1)變量a,b,c存放的是甲、乙、丙的高考結(jié)果,分別用0,1,2來表示落榜、一般大學(xué)、重點(diǎn)大學(xué)3種狀態(tài)。(2)變量count存放的是3人猜測(cè)的結(jié)果正確數(shù)。(3)此程序的功能是列出3個(gè)人所有考試結(jié)果,如果滿足各不相同且只有1人猜對(duì)就輸出。
教師總結(jié):此程序的特點(diǎn)是將求解對(duì)象的所有可能性都列舉出來,然后一個(gè)個(gè)進(jìn)行驗(yàn)證是否滿足給定條件,若不滿足則淘汰,滿足則輸出。當(dāng)所有對(duì)象都被篩選完后,問題即得到解決。這種算法就是窮舉法。
(設(shè)計(jì)意圖:給學(xué)生足夠的時(shí)間觀察,學(xué)生思考這個(gè)過程是無法替代的,最后在教師的引導(dǎo)下總結(jié)出窮舉法的規(guī)律。)
教師活動(dòng):要求學(xué)生用窮舉法來解決“雞兔同籠”問題。雞和兔在一個(gè)籠里,共有40個(gè)頭,100條腿,問雞有幾只,兔有幾只?給出以下部分程序代碼,與學(xué)生共同補(bǔ)充完整。
學(xué)生活動(dòng):回答問題并對(duì)比與自己所寫的程序有何不同。
教師引導(dǎo):(1)上面的程序是否存在不盡如人意的地方,你能修改一下嗎?(2)通過以上2個(gè)窮舉法程序解決問題,你們能總結(jié)出一些規(guī)律嗎?
學(xué)生回答:a,b的窮舉范圍超過需要,可以適當(dāng)減少以提高程序運(yùn)行效率。
學(xué)生歸納:(1)確定變量個(gè)數(shù);(2)確定窮舉范圍,用for循環(huán)實(shí)現(xiàn);(3)窮舉規(guī)則用if語句實(shí)現(xiàn);(4)盡量減少窮舉范圍以提高效率。
(設(shè)計(jì)意圖:之前解析法已經(jīng)有接觸到此例,從學(xué)生熟悉的例子入手,學(xué)生可以在觀察過程中發(fā)現(xiàn)、歸納并解決問題,并對(duì)比窮舉法與解析法的差異。)
問題1:京城某商鋪被盜,抓了甲、乙、丙、丁、戊5個(gè)嫌犯,可是不知道其中哪幾個(gè)人是真正的罪犯。不過有確鑿的證據(jù)表明:(1)如果甲參與了作案,則乙一定也會(huì)參與;(2)乙和丙兩人中只有一人參與了作案;(3)丙和丁要么都參與了作案,要么都是無辜的;(4)丁和戊兩人中至少有一個(gè)人參與作案;(5)如果戊作案,那么甲和丁一定也參與了作案。究竟哪些人才是真正的罪犯?
問題2:從1-9這9個(gè)數(shù)字中取6個(gè)填入下面式子中,使等式成立,每個(gè)數(shù)字每次只能用1次,你能組成多少個(gè)等式?
( )*( )( )=( )( )( )
(設(shè)計(jì)意圖:學(xué)生在課堂上已經(jīng)完成了觀察、發(fā)現(xiàn)、歸納這幾個(gè)步驟,最后的作業(yè)則驗(yàn)證其是否能將所學(xué)知識(shí)應(yīng)用到求解實(shí)際問題當(dāng)中,即要求學(xué)生應(yīng)用自己在課堂上歸納總結(jié)出來的規(guī)律對(duì)問題進(jìn)行求解。)
本節(jié)課有幾點(diǎn)收獲。
(1)達(dá)成率高。學(xué)生在掌握了窮舉法設(shè)計(jì)程序的方法后,有運(yùn)用技術(shù)來解決實(shí)際問題的迫切愿望,對(duì)于課后作業(yè)的完成有很大的積極性。
(2)學(xué)生分析問題、解決問題的能力得到較大幅度的提高,能將課堂歸納總結(jié)到的規(guī)律運(yùn)用到實(shí)際當(dāng)中。比如:課后作業(yè)2,學(xué)生不僅能合理運(yùn)用信息技術(shù)課堂所學(xué)知識(shí)來減小窮舉范圍,甚至還有學(xué)生根據(jù)排列組合計(jì)算出最少的窮舉次數(shù),只是因?yàn)榫幊讨R(shí)所限而無法實(shí)現(xiàn)。
(3)采用邏輯題作為課堂實(shí)例使得學(xué)生對(duì)程序設(shè)計(jì)又有了新的理解,學(xué)編程并非只能解決數(shù)學(xué)問題,不僅活躍了課堂,也留給筆者一個(gè)深深的思考——我們究竟需要什么樣的教材。
當(dāng)然本節(jié)課也存在不足。本課原本是想全采用邏輯題作為實(shí)例講解的,但是邏輯題作為實(shí)例雖好卻也存在不足——其窮舉范圍太小而容易使學(xué)生忽視窮舉范圍影響程序效率這一知識(shí)點(diǎn)。如果對(duì)其進(jìn)行修改則又容易導(dǎo)致程序太繁雜不利于學(xué)生理解。所以,課堂實(shí)例采用了雞兔同籠這道題作為對(duì)知識(shí)點(diǎn)的補(bǔ)充與鞏固。
[1]張麗.《用窮舉法解決問題》教學(xué)設(shè)計(jì)[J].信息技術(shù)教育,2007,(6).
[2]余錦波.邏輯的藝術(shù)[M].重慶:重慶大學(xué)出版社,2011,1.
[3][50]信息技術(shù)教材編寫組.信息技術(shù)[M].福州:福建教育出版社,2012.
[4]王東方.我的計(jì)算機(jī)繪圖課里有故事[J].中小學(xué)信息技術(shù)教育,2004,(1).