程書志
(太湖縣師訓(xùn)科教中心 安徽安慶 246400)
計算思維是當(dāng)前信息技術(shù)教育教學(xué)中十分關(guān)注的主題,但大多數(shù)研究集中在大學(xué)計算機(jī)課程中。隨著《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》的推出,計算思維作為信息技術(shù)學(xué)科四大核心素養(yǎng)之一,成為信息技術(shù)教師的高頻話題,在信息技術(shù)教學(xué)中也要注意如何落實學(xué)生計算思維素養(yǎng)。程序設(shè)計知識作為初中教材的重要內(nèi)容且銜接高中教材,備受師生關(guān)注。從邏輯上講,一個程序是對許多計算示例的簡明而有限的描述,每個程序都包含一個可能的無限過程。而計算思維可將一個復(fù)雜問題通過轉(zhuǎn)化、化簡等方法簡述成一個易于解決、快速理解的問題,可看出,在程序設(shè)計中對學(xué)生進(jìn)行計算思維培養(yǎng)是有捷徑可走的。本文試以研讀八年級下冊第二單元程序編寫初體驗中的活動3“出租車計費程序”來探索培養(yǎng)學(xué)生計算思維的方法。
安徽省初中階段使用的信息技術(shù)教材是安徽省教科院編著的義務(wù)教育階段新課程實驗教科書(非零起點),教材是項目式結(jié)構(gòu),由現(xiàn)實生活中的問題開始引發(fā)學(xué)生思考如何解決問題,一個單元可作為一個項目來解決,在解決問題的過程中學(xué)習(xí)新知識、構(gòu)建新的知識體系。要想在課堂教學(xué)中落實學(xué)生計算思維素養(yǎng),離不開教材,因此教師要研讀教材,發(fā)掘哪些知識點可以用于計算思維培養(yǎng)。
圖1 算法流程圖
“計算思維”由周以真教授在2006年首次提出并進(jìn)行定義,較為公認(rèn)的計算思維最具本質(zhì)的特征是抽象和自動化。教學(xué)中,為了體現(xiàn)計算思維這種抽象特性和自動化本質(zhì),就需要教師對教材進(jìn)行一定的彌補(bǔ)和轉(zhuǎn)化。計算思維的抽象性表現(xiàn)在先將具體問題進(jìn)行分析、提煉、構(gòu)建,然后構(gòu)造解決問題的算法,再采用符號化的形式抽象出來。例如,在“出租車計費程序”這個活動中,教材給的問題情境是“某市出租車的起步價為2.5公里以內(nèi)8元,超過2.5公里的路程,按每公里1.5元計價?!痹谶@個問題上,教師可以繼續(xù)追問:如果你是司機(jī),是不是希望自己只要輸入乘客行駛的路程,馬上就能顯示乘客要支付的費用?我們?nèi)绾沃苯拥贸鼋Y(jié)果?這時教師帶領(lǐng)學(xué)生一起分析,發(fā)現(xiàn)此問題可抽象成2個小問題,即出租車行駛了2.5公里以內(nèi),直接就可以得出8元的結(jié)果;如果超過2.5公里,則要進(jìn)行計算求解。這個過程使用自然語言來描述就是:輸入公里數(shù),如果0<≤25,則=8,否則=8+(-25)×15,輸出應(yīng)付費用。然后進(jìn)一步構(gòu)造解決問題的算法,用程序語言中的選擇結(jié)構(gòu)來實現(xiàn)這個二選一的問題,再將問題及其解法用流程圖的形式表現(xiàn)出來(如圖1)。
這個問題求解過程就是計算思維抽象性的本質(zhì)。教師通過追問問題到分析問題的過程、抽象解法到流程圖描述算法等一系列步驟的呈現(xiàn),學(xué)生不僅學(xué)會了分析問題,計算思維能力也得到了提升。
通過算法的代碼實現(xiàn)以及在機(jī)器上運行求解實現(xiàn)是計算思維中的自動化展現(xiàn)。教材是通過VB編程語言來實現(xiàn)出租車計費程序,學(xué)生使用選擇語句來完成問題中二選一的問題,再通過調(diào)試程序檢驗是否可以正確運行,能否按照之前的算法完成任務(wù)并得到正確的結(jié)果。學(xué)生使用VB編程完成這種抽象的解釋和程序的自動運行,能較深刻地體會到計算思維的自動化本質(zhì)。
圖2 計算思維活動模型圖
計算的目的在于問題解決,而思維的目的在于問題解決和創(chuàng)新發(fā)現(xiàn),所以計算思維的目的也在于問題解決,它是運用計算的方法進(jìn)行一般問題的求解、系統(tǒng)的設(shè)計和人類行為的理解。“問題解決說”也因此獲得眾多學(xué)者和機(jī)構(gòu)的認(rèn)同。2011年,國際教育技術(shù)協(xié)會ISTE分會和CSTA計算機(jī)科學(xué)教師協(xié)會共同制定了中小學(xué)計算思維課程框架,明確將計算思維定義為解決問題的一種過程,這一過程包括問題確定、數(shù)據(jù)分析、抽象表示、算法設(shè)計、方案評估、概括遷移等六個環(huán)節(jié)。人們用計算機(jī)能夠識別的方式來告訴計算機(jī)做什么以及如何做,這就使得問題的解決變?yōu)榱怂惴ǖ拿枋龊统绦虻木帉?。計算思維是基于計算模型(環(huán)境)和約束來解決問題,在問題求解的過程中所使用的方法思路和步驟就是算法。無論是用自然語言、流程圖,還是用其他方式來描述算法,最終目的都是將算法變成能在計算機(jī)中執(zhí)行的程序,算法厘清了解決這些問題的思路,學(xué)生就可以通過自己編寫相關(guān)程序來實現(xiàn)算法。
結(jié)合計算思維的定義以及參考費海明《中小學(xué)生計算思維培育的路徑與策略》一文中的算法構(gòu)建式教學(xué)方法,即讓學(xué)生對任務(wù)實踐中的技術(shù)進(jìn)行抽象,從個別到一般構(gòu)建算法、再從一般到個別檢驗算法,在此過程中培育計算思維。對程序設(shè)計教材內(nèi)容進(jìn)行分析,將計算思維方法滲透于教學(xué)活動過程,構(gòu)建計算思維活動模型(如圖2),通過這樣六步活動來解決問題。下面就以“出租車計費程序”這個小程序為例,來看這些教學(xué)活動在課堂教學(xué)中的實施步驟。第一步:將問題呈現(xiàn)給學(xué)生;第二步:通過分析問題,將問題抽象成可用變量表示的兩段公式;第三步:設(shè)計算法流程圖,對于初學(xué)者可先將問題用自然語言進(jìn)行描述,再轉(zhuǎn)化成算法流程圖,更易于學(xué)生理解;第四步:編寫程序,在學(xué)生初學(xué)程序設(shè)計內(nèi)容時,計算思維的培養(yǎng)重點應(yīng)強(qiáng)調(diào)理解(和能夠有效執(zhí)行)計算的過程,為了讓學(xué)生更好地理解計算思維的思想,可給出部分代碼;第五步:調(diào)試程序,在調(diào)試過程中學(xué)生需要體會選擇結(jié)構(gòu)中條件的作用,了解程序執(zhí)行的有窮性、正確性、有效性,將教材“知識庫”中關(guān)于算法及其特性的內(nèi)容在此環(huán)節(jié)對學(xué)生介紹,并讓學(xué)生上機(jī)體會,學(xué)生計算思維能力得到發(fā)展,更有利于后續(xù)的概括遷移;第六步:概括遷移,可利用 “創(chuàng)新園”中的練習(xí)2修改出租車計費標(biāo)準(zhǔn),按照前五步的教學(xué)活動模式來重新設(shè)計程序,還可將課堂所學(xué)知識點遷移到單元活動2中“圓面積計算程序”,增加一個判斷輸入半徑為負(fù)數(shù)的功能,并給出提示信息。在此過程中,學(xué)生進(jìn)一步理解了選擇結(jié)構(gòu)的算法思想,也進(jìn)一步體會到了在問題求解過程中計算思維的自動化特征。
計算思維培育需要合適的資源、有效的實踐活動、教學(xué)策略與教學(xué)方法的創(chuàng)新和應(yīng)用。按照六步教學(xué)活動構(gòu)建課堂,學(xué)生從具體的問題到抽象的問題然后到算法的設(shè)計,再從編寫程序到調(diào)試程序,最終通過概念遷移回歸問題,可以較為自然地構(gòu)建計算思維。
計算思維首先來自計算機(jī)科學(xué),它兼具計算和思維的特質(zhì),經(jīng)過近十幾年的研究與發(fā)展,已經(jīng)成為人類所應(yīng)具備的基本思維,與理論思維、實驗思維并稱為世界三大科學(xué)思維。隨著計算機(jī)的普及,計算機(jī)能解決的問題越來越多,計算機(jī)變成了人類思維的執(zhí)行者,人類思維的內(nèi)容和方式也發(fā)生了變化。
那么,教師在課堂教學(xué)中如何去評價和檢測學(xué)生的計算思維能力呢?我們試從計算思維定義出發(fā),一是從計算和問題求解的角度來評價,它可以脫離編程對學(xué)生進(jìn)行評價。這種評價強(qiáng)調(diào)學(xué)生成為計算思考者,思考如何在數(shù)據(jù)中發(fā)現(xiàn)規(guī)律、如何將問題抽象處理甚至可以建立模型。二是從計算機(jī)科學(xué)和編程的角度來評價,計算思維是通過約簡、嵌入、轉(zhuǎn)化以及仿真的方法來解決問題,是一種遞歸思維,其中包含了變量、循環(huán)、程序編寫與調(diào)試、算法優(yōu)化等編程概念和方法。學(xué)生用程序來解決問題,就可以用其編程表現(xiàn)去評價他們的計算思維。下面是以“出租車計費程序”一課為例設(shè)計出的計算思維評價表,表1是計算和問題求解角度評價表,表2是計算機(jī)科學(xué)和編程角度評價表。
表1 計算和問題求解角度學(xué)習(xí)評價表
表2 計算機(jī)科學(xué)和編寫程序角度學(xué)習(xí)評價表
兩個表格中的評價內(nèi)容隨著課堂內(nèi)容不同而作了不同的設(shè)計,但要點是將學(xué)習(xí)內(nèi)容分兩個角度去呈現(xiàn),這樣學(xué)生對自己的學(xué)習(xí)行為和能力有所了解,教師也可以通過表格看出學(xué)生計算思維能力得到了怎樣的發(fā)展和提升。兩個表格也向?qū)W生展示了計算思維的構(gòu)建過程,讓學(xué)生明白提高計算思維素養(yǎng)比單純操作計算機(jī)更為重要。
培養(yǎng)學(xué)生的計算思維,是為了讓學(xué)生能像計算機(jī)學(xué)科專家一樣形成用計算機(jī)求解問題的特有思維習(xí)慣及思維方式。雖然計算思維能力的培養(yǎng)非一日之功,但信息技術(shù)學(xué)科教學(xué)尤其是程序設(shè)計的內(nèi)容能更好地培養(yǎng)學(xué)生從生活中的問題求解過渡到學(xué)會用計算機(jī)進(jìn)行問題求解。本文主要通過具體的課堂教學(xué)案例,探索利用信息技術(shù)教材發(fā)現(xiàn)計算思維本質(zhì),探討如何將計算思維融入程序設(shè)計課堂教學(xué)中的方法。