張良環(huán)
在高中信息技術(shù)課程的培養(yǎng)目標(biāo)中,“計算思維”直面學(xué)科特性,為重新審視信息技術(shù)學(xué)科所蘊含的思想與方法帶來了全新的角度,而培養(yǎng)學(xué)生的計算思維也成為高中信息技術(shù)學(xué)科教學(xué)的關(guān)注熱點。筆者結(jié)合自己的教學(xué)實踐,以《用窮舉法設(shè)計程序》為例,分別從教學(xué)目標(biāo)、活動設(shè)計、教學(xué)資源和教學(xué)評價四個方面談?wù)剬τ嬎闼季S的培養(yǎng)。
計算思維是指采用計算機方式界定問題,運用合理的算法形式解決問題,并遷移到與之相關(guān)的其他問題中。然而,當(dāng)前高中信息技術(shù)教學(xué)大多重視技術(shù)素養(yǎng)的培養(yǎng),對學(xué)生學(xué)科思維方面的訓(xùn)練研究不夠、實踐太少。因此,要改變以往教學(xué)的思路和方法,教師必須將計算思維的培養(yǎng)明確到教學(xué)目標(biāo)中。
以廣東教育出版社《算法與程序設(shè)計》中的第四章第二節(jié)《用窮舉法設(shè)計程序》為例,筆者將教學(xué)目標(biāo)確定為:
1. 了解窮舉法的基本概念和思想;
2. 能用窮舉法對具體問題進(jìn)行分析及算法設(shè)計;
3. 能根據(jù)具體問題的條件,進(jìn)行算法優(yōu)化。
根據(jù)窮舉法的原理和計算思維處理問題的本質(zhì),可以將問題分解為三個子目標(biāo):
1. 確定枚舉對象和枚舉范圍,不遺漏,不重復(fù);
2. 確定判斷條件,逐一驗證每個解是否都正確;
3. 使可能解的范圍降至最小,以便提高解決問題的效率。
這樣將復(fù)雜的算法思想和解決問題的過程分解為若干個子問題、子目標(biāo)的教學(xué)思路同樣可以應(yīng)用到其他經(jīng)典算法的教學(xué)當(dāng)中,學(xué)生在學(xué)習(xí)目標(biāo)達(dá)成的過程中逐步提升計算思維的培養(yǎng),體驗算法的魅力,加深學(xué)習(xí)算法的欲望。
新課標(biāo)倡導(dǎo)項目教學(xué),因此筆者模仿了學(xué)生感興趣的綜藝節(jié)目《奔跑吧,兄弟》,創(chuàng)設(shè)相關(guān)情境,將“密碼破譯”“百錢百雞”“水仙花數(shù)”“誰是案犯”等經(jīng)典問題融入到挑戰(zhàn)游戲項目活動中,引導(dǎo)學(xué)生分析問題,找出規(guī)律,鞏固思維,讓學(xué)生在解決問題的過程中體會窮舉法的基本思想和程序?qū)崿F(xiàn)。
1. 導(dǎo)入新課環(huán)節(jié)的任務(wù)設(shè)置
【情境】(播放筆者課前自制的動畫)《奔跑吧,兄弟》節(jié)目組向全班發(fā)出邀請,以4人為一小組自行組隊參賽,按要求順序完成4個任務(wù),哪個小組最先完成任務(wù)即獲勝?,F(xiàn)在所有的任務(wù)要求都在一個加密的文件中,文件密碼是1位小寫字母,請你盡快破解密碼,拿到任務(wù)卡奔跑吧。
筆者通過一個簡單的、十分常見的小任務(wù)引人窮舉法的主題,讓學(xué)生體會算法并不抽象,使其更有親切感,并親歷窮舉法解決問題的基本思路:第一步,根據(jù)問題的要求,把所有可能的情況都考慮到;第二步,對全部可能的結(jié)果(密碼)逐一進(jìn)行判斷,過濾掉不符合要求的,直至找到正確的結(jié)果(密碼)。利用“思維拓展”的設(shè)置讓學(xué)生體會到人工窮舉的局限性,發(fā)揮計算解決問題的優(yōu)勢,引發(fā)學(xué)生思考生活中的例子用計算機編程解決的必要性和意義。
2. 項目(主題)活動中的任務(wù)設(shè)置
在窮舉法教學(xué)中,采用一個項目(主題)活動貫穿整個教學(xué)過程,按照教學(xué)目標(biāo)設(shè)計階梯化任務(wù),引導(dǎo)學(xué)生由簡單的問題不斷思考,建構(gòu)出相應(yīng)模型。在不斷使用同一種解題思路解決問題的過程中,學(xué)生能力將呈螺旋式上升,思維也得到鍛煉。筆者在這一環(huán)節(jié)設(shè)計了以下活動任務(wù):
任務(wù)一:窮舉方案的設(shè)計及程序?qū)崿F(xiàn)
【情境】《奔跑吧兄弟》游戲設(shè)置的第一個任務(wù)是用銀行卡到最近的柜員機提取100元,但拿到的銀行卡密碼紙條已破損,只能看到6位數(shù)密碼是159□4□,個位數(shù)和百位數(shù)已經(jīng)模糊不清,不過紙條上還提示這個6位數(shù)能被88整除。
筆者將計算思維滲透到任務(wù)的設(shè)置中,啟發(fā)學(xué)生將抽象的概念進(jìn)行數(shù)學(xué)建模,并用循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)進(jìn)行實現(xiàn),培養(yǎng)學(xué)生界定問題、抽象特征、建構(gòu)模型、確定算法的計算思維。
學(xué)生經(jīng)過個人思考、小組討論,最后給出整個方案。任務(wù)進(jìn)行到這里并沒有結(jié)束,筆者再次提出了新的拓展任務(wù):在不遺漏任何一個正確解的前提下,如何縮小羅列的編碼范圍,從而達(dá)到循環(huán)結(jié)構(gòu)循環(huán)次數(shù)減少的目的,來提高程序的執(zhí)行效率,即實現(xiàn)程序最優(yōu)化。這一任務(wù)培養(yǎng)了學(xué)生多維度思考問題的習(xí)慣,提升了計算思維的應(yīng)用。
任務(wù)二:拓展延伸
【情境】《奔跑吧兄弟》游戲發(fā)出的第三個任務(wù)是挑戰(zhàn)以下問題:
(1)已知玩具公雞每只5元,母雞3元,小雞1元3只,要求用100元買100個小玩具,三種玩具都要有。
(2)如果一個三位數(shù)等于它的每個數(shù)位上數(shù)字的立方和,如153=13+53+33,則我們稱此數(shù)為“水仙花數(shù)”。求100-999之間的全部水仙花數(shù)。
(3)有6名犯罪嫌疑人A、B、C、D、E、F,已知:A、B至少有1人作案;A、E、F三人中至少有2人參與作案;A、D不可能是同案犯;B、C或同時作案,或與本案無關(guān);C、D中有且僅有1人作案;如果D沒有參與作案,則E也不可能參與作案。請推理出誰作了案。
整個課堂教學(xué)中,學(xué)生經(jīng)歷了分析問題、建構(gòu)數(shù)學(xué)模型、確定算法、編程實現(xiàn)算法的基本過程,并在兩個窮舉方案的制定過程中領(lǐng)會窮舉算法解決問題的基本思路、算法優(yōu)化和窮舉算法的適用范圍,在解決問題和完成任務(wù)中提升計算思維;教師通過組織學(xué)生討論和歸納、思維啟發(fā)等教學(xué)方式來培養(yǎng)學(xué)生的計算思維,從解決實際問題中親歷窮舉算法的實現(xiàn)和知識的遷移,并且在最后設(shè)置了窮舉算法的現(xiàn)實應(yīng)用的探究,使算法的學(xué)習(xí)回歸到生活中。
能否充分地、精心地做好課前教學(xué)資源的準(zhǔn)備是有效培養(yǎng)學(xué)生計算思維的必要前提條件。筆者在窮舉法教學(xué)設(shè)計的時候,利用UMN互動平臺在課前向?qū)W生發(fā)布了教學(xué)資源包,包括介紹窮舉算法的微課視頻、窮舉法設(shè)計程序?qū)W(xué)案、程序半成品、拓展閱讀材料等。這些教學(xué)資源可以讓學(xué)生課前對上文中提到的任務(wù)有充分的時間去思考去預(yù)習(xí),課后也可以對學(xué)習(xí)進(jìn)行檢驗與補充拓展,為學(xué)生計算思維的培養(yǎng)和應(yīng)用提供了載體。資源還包含了檢測題目,提升不同層次學(xué)生的思維敏捷性和獨創(chuàng)性。
多元化評價,一方面可以是教師對學(xué)生的評價,在《用窮舉法設(shè)計程序》一課中,筆者根據(jù)學(xué)生在學(xué)習(xí)過程中的表現(xiàn)以及方案完成情況來評價學(xué)生用計算思維解決問題的能力。另一方面是指學(xué)生借助導(dǎo)學(xué)案和評價表,完成自評和互評。筆者根據(jù)教學(xué)目標(biāo)和計算思維培養(yǎng)目標(biāo)設(shè)計了一份發(fā)展性評價表,根據(jù)表格的描述,學(xué)生在進(jìn)行自評時,能清楚地知道自己掌握到什么水平。
計算思維是信息技術(shù)學(xué)科核心素養(yǎng)的根基,更是培養(yǎng)信息技術(shù)核心素養(yǎng)的著力點。如何將計算思維貫穿于教育教學(xué)的全過程,提升學(xué)生計算思維的意識和品質(zhì),將是今后學(xué)科研究的核心內(nèi)容。筆者僅以《用窮舉法設(shè)計程序》一課為例,將計算思維的培養(yǎng)滲透到課程教學(xué)設(shè)計中,為學(xué)生核心素養(yǎng)的提升、解決問題能力的提高打下基礎(chǔ)。
(作者單位:廣東潮州市饒平縣貢天職業(yè)技術(shù)學(xué)校)
責(zé)任編輯?? 晁芳芳