繆小麗
隨著信息技術(shù)的發(fā)展,對(duì)培養(yǎng)具有高水平信息技術(shù)素養(yǎng)的人才提出了更高的要求。于是信息的編程加工進(jìn)入了高中的必修和選修教材。算法設(shè)計(jì)作為信息編程加工的靈魂在整個(gè)程序設(shè)計(jì)過(guò)程中起著至關(guān)重要的作用。但是算法的學(xué)習(xí)比較枯燥抽象,邏輯思維性強(qiáng)。所以該部分內(nèi)容成為近幾年高中信息技術(shù)課教學(xué)的重點(diǎn)和難點(diǎn)之一。
本文結(jié)合學(xué)生日常生活中實(shí)例和該課題特點(diǎn)展開(kāi)教學(xué)設(shè)計(jì),讓學(xué)生盡快掌握算法的概念、算法的描述、算法的選擇及應(yīng)用。通過(guò)該模塊的學(xué)習(xí),培養(yǎng)學(xué)生的算法思維,用計(jì)算機(jī)去分析問(wèn)題、解決問(wèn)題,以及提高學(xué)生現(xiàn)實(shí)生活中的邏輯思維能力和創(chuàng)新能力。
1.教學(xué)背景分析
(一)教學(xué)內(nèi)容:
(1)什么是算法及算法設(shè)計(jì)的重要意義
(2)設(shè)計(jì)算法的步驟
(3)描述算法的方法
(二)教學(xué)重點(diǎn)和難點(diǎn):
(1)算法描述解決問(wèn)題的方法和步驟。
(2)算法的描述和表示,其中用流程圖表示算法是難點(diǎn)。
(三)學(xué)生情況
學(xué)生具有一定的問(wèn)題分析、解決問(wèn)題的能力。對(duì)程序設(shè)計(jì)有所耳聞,而對(duì)算法設(shè)計(jì)的說(shuō)法就很陌生,不了解在程序設(shè)計(jì)中為何要出現(xiàn)算法設(shè)計(jì)。
2.教學(xué)目標(biāo)
(1)理解算法的概念和意義。
(2)了解描述算法的兩種方法:語(yǔ)言描述法和流程圖
(3)能初步利用算法解決簡(jiǎn)單的問(wèn)題。
(4)培養(yǎng)學(xué)生的理論聯(lián)系實(shí)際能力和動(dòng)手實(shí)踐能力。
3.教學(xué)方法
以任務(wù)驅(qū)動(dòng)和課堂討論的方式,主要是通過(guò)對(duì)實(shí)際問(wèn)題的解決來(lái)突破的,把算法的思想生活化。算法的實(shí)例,不在于程序的難易,而在于要易于學(xué)生接受。老師提出的任務(wù),學(xué)生獨(dú)立思想加分組討論,提出組內(nèi)最佳方案。這樣有利于培養(yǎng)學(xué)生主動(dòng)參與、積極思考、團(tuán)結(jié)協(xié)作,培養(yǎng)學(xué)生分析問(wèn)題等能力。
4.教學(xué)過(guò)程
(一)算法的概念
提出問(wèn)題,要求學(xué)生通過(guò)討論完成任務(wù):
(1)比如在我們?nèi)粘I钪?,寄一份信需要做哪些事才能把信成功地寄出去?/p>
(2)同學(xué)們分組討論,最后總結(jié)出大致可以將寄信的過(guò)程分為這樣的幾個(gè)步驟:
寫(xiě)信、寫(xiě)信封、貼郵票、投入信箱等四個(gè)步驟
(3)(總結(jié))寄信的步驟也就是寄信的算法,引入新課:
在計(jì)算機(jī)中,它是如何來(lái)處理問(wèn)題的呢?是否和我們?nèi)粘L幚硎虑榈倪^(guò)程很類(lèi)似呢?
回答是肯定的,要讓計(jì)算機(jī)解決一個(gè)問(wèn)題,我們就要先編寫(xiě)程序。在編寫(xiě)程序前需要先確定解決問(wèn)題的思路和方法,并要正確地寫(xiě)出求解步驟,這就是算法。引出算法的重要意義。
(二)算法的重要性
(1)以建筑過(guò)程為例,請(qǐng)學(xué)生思考程序中算法設(shè)計(jì)相當(dāng)于建筑過(guò)程中的哪一步?
(2)經(jīng)過(guò)討論和思考,學(xué)生基本上能確定算法設(shè)計(jì)相當(dāng)與建筑圖紙?jiān)O(shè)計(jì),而程序設(shè)計(jì)員在進(jìn)行編寫(xiě)代碼的階段相當(dāng)于建筑工人在砌磚的階段。讓學(xué)生明確算法設(shè)計(jì)的重要性。
(三)算法的設(shè)計(jì)與描述
如何去設(shè)計(jì)算法,舉個(gè)簡(jiǎn)單的例子說(shuō)明:
先拿出兩個(gè)杯子,在A杯中倒入水,在B杯中倒入可樂(lè),請(qǐng)學(xué)生考慮如何將這兩個(gè)杯子中的液體進(jìn)行互換,這時(shí)學(xué)生通過(guò)獨(dú)立思考和分組討論,最后請(qǐng)某學(xué)生到講臺(tái)來(lái)來(lái)演示(提醒學(xué)生可以自帶道具):
(1)用自然語(yǔ)言來(lái)描述:
第一步:自帶一個(gè)杯子C到講臺(tái);
第二步:將A杯中的水倒如C杯;
第三步:將B杯中的水倒如A杯;
第四步:將C杯中的水倒如B杯;
(2)我們把程序設(shè)計(jì)中出現(xiàn)的變量比做是杯子,而杯子中的水就是變量對(duì)應(yīng)的數(shù)據(jù),總結(jié)提升為交換兩個(gè)變量中的數(shù)據(jù),用算法設(shè)計(jì)思路和流程圖描述如下:(演示課件)
①將A中的數(shù)據(jù)送給變量C,即A→C;
②將B中的數(shù)據(jù)送給變量A,即B→A;
③將C中的數(shù)據(jù)送給變量B,即C→B。
總結(jié):要求學(xué)生學(xué)會(huì)利用流程圖中的各個(gè)部件來(lái)描述過(guò)程。
(四)鞏固練習(xí)
輸入三個(gè)不相同的數(shù),求出其中的最小數(shù)。
同樣,先請(qǐng)學(xué)生思考,然后請(qǐng)學(xué)生說(shuō)出他所想到的解決該問(wèn)題的方法。
教師分析:先設(shè)置一個(gè)變量min,用于存放最小數(shù)。當(dāng)輸入a、b、c三個(gè)不相同的數(shù)后,先將a與b進(jìn)行比較,把小者送給變量min,若c 具體算法如下: ①若a ②再將c與min進(jìn)行比較,若c 這樣,min中存放的就是三個(gè)數(shù)中的最小數(shù)。 (五)提高練習(xí) 請(qǐng)學(xué)生將上例中的算法用流程圖來(lái)表示,學(xué)會(huì)用流程圖描述較復(fù)雜的算法。 (1)提示:在這里教師要讓學(xué)生學(xué)會(huì)利用流程圖中的菱形的條件圖形進(jìn)行邏輯運(yùn)算。 (演示課件) (2)提問(wèn):在本題中,條件是什么表達(dá)式? (3)帶著問(wèn)題讓學(xué)生自己摸索著畫(huà)出流程圖。 (4)待學(xué)生做完后,教師也給出一個(gè)流程圖如右圖(圖例1)所示,讓學(xué)生與自己畫(huà)的流程圖進(jìn)行比較,那種畫(huà)法比較好。 5.課堂總結(jié) 請(qǐng)學(xué)生用自己的語(yǔ)言總結(jié)這節(jié)課的學(xué)習(xí)內(nèi)容: 算法是指解決問(wèn)題的思路和方法。 描述算法的形式有多種,常用的有:自然語(yǔ)言和流程圖。 流程圖中常用符號(hào)的含義。 6.教學(xué)評(píng)價(jià) 通過(guò)在課堂上學(xué)生進(jìn)行分組討論交流,形成同學(xué)之間相互學(xué)習(xí)和交流的氛圍。通過(guò)交流學(xué)習(xí),不僅大大激發(fā)了學(xué)生的學(xué)習(xí)興趣,同時(shí)也讓學(xué)生的知識(shí)得到了進(jìn)一步的拓展。 讓學(xué)生能獨(dú)立或與他人合作完成算法的設(shè)計(jì),并能思考設(shè)計(jì)多種算法解決問(wèn)題,并以多種形式描述以同種算法描述方法設(shè)計(jì)的算法進(jìn)行比較,分析哪種算法描述方法更好更合理。注意算法描述方法和指令運(yùn)用是否正確。