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