邵紅祥
計(jì)算思維是一種問(wèn)題求解思維,其一般經(jīng)歷抽象—形式化表達(dá)—構(gòu)造—自動(dòng)化的方法路徑,這也是具有計(jì)算思維特征的思維軌跡。同時(shí),計(jì)算思維作為一種思維活動(dòng),不會(huì)憑空產(chǎn)生,需要遇到某種困惑、懷疑或問(wèn)題等才會(huì)被激活,是在知識(shí)的加工過(guò)程中不斷發(fā)展的。因此,在培養(yǎng)計(jì)算思維的過(guò)程中,知識(shí)是計(jì)算思維的材料,對(duì)知識(shí)的不同處理關(guān)系到計(jì)算思維的發(fā)展。為此,信息技術(shù)教師可利用知識(shí)的問(wèn)題化、條件化、能力化和結(jié)構(gòu)化的“四化”策略,提升學(xué)生抽象、認(rèn)知、構(gòu)造和遷移的能力,從而發(fā)展學(xué)生的計(jì)算思維。
● 知識(shí)問(wèn)題化,提升抽象能力
知識(shí)本身并不是力量,靈活運(yùn)用知識(shí)解決問(wèn)題更重要。將知識(shí)問(wèn)題化,設(shè)計(jì)出好的問(wèn)題,引導(dǎo)學(xué)生發(fā)現(xiàn)問(wèn)題、分析問(wèn)題和解決問(wèn)題,促進(jìn)學(xué)生主動(dòng)思維。針對(duì)信息技術(shù)學(xué)科的求解問(wèn)題,人們需要基于計(jì)算機(jī)科學(xué)的知識(shí)采用數(shù)字化、離散化、符號(hào)化、序列化等方法實(shí)現(xiàn)自動(dòng)化。利用計(jì)算機(jī)實(shí)現(xiàn)自動(dòng)計(jì)算的前提是抽象,即對(duì)事物的性質(zhì)、狀態(tài)及其變化過(guò)程或規(guī)律進(jìn)行符號(hào)化描述,其通過(guò)化簡(jiǎn)等方式,抓住問(wèn)題的關(guān)鍵特征,厘清問(wèn)題的本質(zhì),將問(wèn)題轉(zhuǎn)換成計(jì)算機(jī)可以處理的模型。抽象的過(guò)程其實(shí)是對(duì)事務(wù)處理流程的重構(gòu),最終能實(shí)現(xiàn)自動(dòng)化來(lái)提高生產(chǎn)、生活和學(xué)習(xí)的效率。為此,提升抽象能力是計(jì)算思維能力培養(yǎng)的關(guān)鍵。
在培養(yǎng)學(xué)生抽象能力的過(guò)程中,要盡可能提供復(fù)雜的、不確定的現(xiàn)實(shí),即通過(guò)知識(shí)情境化來(lái)實(shí)現(xiàn)知識(shí)問(wèn)題化。例如,利用計(jì)算機(jī)編程實(shí)現(xiàn)“猜數(shù)游戲”,可以創(chuàng)設(shè)如下情境:在一次班級(jí)聯(lián)歡會(huì)上,同學(xué)們玩了一個(gè)猜商品價(jià)格的游戲。A同學(xué)出示一商品,價(jià)格在1~100元之間,要求B同學(xué)猜價(jià)格。每猜一個(gè)價(jià)格,A同學(xué)需要回答猜對(duì)了、猜大了或猜小了?,F(xiàn)在,請(qǐng)你編寫一段程序,讓計(jì)算機(jī)來(lái)完成A同學(xué)的工作。在利用原有的編程知識(shí)來(lái)解決該問(wèn)題之前,首先要從所給的情境中“分離”出與本問(wèn)題有關(guān)的研究對(duì)象——商品和B同學(xué),不考慮其他無(wú)關(guān)的對(duì)象;然后,“提純”這兩個(gè)對(duì)象的本質(zhì)屬性,即商品的價(jià)格和B同學(xué)所猜的價(jià)格,忽略非本質(zhì)屬性,如商品的名稱與形狀、同學(xué)的性別與年齡等;最后,在提純出問(wèn)題本質(zhì)的基礎(chǔ)上,還可以進(jìn)一步簡(jiǎn)略,排除掉一些多余的信息以降低解決問(wèn)題時(shí)的復(fù)雜性。經(jīng)過(guò)分離、提純和簡(jiǎn)略以后,抽象出該問(wèn)題關(guān)鍵的要素為商品的價(jià)格和B同學(xué)所猜的價(jià)格。
● 知識(shí)條件化,提升認(rèn)知能力
面對(duì)龐雜的任務(wù)或者設(shè)計(jì)巨大復(fù)雜的系統(tǒng),計(jì)算思維采用抽象來(lái)明確求解問(wèn)題中的關(guān)鍵要素。然后,為了有效解決問(wèn)題,還需要將問(wèn)題形式化表達(dá),即選擇合適的方式描述系統(tǒng)的因果關(guān)系、關(guān)鍵要素的相互關(guān)系,或不同狀態(tài)的轉(zhuǎn)換關(guān)系等,使得問(wèn)題易于處理和可計(jì)算。例如,根據(jù)問(wèn)題的特征,選擇相應(yīng)的問(wèn)題求解策略,建立相應(yīng)的問(wèn)題求解模型,考慮相應(yīng)的問(wèn)題求解效率,權(quán)衡相應(yīng)的問(wèn)題求解時(shí)空開銷,等等。在此過(guò)程中,需要學(xué)生能熟練提取與問(wèn)題相關(guān)的知識(shí),具備對(duì)信息進(jìn)行有效判斷和選擇的能力,而這和學(xué)生的前概念認(rèn)知體系、元認(rèn)知風(fēng)格以及思維習(xí)慣有關(guān)。教師如果能將知識(shí)進(jìn)行條件化處理,將極大地提升學(xué)生的認(rèn)知能力,進(jìn)而培養(yǎng)學(xué)生的計(jì)算思維能力。知識(shí)條件化是指在課堂教學(xué)中,教師根據(jù)知識(shí)的內(nèi)容、形式、旨趣,不斷地變更問(wèn)題的情境或思維的角度,讓學(xué)生掌握知識(shí)的本質(zhì),弄清知識(shí)的內(nèi)涵、外延,扣準(zhǔn)實(shí)際應(yīng)用的條件、范圍,從不同角度、不同層次對(duì)概念、規(guī)律進(jìn)行推敲、驗(yàn)證。知識(shí)的產(chǎn)生和運(yùn)用需要情境,情境是知識(shí)產(chǎn)生和運(yùn)用的條件。在實(shí)際應(yīng)用中,教師要?jiǎng)?chuàng)設(shè)不同的情境,讓知識(shí)重新回歸其存在的土壤,讓知識(shí)的呈現(xiàn)不再只是孤立的命題和事實(shí),讓學(xué)生在學(xué)習(xí)知識(shí)內(nèi)容的同時(shí),從不同的思維角度,掌握這些知識(shí)間的聯(lián)系、適用的條件和范圍,以及它們是如何解決該問(wèn)題的等等。
例如,在上述“猜數(shù)游戲”問(wèn)題中,在得出與問(wèn)題相關(guān)的“商品的價(jià)格”和“B同學(xué)所猜的價(jià)格”兩個(gè)關(guān)鍵要素的基礎(chǔ)上,需要思考這兩個(gè)關(guān)鍵要素之間有怎樣的聯(lián)系、怎樣處理才能解決問(wèn)題等,從而梳理出相應(yīng)的計(jì)算模型:反復(fù)猜數(shù),直到“B同學(xué)所猜的價(jià)格”與“商品的價(jià)格”相等為止,每猜一個(gè)價(jià)格,分別給出“猜大了!”“猜小了!”“猜對(duì)了!”的提示。此時(shí),需要學(xué)生提取與該問(wèn)題相關(guān)的知識(shí),如重復(fù)讓計(jì)算機(jī)做某件事情,可以采用循環(huán)結(jié)構(gòu)來(lái)解決;根據(jù)條件判斷分別給出相應(yīng)結(jié)果,可以采用選擇結(jié)構(gòu)來(lái)實(shí)現(xiàn)。并要讓新知與舊知產(chǎn)生聯(lián)系,如先前所學(xué)的for循環(huán)語(yǔ)句是否適用、選用哪種選擇結(jié)構(gòu)語(yǔ)句來(lái)實(shí)現(xiàn)等,在此基礎(chǔ)上建立相應(yīng)的計(jì)算模型。
進(jìn)一步地,可以在以上情境的基礎(chǔ)上,增加如下條件:B同學(xué)先從1~100的中間數(shù)50開始猜,根據(jù)計(jì)算機(jī)的提示決定下一個(gè)猜的價(jià)格數(shù)。如果猜大了,則在1~49之間取中間數(shù)繼續(xù)猜;如果猜小了,則取51~100之間的中間數(shù)繼續(xù)猜……如此反復(fù),直到猜對(duì)為止。此時(shí),與情境問(wèn)題相關(guān)的知識(shí),從原先的程序結(jié)構(gòu)轉(zhuǎn)換成了二分查找算法,需要讓學(xué)生思考是不是任意的一列數(shù)據(jù)都可采用二分查找算法?該情境中為什么能用二分查找算法?通過(guò)情境的變換、問(wèn)題的思考,讓學(xué)生變更不同的思維角度,思考相關(guān)知識(shí)適用的條件、相關(guān)知識(shí)是如何解決該問(wèn)題的等。因此,建立該問(wèn)題的計(jì)算模型就需要具有跟前面問(wèn)題不一樣的知識(shí)和思維角度。
● 知識(shí)能力化,提升構(gòu)造能力
運(yùn)用計(jì)算機(jī)對(duì)抽象出的計(jì)算模型進(jìn)行自動(dòng)化求解,需要掌握一定的思維方式和解決方法,尤其需要具備構(gòu)造性的思維能力。計(jì)算思維給人類求解問(wèn)題提供了一條途徑,自從有了計(jì)算設(shè)備,人類就需要具備“構(gòu)造虛擬世界自由”的能力,能夠超越物理世界去打造各種系統(tǒng)。因此,我們要通過(guò)知識(shí)能力化,將獲取知識(shí)的過(guò)程內(nèi)化成一種能力,將知識(shí)內(nèi)化成解決問(wèn)題的能力,將獲取的知識(shí)轉(zhuǎn)化成用于指導(dǎo)生產(chǎn)生活實(shí)踐的能力,具體而言,需要掌握計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法,提升構(gòu)造的能力。例如,在用計(jì)算機(jī)編程求解問(wèn)題之前,需要掌握“抽象建模—設(shè)計(jì)算法—編寫程序—運(yùn)行調(diào)試”的一般方法,要明確每個(gè)步驟的本質(zhì)及它們之間的聯(lián)系,要能運(yùn)用相應(yīng)的思想構(gòu)造出合適高效的算法,要能用某種程序設(shè)計(jì)語(yǔ)言準(zhǔn)確描述解決問(wèn)題的方法與步驟等。構(gòu)造的過(guò)程是一個(gè)計(jì)算的過(guò)程,也是一個(gè)算法設(shè)計(jì)與實(shí)施的過(guò)程。
在上述“猜數(shù)游戲”問(wèn)題中,在計(jì)算模型建立后,需要構(gòu)造相應(yīng)的算法,然后將算法用編程語(yǔ)言進(jìn)行描述,直至運(yùn)行程序解決問(wèn)題。在構(gòu)造算法時(shí),可以采用模塊化的思想,將大問(wèn)題分解和細(xì)化成若干個(gè)可解的小問(wèn)題,再通過(guò)求解這些基本問(wèn)題求得原問(wèn)題的解。針對(duì)“猜數(shù)游戲”問(wèn)題,可以先采用循環(huán)結(jié)構(gòu)描述整個(gè)問(wèn)題的求解過(guò)程,循環(huán)體為“輸入B同學(xué)猜的數(shù)guess,兩數(shù)比較”,然后將“兩數(shù)比較”細(xì)化,采用分支結(jié)構(gòu)實(shí)現(xiàn)“根據(jù)兩數(shù)比較的結(jié)果,輸出相應(yīng)的提示信息,若相等,將running賦值為True”的功能。
自圖靈的計(jì)算理論提出以來(lái),科學(xué)家們已經(jīng)研究了眾多應(yīng)用信息技術(shù)解決問(wèn)題的概念與原理,形成了具有豐富知識(shí)內(nèi)容且行之有效的分析問(wèn)題與解決問(wèn)題的典型方法與思想。在計(jì)算思維培養(yǎng)過(guò)程中,要將這些方法與思想能力化,使學(xué)生具備面對(duì)復(fù)雜問(wèn)題能構(gòu)造恰當(dāng)?shù)慕鉀Q方案,并通過(guò)計(jì)算解決問(wèn)題的能力。
● 知識(shí)結(jié)構(gòu)化,提升遷移能力
計(jì)算思維是以解決計(jì)算問(wèn)題為出發(fā)點(diǎn),具有獨(dú)特的采集數(shù)據(jù)、抽象特征、構(gòu)建模型、形成解決方案的思維框架,具備認(rèn)知世界和解決問(wèn)題的能力,并能遷移到其他領(lǐng)域。從中可以看出,遷移是計(jì)算思維培養(yǎng)需要達(dá)到的目標(biāo)。為此,新課標(biāo)理念下的教學(xué)要從過(guò)去關(guān)注學(xué)科知識(shí)技能轉(zhuǎn)向關(guān)注培養(yǎng)學(xué)生的關(guān)鍵能力和必備品質(zhì),通過(guò)知識(shí)結(jié)構(gòu)化,分析其內(nèi)在關(guān)聯(lián),推斷其邏輯關(guān)系,將零散的知識(shí)整合處理,使其圍繞“主題意義”,形成結(jié)構(gòu)化知識(shí),進(jìn)而內(nèi)化知識(shí),遷移運(yùn)用知識(shí),促進(jìn)知識(shí)向核心素養(yǎng)轉(zhuǎn)化。
知識(shí)不是信息的簡(jiǎn)單羅列,而是相互之間有內(nèi)在的聯(lián)系和邏輯關(guān)系的。知識(shí)只有通過(guò)學(xué)生在某些特定情境下的主動(dòng)參與、互動(dòng)體驗(yàn)、分析評(píng)價(jià)、內(nèi)化遷移才能真正建構(gòu)起來(lái),才能被納入到已有的認(rèn)知結(jié)構(gòu)中,真正在大腦中形成長(zhǎng)時(shí)記憶,在學(xué)習(xí)活動(dòng)中被隨時(shí)“調(diào)用”,在深層次的有意義的學(xué)習(xí)活動(dòng)中發(fā)揮重要作用。所以,知識(shí)結(jié)構(gòu)化強(qiáng)調(diào)知識(shí)都是聯(lián)系的、建構(gòu)的、整合的。在學(xué)習(xí)過(guò)程中,教師創(chuàng)設(shè)真實(shí)情境,讓學(xué)生通過(guò)抽象,分析、提出、形成學(xué)科問(wèn)題,運(yùn)用相關(guān)的知識(shí)和技能形成學(xué)科解決方案,在此基礎(chǔ)上,還需要?dú)w納、概括和提煉出解決該問(wèn)題運(yùn)用了哪些方法與思想、該解決方案還能解決哪些同類問(wèn)題,形成實(shí)際解決方案,這樣,“現(xiàn)實(shí)世界中的真實(shí)問(wèn)題”“學(xué)科問(wèn)題”“學(xué)科解決方案”“實(shí)際解決方案”就形成了一個(gè)循環(huán)。也就是說(shuō),實(shí)際解決方案更有利于解決現(xiàn)實(shí)世界中的真實(shí)問(wèn)題。因此,在整個(gè)過(guò)程中尤其要關(guān)注從“學(xué)科解決方案”到“實(shí)際解決方案”的建構(gòu),讓學(xué)生歸納、構(gòu)建新知識(shí),并能基于新知識(shí),提出批判性問(wèn)題,形成自己的觀點(diǎn),將解決這個(gè)問(wèn)題的思想和方法進(jìn)行遷移應(yīng)用,解決同類問(wèn)題,舉一反三,一通百通,進(jìn)而在教學(xué)中培養(yǎng)學(xué)生的高階認(rèn)知,提升學(xué)生的思維能力。
在上述“猜數(shù)游戲”問(wèn)題中,可以根據(jù)設(shè)計(jì)的算法編寫出相應(yīng)的程序代碼。當(dāng)學(xué)生運(yùn)行調(diào)試成功后,這是否意味整個(gè)學(xué)習(xí)活動(dòng)的結(jié)束?答案是否定的,編寫出相應(yīng)的程序代碼,只是解決了學(xué)科問(wèn)題,得到了學(xué)科解決方案,而要讓學(xué)生具有較強(qiáng)的遷移能力,還需要將該學(xué)科解決方案建構(gòu)成實(shí)際解決方案,可通過(guò)循環(huán)結(jié)構(gòu)中的條件和循環(huán)體如何抽象與表示、如何根據(jù)問(wèn)題特征來(lái)選用while或for循環(huán)語(yǔ)句、不同的程序代碼是如何來(lái)實(shí)現(xiàn)同一功能的、效率和編寫實(shí)現(xiàn)上有何區(qū)別?等問(wèn)題來(lái)實(shí)現(xiàn)。
在對(duì)學(xué)科解決方案進(jìn)行反思、提煉與拓展的過(guò)程中,建構(gòu)結(jié)構(gòu)化知識(shí),激發(fā)學(xué)生的思維,引導(dǎo)學(xué)生將零散的知識(shí)整合起來(lái),將所學(xué)的“死知識(shí)”轉(zhuǎn)化成解決實(shí)際問(wèn)題的“活知識(shí)”,促進(jìn)知識(shí)的內(nèi)化,達(dá)到遷移解決同類問(wèn)題的目標(biāo)。
計(jì)算思維是人類科學(xué)思維活動(dòng)的重要組成部分,編程只是實(shí)踐計(jì)算思維的重要手段。因此,教師在教學(xué)過(guò)程中,要深刻領(lǐng)會(huì)計(jì)算思維的概念,抓住計(jì)算思維的本質(zhì),從計(jì)算思維培養(yǎng)的角度開展教與學(xué)的活動(dòng)。當(dāng)然這是一個(gè)長(zhǎng)期的過(guò)程,需要不斷探索,努力實(shí)踐。