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