

摘要:針對目前計算機基礎(chǔ)通識教育中計算思維教學(xué)面臨的挑戰(zhàn),在教學(xué)內(nèi)容設(shè)計方面對計算思維教學(xué)改革進行探討,提出教學(xué)內(nèi)容設(shè)計的原則和適合新生的教學(xué)內(nèi)容,同時闡述在“錢學(xué)森創(chuàng)新拓展班”中的實施過程和效果。
關(guān)鍵詞:計算機基礎(chǔ);通識教育;計算思維;教學(xué)內(nèi)容設(shè)計;錢學(xué)森創(chuàng)新拓展班
在信息時代,沒有計算支持的科研是不可想象的,因此,各專業(yè)學(xué)生必須學(xué)習(xí)利用計算進行問題求解的技能。如何培養(yǎng)非計算機專業(yè)學(xué)生的計算機使用技能和計算機問題求解能力,給計算科學(xué)的教育帶來了新的挑戰(zhàn)。周以真教授2006年提出了計算思維概念,為計算科學(xué)教育規(guī)劃了遠景,周教授認為計算思維是“基于計算機科學(xué)的解決問題、設(shè)計系統(tǒng)和理解人類行為的能力”,是每個人必須掌握的基本分析思維技能,而不僅僅是計算機科學(xué)家所必需的。
近年來,國內(nèi)外計算機教育界就如何進行計算思維教學(xué)進行了很多探索,特別是在對非計算機專業(yè)學(xué)生的計算思維能力培養(yǎng)方面。國內(nèi)教育界同行在計算思維的認識、教學(xué)內(nèi)容設(shè)計、教學(xué)實踐等方面進行了多次研討,形成了以計算思維為統(tǒng)領(lǐng),開展大學(xué)計算機基礎(chǔ)通識教育改革的共識㈣。基于該共識,各所大學(xué)開始了計算思維的教學(xué)改革,取得了初步成果。
然而,由于對計算思維內(nèi)涵和內(nèi)容的解讀和側(cè)重點上的差異,各大學(xué)在計算思維教學(xué)內(nèi)容選取和教學(xué)實施形式上有很大的不同,在計算思維教學(xué)內(nèi)容的選取、配套實驗環(huán)節(jié)設(shè)計上還未形成很好的體系。近幾年,國防科學(xué)技術(shù)大學(xué)依托“大學(xué)計算機基礎(chǔ)”課程進行非計算機專業(yè)計算思維教學(xué)改革,在計算思維教學(xué)內(nèi)容、實驗內(nèi)容、教學(xué)方法與手段等方面形成了一整套體系。
1.計算思維內(nèi)涵
對計算思維內(nèi)涵的解讀有很多。這些觀點包括ACM/IEEE提出的計算作為一門學(xué)科所具有的30個核心技術(shù);周以真教授提出計算思維就是自動化抽象的過程;De Souza等認為計算思維是從自然語言描述開始,不斷對其進行精化,最后得到可計算模型或代碼;Kuster等理解的計算思維內(nèi)涵是數(shù)據(jù)分析、算法設(shè)計與實現(xiàn),以及數(shù)學(xué)建模等技術(shù)的一個綜合體。Engelbart認為計算思維的內(nèi)涵分為三個層次:使用計算機的基本能力、理解計算機系統(tǒng)的熟練能力和計算思維能力。Peter Denning提出了計算的幾大原則,從知識體系的角度對計算思維的內(nèi)涵進行了解釋。
對計算思維內(nèi)涵的不同認識,極大地影響著教學(xué)內(nèi)容的設(shè)計與實施。我們認同的計算思維的內(nèi)涵是:計算思維是一種解決問題的思維方法,這種方法將問題轉(zhuǎn)換為某個計算裝置上的信息處理過程,并尋求一種算法上的解決辦法。
對該內(nèi)涵中涉及的幾個關(guān)鍵詞的理解如下:
1)“思維方法”,指在解決問題的過程中,能利用計算機科學(xué)中的抽象、自動化、數(shù)據(jù)分析、數(shù)據(jù)建模等手段,對問題進行深刻的認識和轉(zhuǎn)化。
2)“計算裝置”,這個裝置可以是人腦、機械裝置和計算機系統(tǒng),但是最終會落實到計算機系統(tǒng)上,因此,對計算裝置的工作原理需要有較好的認識和理解,并能在理解計算裝置的過程中體會到計算思維的作用,以及計算思維對問題求解帶來的非傳統(tǒng)的解決方法。
3)“信息處理過程”,即需要理解什么是信息。對信息處理來說,一切皆是符號,對符號的不同理解和操作帶來不同的結(jié)果,即從信息論的高度來認識計算裝置所作的各種處理,以及問題求解即是一個信息轉(zhuǎn)換的過程。并且信息處理的過程還涉及信息處理系統(tǒng)的構(gòu)建,能幫助學(xué)生建立系統(tǒng)觀。
4)“算法”,需要理解什么是算法、常用的算法有什么、常用的設(shè)計算法的策略有什么、如何設(shè)計算法解決一類問題等相關(guān)知識點。
2.計算思維教學(xué)內(nèi)容設(shè)計原則
基于對計算思維內(nèi)涵的理解,我們將教學(xué)中要解決的問題分解成幾個部分(如表1第1列所示),對這幾個問題的回答,就成為我們設(shè)計教學(xué)內(nèi)容的指導(dǎo)原則(如表1第2列所示)。
表1給出了計算思維教學(xué)內(nèi)容設(shè)計的指導(dǎo)原則,下面對這些原則進行詳細的解讀。
首先,培養(yǎng)思維方法更強調(diào)思維過程,思維結(jié)果則變?yōu)榇我蛩亍@纾壳敖虒W(xué)內(nèi)容中對圖靈機的講授偏重于結(jié)構(gòu)、規(guī)則表、狀態(tài)轉(zhuǎn)換等知識點,對它如何產(chǎn)生、為什么是這種結(jié)構(gòu)、與馮·諾依曼體系結(jié)構(gòu)之間的關(guān)系等問題涉及較少。
其次,計算思維雖然是新概念,但其涵蓋了對計算裝置的理解,因此,需要兼顧原有計算機系統(tǒng)知識點,并引入新的知識點來講授計算機問題求解技能。同時考慮授課對象的特點,雖然新生在入學(xué)時已選定了專業(yè),但是他們的知識背景來源于日常生活以及初高中各門課程。因此,在教學(xué)內(nèi)容設(shè)計時要從新生的知識背景去尋找體現(xiàn)計算思維的知識點,進行類比以幫助更好地理解和掌握計算思維。
第三,重點關(guān)注計算機問題求解能力培養(yǎng)。根據(jù)對計算思維內(nèi)涵的認識,問題求解就是一種信息處理過程,在這個過程中,可以直接利用現(xiàn)有工具和方法,也可創(chuàng)造新的方法。因此,在設(shè)計教學(xué)內(nèi)容時,需要兼顧如何利用現(xiàn)有工具和如何創(chuàng)造新工具進行問題求解這兩個方面。對前者,需要培養(yǎng)根據(jù)已有工具對問題進行分析、抽象和建模的能力,最終建立現(xiàn)有工具能處理的模型。對后者,需要培養(yǎng)利用所學(xué)的基本算法、建模方法創(chuàng)造算法或系統(tǒng)解決一類問題的能力。
第四,針對人類學(xué)習(xí)、掌握和精通新知識的過程,選取了德雷福斯技能獲取模型作為能力培養(yǎng)的指導(dǎo)。該模型將人對某種技能的掌握過程分為5個階段:新手、高級新手、勝任者、精通者和專家。其中新手這個角色正是“大學(xué)計算機基礎(chǔ)”課程計算思維的授課對象。在該模型中,對新手的培養(yǎng)原則是“新手需要規(guī)則”。即在設(shè)計教學(xué)內(nèi)容時,需要為計算思維的初學(xué)者建立何時應(yīng)用何種計算思維技能的規(guī)則、何種類型的問題通常使用何種技能來解決等規(guī)則。使得初學(xué)者在進行計算問題求解時能在這些規(guī)則的指導(dǎo)下,逐步地解決問題,培養(yǎng)自信和計算的樂趣。
最后,計算思維的培養(yǎng)應(yīng)達到什么效果。我們認為經(jīng)過課程學(xué)習(xí)和針對性培養(yǎng),學(xué)生應(yīng)能理解計算思維的概念、內(nèi)涵以及計算思維對各行業(yè)帶來的影響,初步掌握常用計算機問題求解策略,能下意識地運用計算思維利用現(xiàn)有工具或創(chuàng)造工具解決問題。例如,手機中通訊錄的組織,如學(xué)生能意識到是根據(jù)符號的字典序排列,并能利用該排序?qū)⑼粏挝唬愋停┑耐ㄓ崒ο蠼M織在一起,即為“下意識”地使用計算思維。
總之,我們在設(shè)計教學(xué)內(nèi)容時遵循的原則可歸納為:兼顧現(xiàn)有知識點,進行針對性拔高;引人新知識點,專注能力培養(yǎng)。
3.計算思維教學(xué)內(nèi)容示例
我們遵循上述原則,對“大學(xué)計算機基礎(chǔ)”課程進行設(shè)計,課程總學(xué)時為36,各知識點的學(xué)時分配、教學(xué)內(nèi)容和配套實驗活動如表2所示。
3.1兼顧現(xiàn)有知識點,進行針對性拔高
我們選取能夠體現(xiàn)計算思維的計算機系統(tǒng)的知識點進行升華,將該知識點的具體技術(shù)作為自學(xué)內(nèi)容。例如,二進制與香農(nóng)定理有很強的關(guān)聯(lián),因此,內(nèi)容選取上,從香農(nóng)定理開始,以信息的度量、信息的表示、信息的處理為主線,自然地引出二進制及其在軟硬件上的信息表示與處理。同時,我們安排了相應(yīng)實驗,即利用繼電器重現(xiàn)香農(nóng)利用電路進行布爾運算的工作。
再如,從信息的表示角度可將信息看做是符號串,即一切皆是符號。以此為出發(fā)點,引出什么是計算的問題,通過對該問題的解答——即計算是信息的轉(zhuǎn)換——串聯(lián)起信息符號的解釋規(guī)則、圖靈機、馮·諾依曼體系結(jié)構(gòu)等知識點。在這些知識點的介紹上,偏重于圖靈機等計算模型的產(chǎn)生過程,由其產(chǎn)生過程再現(xiàn)計算模型對人類計算活動的抽象過程,體現(xiàn)了計算思維中的抽象。通過馮·諾依曼體系結(jié)構(gòu)與人根據(jù)命令自動完成任務(wù)的類比,引導(dǎo)學(xué)生思考如何才能讓機器進行自動計算,體現(xiàn)計算思維中自動化的思維。
對知識點的其他方面,如軟件系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等,也進行了升華,突出其中的并發(fā)、分層、虛擬化等計算思維關(guān)鍵思想,弱化知識點具體技術(shù)的介紹,如在學(xué)生理解馮·諾依曼體系結(jié)構(gòu)特點和原理后,可將計算機工作原理作為自學(xué)內(nèi)容。
3.2引入新知識點,專注能力培養(yǎng)
新的知識點和能力培養(yǎng)包括兩個方面的內(nèi)容,一是如何利用現(xiàn)有工具解決問題,二是如何創(chuàng)造工具解決問題。這兩者都離不開問題建模,即將現(xiàn)實生活中的問題建模成計算機便于處理的模型。這樣的模型主要是數(shù)據(jù)模型,如數(shù)據(jù)庫中的E-R圖、面向?qū)ο蠼!㈥犃小!浜蛨D等。在數(shù)據(jù)建模的配套實踐環(huán)節(jié),安排了E-R圖建模與Excel、Access結(jié)合的問題求解實驗,Z3求解器的問題建模、物理學(xué)模擬器的問題建模等。
對后者,除了數(shù)據(jù)建模外,還需要引入操作建模的內(nèi)容,即在所建模型上的相應(yīng)操作,其本質(zhì)是結(jié)合數(shù)據(jù)結(jié)構(gòu)的算法設(shè)計與實現(xiàn)。在算法設(shè)計方面,選取常用的算法,如搜索、排序、樹和圖的算法等,并以這些算法為案例進行內(nèi)容設(shè)計。如結(jié)合學(xué)生的知識背景,介紹如何用歸納法設(shè)計算法,使學(xué)生在創(chuàng)造工具解決問題時,能有規(guī)則可遵循。歸納法設(shè)計算法雖然不能解決所有的算法設(shè)計問題,但是可應(yīng)用于絕大部分算法設(shè)計問題,并且其設(shè)計出來的算法基本是遞歸算法,所以歸納法可與常用算法設(shè)計策略相結(jié)合,串聯(lián)起相關(guān)知識點。
在算法的實現(xiàn)方面,選擇精簡后的函數(shù)式程序設(shè)計語言Haskell作為實現(xiàn)載體。Haskell語言簡潔,其數(shù)據(jù)結(jié)構(gòu)和操作函數(shù)較為完善,采用自然的遞歸函數(shù)書寫方式(函數(shù)式程序設(shè)計相對于命令式程序設(shè)計(Raptor等)對計算機系統(tǒng)知識要求較低,關(guān)心要做什么而不是怎么做),這些優(yōu)點便于無程序設(shè)計背景的學(xué)生快速掌握該語言,對所學(xué)算法知識進行實踐和體驗。
4.實施與效果
我們在國防科學(xué)技術(shù)大學(xué)“錢學(xué)森創(chuàng)新拓展班”進行了基于設(shè)計的“大學(xué)計算機基礎(chǔ)”課程教學(xué)實踐。從每年入學(xué)新生中選拔30名學(xué)生組成“錢學(xué)森創(chuàng)新拓展班”,學(xué)生來自全校多個專業(yè)。在該班進行的教學(xué)改革,將會逐步推廣到全校其他專業(yè)的教學(xué)上。
在教學(xué)實踐中,我們嚴格按照安排的學(xué)時展開課堂教學(xué),同時,每周安排2次實驗,每次2小時,由授課老師和輔導(dǎo)老師全程跟蹤指導(dǎo),全部課程在9周內(nèi)完成。與前2年的教學(xué)效果相比,學(xué)生對計算機基礎(chǔ)知識思想方法層次的理解更深,以此帶動了學(xué)習(xí)計算科學(xué)的興趣。突出體現(xiàn)在以下兩方面:
1)學(xué)生在學(xué)習(xí)了圖靈機等計算模型和計算裝置的產(chǎn)生過程后,分析和思考問題的層次更高,相比以前重點關(guān)注計算機基礎(chǔ)知識的講授和實驗,學(xué)生通過學(xué)習(xí)新的教學(xué)內(nèi)容,不但更好地掌握了基礎(chǔ)知識,還能深刻理解其本質(zhì),在思維方式上有所收獲。
2)在函數(shù)式程序設(shè)計學(xué)習(xí)方面,相比于以前的Raptor工具,學(xué)生表現(xiàn)出更強的適應(yīng)能力,效果很好。Raptor工具本質(zhì)上還是一種命令式程序設(shè)計泛型,關(guān)心的是“怎么做”。從學(xué)生反饋,可知,在初高中學(xué)過函數(shù)后,函數(shù)式程序設(shè)計的概念很容易理解,并且編程時不需過多考慮計算機系統(tǒng)的細節(jié),更多地關(guān)注“做什么”。
5.結(jié)語
我們在計算思維教學(xué)內(nèi)容設(shè)計的原則、內(nèi)容選取、實施與效果等方面進行了一些探索和實踐。設(shè)計的教學(xué)內(nèi)容更能適應(yīng)新生現(xiàn)有的知識水平,教學(xué)效果很好。但實踐中也發(fā)現(xiàn)了一些不足,如在計算思維實踐語言的選取上,我們發(fā)現(xiàn)還沒有一種語言能完全體現(xiàn)計算思維的思維特性和思維術(shù)語。函數(shù)式程序設(shè)計雖然能部分解決該問題,但還是貼近于實現(xiàn),抽象層次不夠。今后,我們?nèi)孕柙谟嬎闼季S教學(xué)上不斷探索,尋求更好的培養(yǎng)方式,設(shè)計出更能體現(xiàn)計算思維的實踐配套工具和語言,以達到更好的培養(yǎng)效果。
(編輯:彭遠紅)