張廣兵
(西南科技大學(xué) 計算機學(xué)院,四川 綿陽 621010)
計算思維已是當下計算機科學(xué)領(lǐng)域的熱門概念之一,相關(guān)學(xué)者將計算思維與“讀、寫、算”并列,并將其作為現(xiàn)代社會人們的必備素質(zhì)之一,計算機科學(xué)專家、學(xué)者、教師等大力倡導(dǎo),著力培養(yǎng)計算機專業(yè)學(xué)生的計算思維。隨著計算思維方面理論研究與實踐探索的深入,計算思維的培養(yǎng)已從計算機專業(yè)課程拓展到非計算機專業(yè)的大學(xué)計算機基礎(chǔ)課程,呼吁計算思維進入中小學(xué)信息技術(shù)教育的聲音也迅速涌現(xiàn)。當下,一方面計算思維進入大學(xué)計算機基礎(chǔ)課程和中小學(xué)信息技術(shù)教育呈必行之勢,另一方面卻是“計算思維是什么”等基礎(chǔ)性問題仍處于模糊狀態(tài)。
盡管國內(nèi)外相關(guān)學(xué)者已在計算思維方面開展了大量研究,然而計算思維遠未成為概念明確、內(nèi)涵清晰的術(shù)語,具體可從以下兩個方面管窺計算思維概念與內(nèi)涵的模糊性。
計算思維由英文computational thinking(文中簡稱為“CT”)翻譯而來,其中computational是一個形容詞,用于修飾、限定thinking。筆者之前發(fā)表的論文指出,綜合牛津、朗文等英漢詞典的釋義,computational的本義是使用計算機的、與計算機相關(guān)的或用計算機計算的[1]。據(jù)此,computational與計算的含義有所不同,computational只是計算的一種。嚴格地說CT只是計算思維的一種,即使用計算機的、與計算機相關(guān)的或用計算機計算的思維。漢語中的計算是個動詞,有2個意思:一是根據(jù)已知數(shù)通過數(shù)學(xué)方法求得未知數(shù);二是考慮、籌劃[2]。英語中的calculate也有2個意思:一是用數(shù)字算出總數(shù)、總額、距離等;二是通過所有可用的信息推測某事或形成一個意見[3]。相較于computational,同為動詞的calculate與計算的意思更為接近。綜合而言,將computational譯為計算擴大了CT的內(nèi)涵,將CT譯為計算思維容易將非計算機科學(xué)的相關(guān)知識、思想納入CT之中。筆者認為,將CT譯為計算思維是不準確的,應(yīng)另覓新詞進行翻譯。在對此還未取得共識之時,本文為了闡述的方便,暫且繼續(xù)使用計算思維一詞。
2006年,CT這一概念的提出者周以真(Jeannette M. Wing)曾指出,CT是運用計算機科學(xué)的基本概念去解決問題、設(shè)計系統(tǒng)和理解人類行為,運用探索性思考去發(fā)現(xiàn)問題解決方案,像計算科學(xué)家一樣思考[4]。2010年,Jan Cuny、Larry Snyder和周以真還進一步將CT定義為一個思考過程,包含將問題和問題解決方案公式化,以至于問題解決方案可以用一個能被信息處理代理有效執(zhí)行的形式來表示[5]。然而,Elizabeth Jones卻指出,周以真“沒有對‘CT是什么’給我們提供一個堅實的定義”,也沒有解釋“CT與其他類型的需要抽象或需要大量數(shù)據(jù)的思維的區(qū)別”[6]。Peter J. Denning亦指出,CT倡導(dǎo)者們“只對CT提出了一個模糊、含混的定義”[7]。
周以真等多次對CT進行界定,為何仍然出現(xiàn)諸如此類的批判與質(zhì)疑呢?筆者認為原因主要在于,周以真等雖闡述了CT是什么、不是什么,但并未將“CT的獨特性”和“CT與其他思維的區(qū)別”這兩個核心問題闡述清楚。以其2010年對CT的定義“一個包含將問題和問題解決方案公式化的思考過程”為例,問題和問題解決方案的公式化必然會用到“抽象”。抽象作為一種問題解決與思考方式,早已在眾多領(lǐng)域中廣泛應(yīng)用,顯然并非計算機科學(xué)獨有。周以真也認可抽象是CT的重要組成部分,指出了抽象的重要性,但并未闡明CT中的抽象與一般問題解決中的抽象有何區(qū)別。未清楚闡釋“CT的獨特性”和“CT與其他思維的區(qū)別”,使CT的內(nèi)涵與外延處于模糊狀態(tài),難免出現(xiàn)“將計算思維當做一個‘筐’,什么都可以往里裝”[8]之類的批判與質(zhì)疑。
對于計算思維培養(yǎng)的必要性,周以真的相關(guān)論述主要有以下4個方面。
周以真曾指出,“除讀、寫、算外,我們應(yīng)該將計算思維加入每個人的分析能力之中”[4],“到21世紀中期,計算思維將成為世界上每一個人的一項基本技能,通過‘基本’這個詞,我的意思是與讀、寫和算一樣基本”[9]。姑且不論周以真對“計算思維和讀、寫、算一樣基本”這一結(jié)論的論證是否充分,計算思維是否與讀、寫、算是一個層級的概念,是否能夠與讀、寫、算相提并論,值得商榷。即使完全認可計算思維這一概念,計算思維也只是邏輯思維、批判性思維等眾多思維中的一種,只是思維的一個下位概念。能夠與讀、寫、算并列的應(yīng)是整個思維,而非思維中的一種。若計算思維與讀、寫、算并列成立,那么我們還可以列出很多的內(nèi)容與讀、寫、算并列,如批判性思維、創(chuàng)新思維等。據(jù)此,筆者認為計算思維與讀、寫、算并非同一級別的概念,無法相提并論,將計算思維與讀、寫、算并列不合邏輯,存在不同層級概念并列之誤。此外,從學(xué)習(xí)、教學(xué)科目的角度而言,與閱讀、寫作、算術(shù)3個科目并列的應(yīng)是整個計算機科學(xué),而非計算機科學(xué)中的一部分內(nèi)容。要將計算思維與閱讀、寫作、算術(shù)三者并列,那么計算思維就應(yīng)是整個計算機科學(xué)的代名詞,亦即計算思維可以等同于計算機科學(xué)。然而,Peter J. Denning明確反對將計算思維視為計算機科學(xué)的代名詞,他認為“計算思維是計算機科學(xué)的關(guān)鍵實踐之一”,“用計算思維來描繪整個領(lǐng)域是不合適的”[10]。
周以真在《計算思維——是什么和為什么?》一文中,對美國總統(tǒng)信息技術(shù)咨詢委員會(PITAC)指出的“計算已被認為是繼理論與實驗之后的第三個科學(xué)支柱”進行了引用,并將之作為計算思維有益于其他學(xué)科的論據(jù)之一[5]。首先,該委員會闡述的內(nèi)容是“計算科學(xué)”(Computational Science),而非“計算思維”,引文出自該委員會的一個報告《計算科學(xué):確保美國競爭力》[11],該報告所用的概念是“計算科學(xué)”,整個報告中并沒有出現(xiàn)“計算思維”這一概念。其次,將“計算科學(xué)”視為三大科學(xué)支柱之一并非興起于計算機科學(xué)領(lǐng)域,正如Peter J. Denning所指出,該觀點發(fā)端于物理和生命科學(xué)[10],其重要倡導(dǎo)者包括諾貝爾物理學(xué)獎獲得者Ken Wilson等,而Ken Wilson使用的術(shù)語是“計算科學(xué)”(Computational Science),“計算科學(xué)”這一術(shù)語是“經(jīng)過仔細挑選的,以避免與‘計算機科學(xué)’(Computer Science)混淆”[10]。最后,“計算思維是否為計算機科學(xué)所獨有”這一問題尚存爭議,一些學(xué)者將計算思維作為計算機科學(xué)的一個概念,亦有學(xué)者認為計算思維并非計算機科學(xué)獨有,比如,Peter J. Denning就明確提出,對于“計算思維是否是計算機科學(xué)獨有的、獨特的特性”這一問題,他的結(jié)論是“否”[10]??梢?,雖然“計算科學(xué)與理論、實驗并列為三大科學(xué)支柱”得到了學(xué)界的廣泛認同,然而對于“計算科學(xué)能否等同于計算思維”尚缺乏清楚的論述,對于“計算思維是否為計算機科學(xué)獨有”還存在激烈的爭論。
周以真曾論述到,計算思維可以用于日常生活,并列舉了3個實例。實例一是Randy Bryant為保障畢業(yè)典禮更為順暢而設(shè)計的“流水線”;實例二是Danny Sleator的孩子們通過分類的方式更快速地將樂高積木收起來;實例三是在一次活動中,Roger Dannenberg被要求將200張打亂順序的圖表依序放到40個標題下,其他人都采取找到一個就放一個的方式,而Roger Dannenberg采取先對圖表排序再放圖表的方式,結(jié)果Roger Dannenberg最先完成任務(wù)[5]。誠然,以上提及的3種問題解決方式,可以用計算機科學(xué)中常用的分步式策略、線程控制、分類策略、算法的復(fù)雜性分析等進行解釋。然而,3個實例述及的問題解決策略,無論是流水線,還是分類策略、先排序再配對的問題解決策略,均非計算機科學(xué)獨有,而是多個學(xué)科、多個領(lǐng)域通用的問題解決策略。而且,流水線在18世紀興起的第一次工業(yè)革命后已廣泛采用,分類策略和先排序再配對的問題解決策略可以追溯到更早,上述時期計算機、計算機科學(xué)均未誕生。將這些問題解決策略歸結(jié)為計算機科學(xué)獨有的計算思維,并借此論證計算思維培養(yǎng)的必要性比較牽強,其說服力不足。
對于計算思維使每個人、每個職業(yè)受益,周以真指出“計算思維能讓每個人理解問題的哪些方面能用計算解決,將計算策略(如分步解決策略)應(yīng)用于任何領(lǐng)域”“計算思維能將計算方法應(yīng)用于每個職業(yè)人群的問題中,用計算機的術(shù)語解釋問題和問題解決方案”[5]。該論述將計算思維作為一種廣泛適用的問題解決方法、思路等,對此的批判與質(zhì)疑主要集中于兩個方面。一是有些問題計算思維解決不了,Elizabeth Jones 曾指出,“周以真文章的潛在意思是計算思維能用來解決任何問題,然而許多問題是處于計算思維領(lǐng)域之外的,比如,當我思考如何將一篇草稿修改為一篇故事”[6],Steve Easterbrook亦指出,“諸如道德困境、價值判斷、社會的變遷等問題無法通過計算來解決”[12]。二是有些問題計算思維解決不好,Steve Easterbrook曾指出,“計算思維本質(zhì)上是一種還原論,計算問題通過還原被處理成一組離散變量”,應(yīng)用計算思維解決問題“使我們無視社會、環(huán)境對信息和通信技術(shù)的影響等問題”[12],還原主義在問題解決過程中通過抽象、還原,使環(huán)境、情境等“不重要”的因素被忽略掉,這些被忽略掉的因素雖然可能對問題能否解決沒多大影響,但是卻很可能對某些問題解決的質(zhì)量產(chǎn)生很大影響。將計算思維作為一種問題解決方式,其適用范圍亟待厘清。該問題解決方式是普遍適用,還是部分領(lǐng)域、部分問題適用?若是前者,則應(yīng)論證清楚相關(guān)學(xué)者所提詰問的不合理之處;若是后者,則應(yīng)明晰哪些領(lǐng)域、哪些類型的問題適用。
周以真曾指出,不僅大學(xué)生應(yīng)該培養(yǎng)計算思維,K-12學(xué)生也應(yīng)該培養(yǎng)計算思維,她也很高興地看到計算思維培養(yǎng)正在進入美、英等國的一些K-12學(xué)校[9]。前文已論及,周以真亦認可“抽象”是計算思維的重要組成部分。然而,大量的教育學(xué)、心理學(xué)研究早已表明,小學(xué)生還以形象思維為主。根據(jù)瑞士教育、心理學(xué)家皮亞杰(Jean Piaget)的認知發(fā)展理論,兒童的發(fā)展可分為感覺運動階段(0~2歲)、前運算階段(2~7歲)、具體運算階段(7~11歲)和形式運算階段(11歲以后),一般要到11歲以后,兒童才進入以抽象、理論和假設(shè)思維為特征的認知發(fā)展期。[13]對小學(xué)低年級學(xué)生而言,其認知發(fā)展尚未進入形式運算階段,而計算思維要求的“將問題和問題解決方案公式化”,需要較高水平的“抽象”和“形式運算”。從兒童認知發(fā)展的角度而言,小學(xué)低年級學(xué)生是否已具備計算思維培養(yǎng)所需的認知基礎(chǔ),計算思維培養(yǎng)在小學(xué)低年級學(xué)生中是否可行均存在很大的疑問。
要培養(yǎng)學(xué)生的計算思維,要使學(xué)生“像計算機科學(xué)家一樣思考”,作為培養(yǎng)者的教師自然無法回避。培養(yǎng)學(xué)生計算思維對教師有什么要求?教師,尤其是中小學(xué)教師能達到要求嗎?教師如何才能具有較高的計算思維水平?如何知曉教師達到了相應(yīng)的能力水平要求?諸如此類的問題隨之而生。教師是否具備相應(yīng)的能力水平直接影響課程、教學(xué)改革能否順利實施、能否取得預(yù)期效果等。歷史上的課程、教學(xué)改革不乏這樣的實例,課程、教學(xué)改革對教師的要求太高,教師通過自身努力并接受培訓(xùn)也無法達到相應(yīng)的要求,進而導(dǎo)致改革倡導(dǎo)的內(nèi)容并未得到有效實施。正如J. L. Goodlad所言:“改革許多時候被認為失敗,其實不然,因為它們從來就未能得到實施”[14]。周以真亦認可,計算思維培養(yǎng)中“最主要的現(xiàn)實挑戰(zhàn)是我們沒有足夠的接受過培訓(xùn)的K-12教師”。她對解決此問題感到樂觀,但并沒有具體論述如何解決這一問題。倘若教師不具備相應(yīng)的能力水平,倘若通過相應(yīng)的培訓(xùn)教師亦無法達成“像計算機科學(xué)家一樣思考”,那么教師如何培養(yǎng)學(xué)生“像計算機科學(xué)家一樣思考”呢?
目前,計算思維培養(yǎng)得到很多專家、學(xué)者甚至相關(guān)組織、協(xié)會的認可與倡導(dǎo)。例如,美國計算機科學(xué)教師協(xié)會(CSTA)曾在《K-12計算機科學(xué)標準》和《計算思維于K-12教育》中倡導(dǎo)在K-12學(xué)生中培養(yǎng)計算思維[15-16]。然而,需要注意的是,這些專家、學(xué)者,這些組織、協(xié)會基本上全來自計算機科學(xué)領(lǐng)域,幾乎沒有其他學(xué)科的專家、學(xué)者。另一個需要注意的問題是,在“計算思維能否等同于計算機科學(xué)”還存在較大爭議之時,不應(yīng)將“計算機科學(xué)”的重要性與“計算思維”的重要性混為一談,政府部門、企業(yè)、學(xué)校等對計算機科學(xué)教育的重視不能直接轉(zhuǎn)換為對計算思維培養(yǎng)的重視。第三個需要注意的問題是,目前對學(xué)生為什么應(yīng)該“像計算機科學(xué)家一樣思考”的論證和辯護還很不充分。計算思維培養(yǎng)過程中相關(guān)實踐者難免產(chǎn)生諸如此類的疑問:為何學(xué)生非要“像計算機科學(xué)家一樣思考”,而不是像數(shù)學(xué)家、物理學(xué)家等一樣思考?尤其是社科專業(yè)的學(xué)生為何應(yīng)該“像計算機科學(xué)家一樣思考”,而不是像哲學(xué)家、社會學(xué)家等一樣思考?
目前,對計算思維的概念與內(nèi)涵的闡釋還不夠清楚,對計算思維培養(yǎng)必要性與可行性的論證也不夠充分,這難免會對計算思維培養(yǎng)實踐能否順利開展以及能否取得預(yù)期效果等產(chǎn)生影響。綜合分析計算思維方面的理論與實踐研究,筆者認為計算思維培養(yǎng)亟待厘清4個方面的問題。
一是計算思維的獨特性。計算思維與其他相關(guān)思維有何不同?是完全不同,還是部分不同?若是部分不同,是哪些部分不同?
二是計算思維與相關(guān)概念的關(guān)系。計算思維與計算機科學(xué)、計算科學(xué)、計算機基礎(chǔ)知識、計算機基本技能是什么樣的關(guān)系。
三是計算思維培養(yǎng)的對象。一方面是縱向的年齡階段問題,所有年齡階段的學(xué)生均需、均能培養(yǎng)計算思維,還是計算思維培養(yǎng)對學(xué)生的年齡階段有一定的要求。另一方面是橫向的學(xué)科專業(yè)問題,所有學(xué)科專業(yè)的學(xué)生都需要培養(yǎng)計算思維,還是部分專業(yè)學(xué)生需要,部分專業(yè)學(xué)生可以不培養(yǎng);所有學(xué)科專業(yè)的學(xué)生都需要同樣的計算思維,還是不同學(xué)科專業(yè)需要不同的計算思維。
四是承載計算思維培養(yǎng)的課程。計算思維是僅在計算機類課程中培養(yǎng),還是通過多個學(xué)科的課程共同培養(yǎng)。
[1]張廣兵. 再論基于計算思維的大學(xué)計算機基礎(chǔ)課程改革[J].計算機教育, 2017(2): 84-87.
[2]中國社會科學(xué)院語言研究所詞典編輯室. 現(xiàn)代漢語詞典[M]. 北京: 商務(wù)印書館, 2015: 611.
[3]霍恩比. 牛津高階英漢雙解詞典[M]. 趙翠蓮, 譯. 北京: 商務(wù)印書館, 2014: 277.
[4]周以真. 計算思維[J]. 中國科學(xué)技術(shù)協(xié)會會刊, 2007(5): 111-116.
[5]周以真. Computational thinking-what and why?[EB/OL]. (2011-03-06)[2018-02-01]. https://www.cs.cmu.edu/link/researchnotebook-computational-thinking-what-and-why.
[6]Elizabeth J. The trouble with computational thinking[EB/OL].(2011-10-04)[2018-02-01]. http://csta.acm.org/Curriculum/sub/CurrFiles/JonesCTOnePager. pdf.
[7]Peter J D. Remaining trouble spots with computational thinking[EB/OL]. (2016-09-18)[2018-02-01]. http://denninginstitute.com/pjd/PUBS/ CACMcols/ cacm-trouble-ct.pdf.
[8]張廣兵. 基于計算思維的大學(xué)計算機基礎(chǔ)課程改革之反思[J]. 計算機教育, 2015(21): 67-70.
[9]周以真. Computational thinking, 10 years later[EB/OL]. (2016-03-23)[2018-02-01]. https://www. microsoft.com/ en-us/research/blog/computational-thinking-10-years-later/.
[10]Peter J D. Beyond computational thinking[EB/OL]. (2009-02-03)[2018-02-01]. http://sgd.cs.colorado.edu/wiki/images/7/71/Denning.pdf.
[11]President's Information Technology Advisory Council. Computational science: Ensuring America's competitiveness[EB/OL].[2018-02-01]. http://vis.cs.brown.edu/ docs/pdf/Pitac-2005 -CSE.pdf.
[12]Steve E. From computational thinking to systems thinking: A conceptual toolkit for sustainability computing [C]//2nd International Conference on ICT for Sustainability(ICT4S 2014). Amsterdam: Atlantis Press, 2014: 235-244.
[13]Dennis C, John O M. 心理學(xué)導(dǎo)論: 思想與行為的認識之路[M]. 鄭鋼, 譯. 北京: 中國輕工業(yè)出版社, 2016: 114-117.
[14]Jackon P W. Handbook of research on curriculum[M]. New York: Macmillan Publishing Company, 1992: 403.
[15]CSTA. K–12 Computer science standards(2011)[EB/OL]. [2018-02-01]. http://www.csinsf.org/standards-- framework.html.
[16]ISTE & CSTA. Computational thinking teaching in K-12 education: Teacher resources, second edition(2011)[EB/OL]. [2018-02-01].http://csta.acm.org/Curriculum/sub/CurrFiles/472.11 CTTeacher Resources_2ed-SP-v F.pdf.