劉 晶
(中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院 湖北·武漢 430074)
人工智能是引領(lǐng)未來的戰(zhàn)略性技術(shù),也是全球經(jīng)濟(jì)社會(huì)發(fā)展的重要驅(qū)動(dòng)力。隨著人工智能技術(shù)在人類生產(chǎn)、生活、學(xué)習(xí)中的應(yīng)用,其發(fā)展?jié)撃艿玫绞澜绺鲊年P(guān)注,世界主要發(fā)達(dá)國家紛紛制訂了人工智能戰(zhàn)略計(jì)劃。我國在2017年印發(fā)的《新一代人工智能發(fā)展規(guī)劃》指出,要搶抓人工智能發(fā)展的重大戰(zhàn)略機(jī)遇,完善人工智能教育體系,加強(qiáng)人才儲(chǔ)備。[1]
人工智能浪潮席卷之下,人類的思維方式和工作方式必將發(fā)生重大轉(zhuǎn)變,計(jì)算思維作為人工智能社會(huì)中個(gè)體必備的關(guān)鍵能力逐漸受到重視。我國教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會(huì)、中國計(jì)算機(jī)學(xué)會(huì)等組織,均對(duì)計(jì)算思維展開了較為深入的探討。2010年7月,“九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)課程研討會(huì)”上,正式發(fā)表了《九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》,該聲明強(qiáng)調(diào)計(jì)算機(jī)基礎(chǔ)教學(xué)是培養(yǎng)大學(xué)生綜合素質(zhì)和創(chuàng)新能力不可或缺的重要環(huán)節(jié),其中,學(xué)生計(jì)算思維能力的培養(yǎng)是計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)。
周以真[2]教授指出,計(jì)算思維是“一個(gè)形成問題和制定問題解決方案的思考過程”。隨著計(jì)算思維研究的發(fā)展,對(duì)計(jì)算思維的討論從抽象和算法等源自計(jì)算機(jī)科學(xué)的主題延伸到實(shí)踐應(yīng)用中,更關(guān)注與具體學(xué)科知識(shí)結(jié)合而產(chǎn)生的實(shí)踐要素。計(jì)算思維是數(shù)學(xué)思維與工程思維的互補(bǔ)和結(jié)合,有助于提高學(xué)生的創(chuàng)造力和創(chuàng)新力。[3]朱亞宗教授提出,計(jì)算思維與實(shí)驗(yàn)思維、理論思維并列為人類三大科學(xué)思維方式之一。[4]
為了順應(yīng)人工智能時(shí)代教育變革的主要發(fā)展方向,從實(shí)際教學(xué)情況出發(fā),思考與分析計(jì)算思維能力的核心培養(yǎng)要素,提出了以流程圖為載體的計(jì)算思維能力培養(yǎng)方法。在教學(xué)實(shí)踐中強(qiáng)化了學(xué)生計(jì)算思維過程的培養(yǎng),將生活算法實(shí)例與流程圖實(shí)踐相結(jié)合,呈現(xiàn)了學(xué)生抽象和解決問題的思維過程,形成了基于流程圖的面向計(jì)算思維能力培養(yǎng)的計(jì)算機(jī)基礎(chǔ)課程教學(xué)方法,取得了良好效果。
計(jì)算思維是要培養(yǎng)能夠綜合應(yīng)用多種思維技能思考問題,并理解和使用計(jì)算機(jī)來解決復(fù)雜工程問題的能力。美國國際教育技術(shù)協(xié)會(huì)和計(jì)算機(jī)科學(xué)教師協(xié)會(huì)聯(lián)合規(guī)定了計(jì)算思維的九項(xiàng)核心概念和能力分別是:數(shù)據(jù)收集、數(shù)據(jù)分析、數(shù)據(jù)表征、問題分解、抽象、算法和程序、自動(dòng)化、模擬和并行化。亞達(dá)夫等[5]將其簡化概括為問題分解、算法、抽象和自動(dòng)化。
計(jì)算思維的核心內(nèi)涵強(qiáng)調(diào)問題解決的過程更重于問題解決的結(jié)果。因此,從工程角度出發(fā)的計(jì)算思維教學(xué)過程應(yīng)至少包括問題識(shí)別與分解、系統(tǒng)抽象、方案設(shè)計(jì)與優(yōu)化、方案實(shí)現(xiàn)四個(gè)部分。其中,前三個(gè)部分體現(xiàn)了思維的加工過程,最后一個(gè)部分則呈現(xiàn)了思維發(fā)展的結(jié)果。計(jì)算思維過程應(yīng)強(qiáng)調(diào)使用抽象、泛化的思維方式定義和分解問題,突出算法設(shè)計(jì)和優(yōu)化的思考過程。其中,分解與抽象是培養(yǎng)計(jì)算思維過程的重要核心內(nèi)容。
計(jì)算思維是創(chuàng)造力、算法思維、批判性思維、問題解決、合作思維和溝通技能的共同體現(xiàn),最終目的是解決問題。程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、算法分析與設(shè)計(jì)等課程涉及程序級(jí)的問題求解;數(shù)據(jù)庫,數(shù)據(jù)挖掘等課程是系統(tǒng)級(jí)問題求解的基礎(chǔ),也往往是程序級(jí)問題求解的目標(biāo)。對(duì)于復(fù)雜問題的求解,可以將之分解成幾個(gè)子問題單元,再來分別解決每個(gè)子問題。也就是將問題的解決方案用若干個(gè)封閉步驟的集合(模塊)表示,每個(gè)模塊用于解決一個(gè)問題或子問題。
在對(duì)復(fù)雜問題的分解過程中,需要運(yùn)用抽象的概念。抽象是計(jì)算思維的本質(zhì),指捕獲問題對(duì)象的本質(zhì)特征,省略一些不必要的細(xì)節(jié),只留下需要強(qiáng)調(diào)的環(huán)節(jié)。設(shè)計(jì)問題解決方案時(shí),先用抽象步驟,即細(xì)節(jié)仍未明確的算法步驟描述問題的解決方案,然后不斷明確具體細(xì)節(jié),最終得到解決該問題的具體步驟。
分解與抽象這一思維過程可以在不同層次進(jìn)行,即在不同的抽象層次對(duì)問題進(jìn)行定義和分解。每一層對(duì)應(yīng)不同的抽象級(jí)別,逐層遞進(jìn)細(xì)化抽象的解決方案,直到得到該問題的每一個(gè)具體解決步驟。表1給出了不同抽象層次上的會(huì)議安排問題的分解。
表1 問題分解的分層抽象示例
現(xiàn)有的計(jì)算機(jī)類課程教學(xué)模式大多重視編程開發(fā)(實(shí)踐環(huán)節(jié))而忽視思維加工過程。最終的程序只能展現(xiàn)結(jié)果而不能呈現(xiàn)思維過程,這種重結(jié)果輕過程的培養(yǎng)模式并不利于師生對(duì)計(jì)算思維發(fā)展細(xì)節(jié)的把握,也與計(jì)算思維的本質(zhì)不符[6]。將計(jì)算思維整合到課程教育,重要的是嵌入思維技能。培養(yǎng)思維技能的重要方法之一是對(duì)知識(shí)的表述。以圖形展示知識(shí)與思考過程的知識(shí)可視化方法作為思維表述的一種方式,得到了廣泛關(guān)注。思維導(dǎo)圖和流程圖等展現(xiàn)思維過程的工具,在教育教學(xué)、工程實(shí)踐、項(xiàng)目管理等領(lǐng)域有著廣泛應(yīng)用。其中,流程圖是相互連接的圖形符號(hào)集合,其中的每個(gè)圖形符號(hào)代表要執(zhí)行的指令,符號(hào)之間的連線方向決定指令的執(zhí)行順序。
流程圖是一種極好的表示算法思路的可視化方法。用流程圖作為計(jì)算思維過程的可視化承載工具,有助于學(xué)生對(duì)問題進(jìn)行分解和重組,進(jìn)而進(jìn)行系統(tǒng)抽象和建模,體現(xiàn)思維的加工過程。學(xué)生通過不同級(jí)別的流程圖,可以展現(xiàn)在不同的抽象層次分析問題、解決問題的思維過程。
目前,一般高校的計(jì)算機(jī)程序類課程的做法是,從識(shí)別與理解問題直接進(jìn)入代碼編程實(shí)現(xiàn)的階段,缺乏對(duì)問題進(jìn)行分解和重組,進(jìn)而進(jìn)行系統(tǒng)抽象和建模的思維加工過程的觀察和指導(dǎo)。
民族高校生源組成復(fù)雜,學(xué)生來自全國各地,分布廣泛,并有相當(dāng)一部分“雙少”學(xué)生(來自少數(shù)民族地區(qū)的少數(shù)民族學(xué)生)。受限于各地區(qū)的教育發(fā)展水平,學(xué)生入學(xué)時(shí)的計(jì)算機(jī)水平參差不齊,甚至相距甚遠(yuǎn)。因此,課堂教學(xué)實(shí)施必須考慮分層教學(xué)、因材施教。實(shí)現(xiàn)這一教學(xué)方針最根本的解決方法是注重計(jì)算思維過程的培養(yǎng)。
對(duì)于計(jì)算機(jī)編程基礎(chǔ)薄弱的學(xué)生,在具體的程序語言學(xué)習(xí)過程中由于對(duì)語法、函數(shù)不熟練,極易產(chǎn)生沮喪、厭學(xué)的情緒。如何滿足不同層次的學(xué)生需要,讓學(xué)生掌握分析問題和解決問題的思維方法,讓學(xué)生能學(xué)懂,有興趣,有收獲,其重點(diǎn)在于計(jì)算思維過程的培養(yǎng)和訓(xùn)練。流程圖作為一種計(jì)算思維過程抽象表達(dá)的形式化工具,能有效地展現(xiàn)問題解決的分解過程和演繹。[7]
在學(xué)習(xí)具體的程序設(shè)計(jì)語言語法之前,先通過畫流程圖,將問題抽象、分解成幾個(gè)子問題,接著分別用流程圖表述每個(gè)子問題在不同抽象層次的算法設(shè)計(jì)思路,逐層細(xì)化,直到每一步具體的執(zhí)行步驟。流程圖在這一過程中,將思維過程可視化并清晰呈現(xiàn),有助于理解和認(rèn)識(shí)學(xué)生的思維加工過程,從而更好地幫助學(xué)生掌握如何設(shè)計(jì)和執(zhí)行算法。
在問題分析和算法設(shè)計(jì)階段,流程圖可以減少對(duì)編程語言和語法的關(guān)注,將設(shè)計(jì)聚焦在解決問題的過程上,如圖1。
計(jì)算思維核心要素在流程圖中的體現(xiàn)如下:對(duì)于問題分解這一計(jì)算思維要素,可以通過流程圖中各種具有確定含義的符號(hào)和連線,配以簡單的文字說明來可視化描述問題的輸入、輸出和問題的分析、解決方法和步驟。對(duì)于抽象這一計(jì)算思維要素,可以將問題中的對(duì)象、指令等通過流程圖中的符號(hào)加以表征說明,然后使用順序、選擇、循環(huán)等結(jié)構(gòu)建構(gòu)它們之間的關(guān)系,從而實(shí)現(xiàn)對(duì)同類型問題的抽象與提煉。不同級(jí)別的流程圖對(duì)應(yīng)不同抽象層次的問題解決過程,不斷細(xì)化對(duì)象和指令,得到最終的解決方案。圖1是學(xué)生畫的會(huì)議安排問題的流程圖。
計(jì)算思維的培養(yǎng)和其它工程問題一樣,需要通過實(shí)踐來訓(xùn)練。因此,在我校計(jì)算機(jī)專業(yè)本科新生的計(jì)算機(jī)基礎(chǔ)課程教學(xué)實(shí)踐中,結(jié)合生活中的實(shí)例講解了流程圖的基本標(biāo)準(zhǔn)符號(hào),使用方法和工具。從食堂排隊(duì)調(diào)度,冒泡排序,會(huì)議安排的問題實(shí)例入手,讓學(xué)生各自利用流程圖表述問題的解決思路,接著分小組進(jìn)行分析討論,整理修正流程圖,然后學(xué)生在課堂上展示和講解自己的流程圖,闡述問題抽象和解決方法,以及需要注意的問題。通過3輪這樣的課程實(shí)踐訓(xùn)練,學(xué)生正確利用流程圖表述思維過程的能力有明顯提高,基于流程圖的計(jì)算思維訓(xùn)練不僅加強(qiáng)了學(xué)生對(duì)分解和抽象等計(jì)算思維過程的掌握,更培養(yǎng)了學(xué)生以計(jì)算思維解決問題的能力,還培養(yǎng)了學(xué)生的創(chuàng)造性思維和協(xié)作精神等。
圖1 不同抽象層次的流程圖
在實(shí)踐過程中,學(xué)生通過思考和討論,更新解決問題的思路,進(jìn)而優(yōu)化自己的流程圖,從而發(fā)現(xiàn)最佳的問題解決方案。這一階段所形成的流程圖,呈現(xiàn)了學(xué)生抽象和解決問題的思維過程。使得教師可以根據(jù)流程圖了解學(xué)生解決問題的思路,從而進(jìn)行針對(duì)性的指導(dǎo),在后續(xù)研究中還可以將其作為評(píng)價(jià)學(xué)生計(jì)算思維發(fā)展的重要依據(jù)。
2018至2019連續(xù)兩年的實(shí)踐教學(xué)顯示,在計(jì)算機(jī)專業(yè)大一年級(jí)學(xué)生的計(jì)算機(jī)導(dǎo)論課程和程序語言設(shè)計(jì)課程中,強(qiáng)調(diào)流程圖的計(jì)算思維教學(xué)方法,為下一步實(shí)現(xiàn)方案的具體程序開發(fā),即計(jì)算思維的發(fā)展結(jié)果打下了良好的基礎(chǔ)。在后續(xù)的程序設(shè)計(jì)語言、數(shù)據(jù)結(jié)構(gòu)等課程中的實(shí)驗(yàn)編程表現(xiàn)有明顯提高。表明在學(xué)習(xí)具體的編程語言之前,用流程圖清晰表述問題的分析和解決方案,掌握分解和抽象等計(jì)算思維的核心內(nèi)容,能夠令學(xué)生的計(jì)算思維在問題識(shí)別、問題分解、問題解決、創(chuàng)意拓展等方面綜合發(fā)展。
人工智能的迅速崛起正在改變世界發(fā)展的態(tài)勢(shì),發(fā)揮大學(xué)應(yīng)有作用,強(qiáng)化計(jì)算思維的培養(yǎng)是這一態(tài)勢(shì)競(jìng)爭(zhēng)的重要一環(huán)。未來的世界需要能有效理解、應(yīng)用并創(chuàng)造計(jì)算技術(shù),具備解決問題的思維和能力的人。在計(jì)算思維的常規(guī)培養(yǎng)模式下,教學(xué)過于關(guān)注程序的開發(fā)和算法的技巧,強(qiáng)調(diào)思維的結(jié)果,缺乏顯性呈現(xiàn)的解決問題的思維加工過程。因而教師作為引導(dǎo)者很難做出針對(duì)性的指導(dǎo)和評(píng)價(jià),從而局限了計(jì)算思維培養(yǎng)的效果。
流程圖作為很早就應(yīng)用在計(jì)算機(jī)編程領(lǐng)域的可視化思維過程展現(xiàn)工具,在問題定義、分解和形成方案的過程中發(fā)揮了重要作用。流程圖的繪制過程不僅能夠幫助學(xué)生梳理思路,還能記錄思維發(fā)展的全過程,便于了解學(xué)生的思維過程,進(jìn)行針對(duì)性的指導(dǎo)。教學(xué)實(shí)踐初步證明了流程圖方法能夠有效促進(jìn)計(jì)算思維中的問題分解與抽象等思維過程要素的發(fā)展,尤其對(duì)于入學(xué)前幾乎沒有計(jì)算機(jī)基礎(chǔ)知識(shí)的部分同學(xué),計(jì)算思維能力有明顯提升,后續(xù)程序編制、算法分析等課程內(nèi)容的掌握程度比往屆沒有經(jīng)過流程圖強(qiáng)化訓(xùn)練的同學(xué)要好。