于紀(jì)明,李冠瓊,朱 坤
(1.哈爾濱師范大學(xué)附屬中學(xué) 電教中心,黑龍江 哈爾濱 150000;2.哈爾濱師范大學(xué) 教育科學(xué)學(xué)院,黑龍江 哈爾濱 150000;3.哈爾濱市第三中學(xué) 電教中心,黑龍江 哈爾濱 150000)
隨著新興技術(shù)的興起,云計(jì)算、大數(shù)據(jù)、量化學(xué)習(xí)、人工智能等新興詞匯已成為現(xiàn)代化的標(biāo)簽。百年大計(jì)教育為本,教育要順應(yīng)現(xiàn)代化的發(fā)展,必然要順應(yīng)時(shí)代需求,因此,人才的培養(yǎng)是重中之重。在人才培養(yǎng)實(shí)施階段中,人類的思維方式和實(shí)用工具決定行動(dòng)方案,所以,培養(yǎng)人才還需從根本出發(fā),調(diào)整思維方式,改變行動(dòng)方案,提升問題解決的效率與質(zhì)量。這就需要教育者關(guān)注對學(xué)習(xí)者計(jì)算思維的培養(yǎng),改變學(xué)習(xí)者的思維模式,使問題解決得更高效快捷。
2006 年,周以真[1]發(fā)表論文《Computational Thinking》,自此,“計(jì)算思維”這一名詞便進(jìn)入人們的視野。在此定義中可以看到,計(jì)算思維并不屬于某一具體學(xué)科,也并非完全屬于某一領(lǐng)域,而是作為一種抽象化的思維方式存在,其中將運(yùn)用計(jì)算機(jī)科學(xué)的理念作為支撐,并最終在問題解決過程中作為一種工具呈現(xiàn)。另外,周以真[1]教授還指出,計(jì)算思維應(yīng)當(dāng)作為一種普適性思維為眾所用。周以真教授對計(jì)算思維提出的定義,雖然具有時(shí)代意義和開創(chuàng)性,但這個(gè)定義依舊是強(qiáng)調(diào)其工具特征,忽略了對計(jì)算思維本身的闡述,也就是內(nèi)在的結(jié)構(gòu)、框架、組成元素。2010 年美國師生創(chuàng)新技術(shù)體驗(yàn)機(jī)構(gòu)對計(jì)算思維進(jìn)行了定義,較2006 年周以真教授提出的定義,對計(jì)算思維的應(yīng)用層面進(jìn)行了進(jìn)一步的補(bǔ)充,說明:在運(yùn)用計(jì)算思維進(jìn)行問題解決中,應(yīng)當(dāng)做什么,怎樣做。2011 年,計(jì)算機(jī)科學(xué)教師協(xié)會(huì)(CSTA)與美國教育技術(shù)協(xié)會(huì)(ISTE)共同提出關(guān)于計(jì)算思維的認(rèn)識(shí),明確說明了運(yùn)用計(jì)算思維進(jìn)行問題解決的具體過程,充分體現(xiàn)了計(jì)算思維抽象與自動(dòng)化的特征,也體現(xiàn)了計(jì)算思維、數(shù)學(xué)思維、工程思維之間的思維融合。2017 年,我國高中信息技術(shù)課程標(biāo)準(zhǔn)起草組說明了計(jì)算思維解決問題的一般過程,在這個(gè)過程中,計(jì)算機(jī)學(xué)科知識(shí)始終作為支撐貫穿整個(gè)環(huán)節(jié),強(qiáng)調(diào)了計(jì)算思維與計(jì)算機(jī)學(xué)科的重要聯(lián)系,說明了其實(shí)踐操作的主要內(nèi)容。
根據(jù)以上對不同國家、不同學(xué)者關(guān)于計(jì)算思維的定義分析可以發(fā)現(xiàn),目前,人們對計(jì)算思維的統(tǒng)一認(rèn)識(shí)存在學(xué)科基礎(chǔ)和功能屬性兩個(gè)方面。在學(xué)科基礎(chǔ)層面,學(xué)者們普遍將計(jì)算思維作為計(jì)算科學(xué)領(lǐng)域內(nèi)的一項(xiàng)內(nèi)容,認(rèn)為其相關(guān)思想理念均與計(jì)算科學(xué)有著不可分割的聯(lián)系;在功能屬性中,學(xué)者們普遍認(rèn)為,計(jì)算思維培養(yǎng)的主要目的是更好地進(jìn)行問題解決。以上是關(guān)于學(xué)者們所提定義的統(tǒng)一認(rèn)識(shí),但就計(jì)算思維的其他內(nèi)容要素、操作過程等方面,學(xué)者們均有不同的認(rèn)識(shí),而產(chǎn)生不同認(rèn)識(shí)的原因就是由于計(jì)算思維本身內(nèi)涵的豐富性和所處環(huán)境的多樣性,一個(gè)定義難以對計(jì)算思維進(jìn)行不同背景下的全方位的解釋[2]。
在編程解決問題背景下的計(jì)算思維,通過人與計(jì)算機(jī)的有效溝通來體現(xiàn)計(jì)算思維的主要內(nèi)涵,主要面向青少年學(xué)習(xí)群體所接受的K12(Kindergarten through twelfth grade,指從幼兒園到十二年級)階段的編程教學(xué),NRC 指出將計(jì)算思維傳遞給學(xué)生的最有效手段是將其融于K12 階段的教學(xué)中。因此,通過K12 階段的編程教學(xué),一方面培養(yǎng)學(xué)習(xí)者在計(jì)算科學(xué)方面的知識(shí),另一方面提升學(xué)習(xí)者在利用編程進(jìn)行問題解決的高效性和全面性,提升學(xué)生的計(jì)算思維能力,進(jìn)而發(fā)展核心素養(yǎng)[3],最終目的是培養(yǎng)學(xué)生能夠在不插電活動(dòng)中通過計(jì)算思維進(jìn)行問題解決。作為與計(jì)算機(jī)學(xué)科有密切聯(lián)系的計(jì)算思維,從編程教學(xué)的視角下對計(jì)算思維進(jìn)行培養(yǎng)能夠很好地提升學(xué)習(xí)者在問題解決方面的方法和手段[4]。
計(jì)算思維的運(yùn)用充斥在生活中的每一件小事,在遇到問題時(shí),如何運(yùn)用計(jì)算思維解決問題?根據(jù)對近年來不同學(xué)者[5]對計(jì)算思維的不同理解以及與黑龍江省內(nèi)多年從事計(jì)算思維培養(yǎng)的專家進(jìn)行討論,共總結(jié)出3 種計(jì)算思維體現(xiàn)在求解問題過程中的步驟。
第1 種步驟:通過收集數(shù)據(jù)、分析數(shù)據(jù)理解和思考問題;去除問題的冗余部分,抽象定義問題,將問題化簡分解為小問題,分解與轉(zhuǎn)化的過程如圖1 所示。自上而下表示了問題的抽象程度的變化,自下而上體現(xiàn)了問題解決順序。接下來,對具有相同數(shù)據(jù)特征的所有問題進(jìn)行模式化;定義解決問題的步驟,建立求解模型;不斷調(diào)試和驗(yàn)證解決方案。
圖1 問題分解與解決過程
在此步驟中,需要將問題中存在的數(shù)據(jù)提取出來,判斷并觀察數(shù)據(jù)之間的聯(lián)系與規(guī)律,將問題抽象并重新定義為具有該數(shù)據(jù)特征的“問題母版”。接下來,根據(jù)所建立的“問題母版”研究解決問題的步驟,一般由淺至深、由易至難,從低級到高級。遞歸思想是在這個(gè)過程中常用到的思想,指遞進(jìn)并回歸,從大問題分解至小問題,再從小問題進(jìn)行解決,依次攻破,層級不斷上升,最終回歸所要解決的根本問題。確定問題解決步驟之后,將步驟模型化,模型的建立有利于在大腦中建立相對完整的問題解決系統(tǒng),將其納入認(rèn)知網(wǎng)絡(luò)之中,也有利于在今后將知識(shí)內(nèi)化為能力,并進(jìn)行能力的遷移。最后一個(gè)步驟是在不斷檢驗(yàn)的過程中進(jìn)行調(diào)試,相當(dāng)于迭代過程,多次的試誤可以觀察方案中的不足之處,計(jì)算機(jī)會(huì)在學(xué)習(xí)者進(jìn)行嘗試后予以反饋,幫助學(xué)習(xí)者發(fā)現(xiàn)問題,及時(shí)修改,不斷逼近目標(biāo),最終得到最優(yōu)解。第1 種步驟的具體過程如圖2 所示。
圖2 第一種一般步驟的實(shí)現(xiàn)過程
第2 種步驟:在計(jì)算機(jī)特性的基礎(chǔ)之上,將問題進(jìn)行抽象,使其轉(zhuǎn)化為計(jì)算機(jī)可以解決的計(jì)算問題,最終,通過程序設(shè)計(jì)語言實(shí)現(xiàn)問題的自動(dòng)求解。當(dāng)選擇第二種方法進(jìn)行問題解決時(shí),問題類型通常為比較復(fù)雜的計(jì)算問題。首先,需要理解問題的特性,在此過程中,會(huì)對問題進(jìn)行關(guān)鍵詞的提取,過濾掉冗余信息,并對其重新排列組合成一道計(jì)算問題,過程中要考慮數(shù)據(jù)或者變量之間存在的規(guī)律,以便進(jìn)行下一步的解決。
為了對第2 個(gè)步驟進(jìn)行更好的說明,選取K12 階段編程課中的經(jīng)典題:細(xì)胞分裂器。計(jì)算要求是算出第5 次分裂共產(chǎn)生多少細(xì)胞。
進(jìn)一步將其轉(zhuǎn)化為計(jì)算問題:第1 次分裂后的細(xì)胞數(shù)為1×2,第2 次為2×2,第3 次為2×2×2......求問第5 次分裂后,最終的細(xì)胞總數(shù)為多少。以上是對問題特性的理解以及轉(zhuǎn)化。接下來,通過程序語言實(shí)現(xiàn)問題的自動(dòng)求解。自動(dòng)化建立在“有效溝通”之后,有效溝通需要運(yùn)用計(jì)算機(jī)知識(shí),結(jié)合現(xiàn)實(shí)問題,設(shè)計(jì)算法實(shí)現(xiàn),利用程序設(shè)計(jì)語言對計(jì)算機(jī)發(fā)出指令,使其按照指令進(jìn)行自動(dòng)化求解。因此,還需對題目進(jìn)行算法設(shè)計(jì),在題目中,根據(jù)數(shù)據(jù)特征及題目分析,可以知道其中運(yùn)用到的算法為乘法與加法,乘法用于表示每次分裂的細(xì)胞數(shù),加法用來進(jìn)行5 次細(xì)胞的總數(shù)運(yùn)算。根據(jù)以上分析,可以確定變量數(shù)量與類型并進(jìn)行代碼編寫,最終進(jìn)行自動(dòng)化的過程。
第3 種步驟:問題抽象,符號化表示,算法求解,算法實(shí)現(xiàn),代碼編寫與調(diào)試。第3 種一般步驟是建立在算法思維的基礎(chǔ)上提出的。算法思維屬于過程性思維方式,在運(yùn)用其進(jìn)行問題解決時(shí),首先對問題進(jìn)行理解,并將問題進(jìn)行分解降級,大問題分解轉(zhuǎn)換為小問題,并利用抽象思維將問題進(jìn)行抽象。接下來,通過符號對抽象后的問題重新表示以此清楚地看到各變量之間存在的關(guān)系,根據(jù)題目,考慮需要用到的算法。算法設(shè)計(jì)完成后,確定過程中的每一步計(jì)算結(jié)構(gòu),并運(yùn)用計(jì)算機(jī)對算法思維結(jié)果進(jìn)行自動(dòng)化呈現(xiàn)。代碼編寫完成后,在調(diào)試中,計(jì)算機(jī)能夠及時(shí)予以反饋,通過反饋內(nèi)容,可以看到代碼中存在的計(jì)算機(jī)語言規(guī)則方面的錯(cuò)誤,或函數(shù)調(diào)用過程中所出現(xiàn)的錯(cuò)誤。這時(shí),可以根據(jù)提示進(jìn)行定位并進(jìn)行修改。最終得到最優(yōu)的問題解決方案。
以上3 種步驟都是基于青少年通過編程解決問題的計(jì)算思維體現(xiàn),從步驟的解釋說明可以看出,3 種步驟的不同之處在于操作方法以及順序差異,但3 種步驟雖然表現(xiàn)形式不同,本質(zhì)卻是相同的。面對問題的解決,從操作對象的角度進(jìn)行劃分,可以總結(jié)為一種一般步驟:分析問題、找尋算法、自動(dòng)化實(shí)現(xiàn)、調(diào)試。這4 個(gè)操作步驟可以涵蓋前文中所提出的3 種步驟,按照問題、方案、迭代的順序進(jìn)行問題解決。
2010 年,周以真教授對計(jì)算思維的本質(zhì)給出了框架圖,在該框架中,周以真教授將主要過程分為自上而下和自下而上。自上而下進(jìn)行自動(dòng)化的實(shí)現(xiàn),自下而上進(jìn)行抽象過程。需要將應(yīng)用語言最終轉(zhuǎn)化為機(jī)器指令進(jìn)行計(jì)算機(jī)處理,而機(jī)器指令又可以抽象為應(yīng)用語言。
另外,通過本質(zhì)框架圖,可以了解到該框架圖的基本原理是建立在計(jì)算科學(xué)的基礎(chǔ)之上,這是計(jì)算思維的學(xué)科基礎(chǔ),但是計(jì)算思維作為一項(xiàng)能力,其本質(zhì)框架圖只能讓人們了解到計(jì)算思維中問題解決過程間的固態(tài)關(guān)系,無法指導(dǎo)教學(xué)者進(jìn)行計(jì)算思維培養(yǎng)教育。目前關(guān)于計(jì)算思維的三維框架和八概念框架[6]也都是僅描述了計(jì)算思維的下位概念之間的關(guān)系。結(jié)合周以真教授提出的計(jì)算思維的框架,在皮亞杰發(fā)生認(rèn)識(shí)論的理論指導(dǎo)下,在編程環(huán)境下青少年計(jì)算思維的培養(yǎng)框架構(gòu)建如下。
計(jì)算思維培養(yǎng)框架主要用來指導(dǎo)計(jì)算思維培養(yǎng)活動(dòng),教師可以依據(jù)此內(nèi)容對課程進(jìn)行教學(xué)設(shè)計(jì)或者維度設(shè)計(jì),也可以依據(jù)本框架對計(jì)算思維活動(dòng)進(jìn)行模塊化評價(jià),具體框架內(nèi)容如圖3 所示。
圖3 計(jì)算思維培養(yǎng)框架
該框架主要分為4 個(gè)部分:計(jì)算思維的問題解決步驟、能力培養(yǎng)、遵循原則和學(xué)科基礎(chǔ)。
(1)計(jì)算思維的問題解決步驟是內(nèi)核部分。由于計(jì)算思維最核心的直觀體現(xiàn)即問題解決,因此,問題解決是計(jì)算思維能力發(fā)展框架中的核心關(guān)鍵層。本框架中,所包含的計(jì)算思維問題解決步驟分為4 個(gè):分析問題、找到算法、自動(dòng)化實(shí)現(xiàn)、調(diào)試。這4 個(gè)步驟是根據(jù)第二小結(jié)中所提到的3 類一般步驟中總結(jié)而來,盡管這3 個(gè)一般步驟不同,但操作意義具有同一性,因此,將其歸為4 個(gè)主要步驟。
(2)從問題解決的4 個(gè)步驟出發(fā),每個(gè)步驟中都有發(fā)展或培養(yǎng)的主要能力,因此,能力培養(yǎng)在中間層,也是問題解決步驟的外圍層。由于內(nèi)核部分中每一個(gè)步驟都是問題解決的重要組成,因此,在實(shí)現(xiàn)過程中,每一個(gè)步驟都能夠發(fā)展一種或多種能力。在分析問題過程中,可以發(fā)展學(xué)習(xí)者的分解與轉(zhuǎn)化能力以及抽象能力。其中,抽象能力作為計(jì)算思維能力培養(yǎng)的關(guān)鍵,將問題抽象為計(jì)算問題或者將大問題分解轉(zhuǎn)化為小問題;在找尋算法的過程中,將發(fā)展學(xué)習(xí)者模式識(shí)別、建模能力。
首先,通過找尋算法,培養(yǎng)學(xué)習(xí)者的模式識(shí)別能力,在這個(gè)過程中,學(xué)習(xí)者需要將算法對應(yīng)為相應(yīng)的問題,識(shí)別問題以及算法的主要類型。其次,在第2 個(gè)階段中,即在模式識(shí)別成功后,對解決方案進(jìn)行建模,通過建模確定算法的主要實(shí)施階段;在自動(dòng)化實(shí)現(xiàn)的過程中,可以發(fā)展學(xué)習(xí)者形式化的能力。最后,在調(diào)試步驟中,發(fā)展學(xué)生的糾錯(cuò)能力以及調(diào)試代碼的能力。例如,計(jì)算機(jī)在實(shí)施命令的過程中,若代碼編寫不正確,則會(huì)向用戶反饋error 信息,學(xué)習(xí)者根據(jù)反饋信息在相應(yīng)位置找到錯(cuò)誤并進(jìn)行改正。
(3)遵循原則是計(jì)算思維問題解決和能力實(shí)現(xiàn)的主要依據(jù),因此,作為環(huán)狀最外層。在計(jì)算思維問題解決和能力培養(yǎng)過程中,應(yīng)當(dāng)始終遵循科學(xué)性、完整性、高效性和可操作性,科學(xué)性意指遵循認(rèn)知科學(xué)、計(jì)算科學(xué)等;完整性意指在整個(gè)過程中應(yīng)當(dāng)具有全局思維,無論是進(jìn)行問題分析還是算法解決都需要瞻前顧后,能力發(fā)展也需要具有完整性;高效性是指問題解決要達(dá)到最優(yōu)效益,可操作性表示問題解決方案要切實(shí)可行。
(4)計(jì)算科學(xué)和數(shù)學(xué)科學(xué)作為計(jì)算思維發(fā)展框架中的學(xué)科基礎(chǔ),位于底層支撐。計(jì)算科學(xué)是計(jì)算思維進(jìn)行自動(dòng)化實(shí)現(xiàn)的主要支撐,同時(shí),計(jì)算思維也利用計(jì)算科學(xué)的方法進(jìn)行問題解決[7]。例如,在問題解決前做準(zhǔn)備工作,這相當(dāng)于計(jì)算機(jī)中的緩存或者預(yù)置;當(dāng)我們在問題解決過程中將其轉(zhuǎn)化為基礎(chǔ)問題,并從小問題開始自下而上解決,這相當(dāng)于計(jì)算科學(xué)中的回推;當(dāng)我們對問題進(jìn)行分析后提出自己的想法并選擇解決方案時(shí),這屬于計(jì)算機(jī)的在線算法;最后,在整個(gè)問題解決方案的設(shè)計(jì)過程中,需要考慮操作步驟的冗余性以及失敗結(jié)果中存在的無關(guān)性。
數(shù)學(xué)科學(xué)在計(jì)算思維問題解決過程中主要幫助學(xué)習(xí)者進(jìn)行算法設(shè)計(jì)和問題模式化。首先,在算法設(shè)計(jì)的過程中需要運(yùn)用數(shù)學(xué)知識(shí)進(jìn)行分析推理,設(shè)計(jì)出合適的算法解決。在問題模式化過程中,需要將問題轉(zhuǎn)化為數(shù)學(xué)問題,便于進(jìn)行下一步的算法設(shè)計(jì)。因此,計(jì)算思維解決問題的過程中,數(shù)學(xué)思維是十分重要的[8]。
對于編程環(huán)境下青少年計(jì)算思維的培養(yǎng),目前處于研究的關(guān)鍵階段,主要問題和難點(diǎn)在于學(xué)者們對計(jì)算思維培養(yǎng)的維度和框架還沒有統(tǒng)一的劃分和設(shè)定,對計(jì)算思維的量化評價(jià)還需進(jìn)一步探討。因此,在未來的研究中,我們將通過本文中所定義的框架,研究云平臺(tái)中計(jì)算思維的量化評價(jià),并通過數(shù)據(jù)挖掘和聚類分析對學(xué)習(xí)者進(jìn)行畫像,進(jìn)而完善平臺(tái)中的個(gè)性化服務(wù)。