鄧韌+樊友洪+劉興長+馬靜恒+李娜
摘 要:針對計算機系統(tǒng)課程的計算思維培養(yǎng)現(xiàn)狀,提出計算機系統(tǒng)教學(xué)模塊的計算思維培養(yǎng)框架模型,探討計算機系統(tǒng)中計算思維的本質(zhì)和3種重要的計算思維,為在實踐教學(xué)中培養(yǎng)學(xué)生的計算思維提供借鑒。
關(guān)鍵詞:計算機系統(tǒng)教學(xué)模塊;計算思維;抽象;自動化
1 背 景
教育部高等學(xué)校計算機基礎(chǔ)課程教學(xué)指導(dǎo)委員會在《高等學(xué)校計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略研究報告暨計算機基礎(chǔ)課程教學(xué)基本要求》中給出了計算機基礎(chǔ)課程教學(xué)的4個教學(xué)模塊,即①系統(tǒng)平臺與計算環(huán)境,包括信息與社會、計算機系統(tǒng)以及計算機網(wǎng)絡(luò);②算法基礎(chǔ)與程序設(shè)計;③數(shù)據(jù)管理與信息處理;④系統(tǒng)開發(fā)與行業(yè)應(yīng)用[1]。盡管如此,大學(xué)計算機基礎(chǔ)課程的教學(xué)內(nèi)容到底應(yīng)該包括哪些模塊仍然莫衷一是。然而,無論哪所大學(xué),無論從事計算機基礎(chǔ)課程教學(xué)的教師秉持何種教學(xué)觀念,計算機系統(tǒng)和算法基礎(chǔ)與程序設(shè)計已是計算機基礎(chǔ)課程教學(xué)中兩個最主要的教學(xué)模塊,這一點已經(jīng)達成共識。
另一個共識是在大學(xué)計算機基礎(chǔ)課程教學(xué)中要注重探索和培養(yǎng)學(xué)生的計算思維。目前,計算機基礎(chǔ)教學(xué)中對計算思維探索與培養(yǎng)的側(cè)重點基本放在基于問題求解的“算法基礎(chǔ)與程序設(shè)計”教學(xué)模塊上,在“計算機系統(tǒng)”教學(xué)模塊中則體現(xiàn)較少,究其原因是算法、程序設(shè)計等軟件教學(xué)方面的內(nèi)容,與計算及問題求解的關(guān)系更為密切。若要將計算思維作為思維模式進行培養(yǎng),則應(yīng)將其貫穿于課程教學(xué)的全過程,那么,計算機系統(tǒng)教學(xué)模塊也概莫能外——這句話可以從兩方面進行解釋,一是計算機系統(tǒng)教學(xué)模塊內(nèi)部要體現(xiàn)計算思維,二是計算機系統(tǒng)教學(xué)模塊中的計算思維作為完整的計算思維過程鏈中的一環(huán),甚至是最基礎(chǔ)的一環(huán),要為全過程、全方位的計算思維培養(yǎng)提供原理支撐。我們對計算機系統(tǒng)教學(xué)模塊中的計算思維進行研究。
2 計算機系統(tǒng)教學(xué)模塊中的計算思維框架模型
計算思維貫穿計算機系統(tǒng)模塊教學(xué)的始終。計算思維應(yīng)該是一條線,將計算機系統(tǒng)的核心知識點像串珍珠一樣串起來,培養(yǎng)學(xué)生從機器本身和計算機科學(xué)家這兩個思維角度理解計算機系統(tǒng)的底層運作機制;在此基礎(chǔ)上,計算機是實現(xiàn)問題求解的手段,計算思維則是人類求解現(xiàn)實問題的一條途徑[2],是一種解決客觀世界各種可計算問題的思維方法。
基于以上思路,我們將計算機系統(tǒng)教學(xué)的核心知識點概括為計算思維框架模型,如圖1所示。結(jié)合該框架模型,我們對計算機系統(tǒng)中計算思維的本質(zhì)和3種重要的計算思維進行歸納。
3 計算機系統(tǒng)教學(xué)模塊中計算思維的本質(zhì)
計算思維是運用計算機科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類行為的一系列思維活動的統(tǒng)稱[2],其本質(zhì)是抽象和自動化,即在不同層面進行抽象并將這些抽象機器化或自動化。
對于客觀世界中的某個可計算問題,要映射到計算機世界去求解,通常需要兩個步驟:一是將待求解問題抽象為可計算的概念模型;二是對于概念世界中的概念模型,用物理的計算機世界來實現(xiàn)與求解。前者體現(xiàn)計算思維的本質(zhì)之一——抽象化,后者反映計算思維的本質(zhì)之二——自動化。
抽象是一種很好的管理復(fù)雜性事物的思維方法。好的抽象可以把一個幾乎不可能管理的任務(wù)劃分為兩個可管理的部分:第一部分是有關(guān)抽象的定義和實現(xiàn);第二部分是隨時用這些抽象解決問題[3]。
“抽象的定義和實現(xiàn)”可以理解為領(lǐng)域內(nèi)的、深刻反映外部世界的一些通用概念,在計算機系統(tǒng)教學(xué)中,就是指學(xué)生通過學(xué)習(xí)各個知識點來理解計算機系統(tǒng)的底層運作機制;“用這些抽象解決問題”意味著學(xué)生不能以客觀世界的事物為起點開展思維,而應(yīng)該以計算機系統(tǒng)中的抽象概念為起點分析待求解問題,包括用抽象概念代表待求解對象,用概念間的關(guān)系來代表待求解對象之間的關(guān)系。到此時,具體而復(fù)雜的現(xiàn)實問題被抽象為一個可計算問題,現(xiàn)實世界在抽象的計算機概念世界中得到再現(xiàn)。
“隨時用這些抽象解決問題”意味著計算機要將抽象概念機器化、自動化。雖然計算機的計算能力日益強大,應(yīng)用范圍日益廣泛,但是從本質(zhì)上來說,計算機的基本功能很簡單,即通過執(zhí)行程序進行信息處理[4]。信息處理包含兩方面的意思:一是構(gòu)造求解問題的算法和程序;二是程序在機器層面的自動執(zhí)行,即自動化。
抽象和自動化這兩種重要的研究思維模式,對于用計算手段求解現(xiàn)實問題是非常有效的,能為其他的計算思維奠定基礎(chǔ),因此,教師在教學(xué)中要注重培養(yǎng)這兩種思維模式。本質(zhì)上來說,現(xiàn)實問題的計算和問題求解是不同層面的抽象以及抽象之后的自動化,這種抽象和自動化通過二進制思維、指令自動執(zhí)行思維、程序自動運行思維3方面得以體現(xiàn)。
4 3種計算思維
4.1 二進制思維
要將待解決問題表示成可計算的對象,就是要將該問題抽象為可描述的數(shù)學(xué)模型,并將可計算對象及其特性符號化,符號可以是數(shù)字、文本、圖形圖像、聲音、視頻等,統(tǒng)稱為該對象的數(shù)據(jù)信息(包含數(shù)值性和非數(shù)值性)。計算機本質(zhì)上是二進制(0、1)的世界,即可計算對象的數(shù)據(jù)信息都要表示成計算機可以處理的符號——0、1。在二進制的世界里,所有的二進制運算都可以用邏輯運算代替,而香農(nóng)在題為《繼電器和開關(guān)電路的符號分析》的論文中指出“由繼電器、晶體管等電子元件組成的邏輯電路可以實現(xiàn)所有的邏輯運算;然后,再通過集成各種復(fù)雜的邏輯電路得到不同功能的硬件——處理器、內(nèi)存儲器、I/O設(shè)備,最后,在一定的體系結(jié)構(gòu)下將這些硬件結(jié)合在一起,實現(xiàn)計算機的信息處理功能”。由此可見,從客觀世界到計算機世界的紐帶就是二進制(0、1)。
二進制思維是一種將客觀事物符號化、符號二進制化、二進制電子化和電子集成化的思維過程,是一種非常重要的計算思維。教師在教學(xué)中要培養(yǎng)學(xué)生多從機器的思維(客觀事物二進制化的抽象思維)和計算機科學(xué)家的思維(怎么實現(xiàn)二進制化,即二進制電子化和電子集成化的自動化思維)這兩個角度學(xué)習(xí)及思考,這種代入感對于學(xué)生掌握計算機系統(tǒng)運行原理和培養(yǎng)學(xué)生的計算思維都有事半功倍的效果。
在教學(xué)實踐中,為了培養(yǎng)學(xué)生的二進制抽象思維,可以采用事物編碼的方法。第一步,利用二進制方式對事物進行編碼,若用0001表示計算機類,則可用000101表示微型計算機類;第二步,利用編碼方式表達事物之間的靜態(tài)聯(lián)系,如整體與部分的關(guān)系,若用0001010001表示一臺微型計算機,則可用000101000110表示該計算機的第二顆CPU,由此,學(xué)生可利用二進制編碼逐漸建立出一個符號化的靜態(tài)世界;第三步,利用二進制編碼方式表達事物之間的動態(tài)關(guān)系,如前述的“微型計算機第二顆CPU開始運行”這個概念,可以使用 01 000101000110表達,前面兩位數(shù)“01”表示“開始運行”的操作碼,后面12位數(shù)“000101000110”是操作數(shù),由此,學(xué)生可以利用二進制符號化、抽象化地表達世間萬物及其之間的關(guān)系,同時也能為后續(xù)計算機指令的表達方式作鋪墊。這些步驟可以讓學(xué)生深入理解機器是如何理解和表現(xiàn)世界的,從而切實了解機器思維。在將現(xiàn)實世界抽象為符號世界的基礎(chǔ)上,我們繼續(xù)探討了計算機科學(xué)家們是如何從抽象的符號世界走向物理的電子世界的。
4.2 指令自動執(zhí)行思維
將待求解問題表示成可計算對象后,怎么基于計算手段來求解呢?問題的求解方案可以抽象為基本動作以及基本動作的各種組合所構(gòu)成的動作序列,因此,我們將基于計算手段的求解方案的實現(xiàn)轉(zhuǎn)換為對抽象的定義和抽象定義的自動化實現(xiàn):①定義這些基本動作;②實現(xiàn)控制這些基本動作并按次序執(zhí)行的機構(gòu)。對這些基本動作的控制就是指令,為求解問題而將指令按一定次序進行組合就構(gòu)成程序。程序(指令序列)經(jīng)輸入設(shè)備輸入并存儲在內(nèi)存儲器中,處理器從存儲器中一條接一條地順序讀取并執(zhí)行這些指令,以實現(xiàn)信息處理的功能。由此可見,計算機系統(tǒng)是根據(jù)程序來自動控制這些基本動作的執(zhí)行,從而完成問題求解。人的任務(wù)是編制程序——將待求解問題轉(zhuǎn)換為程序,通過程序運行達到解決問題的目的。
指令自動執(zhí)行思維體現(xiàn)的是指令如何被表示、如何被存儲以及如何被CPU(控制器和運算器)執(zhí)行的基本思維。
教學(xué)實踐中,通過二進制思維的培養(yǎng),學(xué)生掌握了指令二進制表達方式的基礎(chǔ)。在此基礎(chǔ)上,一方面,教師可以通過圖示、動作分解、寄存器狀態(tài)再現(xiàn)、I/O分時動作等方法,重點分析指令表達及其存儲、指令的自動執(zhí)行等知識點,增強對學(xué)生指令自動執(zhí)行思維的培養(yǎng);另一方面,教師可以讓學(xué)生利用DEBUG命令實驗驗證計算機指令的存儲、執(zhí)行以及結(jié)果,讓學(xué)生切身體會指令自動執(zhí)行的過程和效果。
4.3 程序自動運行思維
指令自動執(zhí)行思維是從微觀角度思考指令與硬件的交互,再通過拓寬思維,從宏觀角度思考程序借助操作系統(tǒng)與硬件的交互和自動運行。
操作系統(tǒng)是程序和硬件之間的接口,負(fù)責(zé)向應(yīng)用程序提供簡單一致的機制來控制復(fù)雜而原理各異的底層硬件設(shè)備[5]。這個簡單一致的機制就是“抽象”,也是計算機管理硬件的關(guān)鍵。這些抽象主要包括文件、地址空間和進程,其中,文件是對I/O設(shè)備的抽象表示,它為程序創(chuàng)造了一個抽象的永久存儲設(shè)備;地址空間是對內(nèi)存和I/O設(shè)備的抽象表示,該概念為程序創(chuàng)造了一個抽象的獨立的內(nèi)存;進程則是對處理器、內(nèi)存和I/O設(shè)備的抽象表示,進程概念創(chuàng)造了一個抽象的獨占的處理器以運行程序。在此基礎(chǔ)上,程序和硬件之間的交互以及自動運行主要是利用操作系統(tǒng)提供的、比實際硬件更方便使用的抽象來實現(xiàn),包括程序及其數(shù)據(jù)被合并成一個文件并保存在I/O設(shè)備上,程序運行時,處理器將這個文件加載到“獨立的”地址空間,然后該進程被“獨立的”處理器執(zhí)行。
程序自動運行思維體現(xiàn)的是在操作系統(tǒng)的協(xié)助下程序被硬件自動運行的思維。在教學(xué)實踐中,我們一方面補充講解計算機操作系統(tǒng)的必要內(nèi)容,如文件系統(tǒng)管理、內(nèi)存管理、進程管理等相關(guān)知識;另一方面則結(jié)合生活中的實際問題進行實驗,如批處理文件的編寫、文件I/O操作與NTFS文件系統(tǒng)的關(guān)系等。通過這些與日常學(xué)習(xí)生活非常貼近的知識和實驗,學(xué)生不僅對操作系統(tǒng)和計算機硬件系統(tǒng)之間的協(xié)作有了更深入的理解,同時也培養(yǎng)了他們的程序自動執(zhí)行思維。
指令自動執(zhí)行和程序自動運行思維是一種構(gòu)造性的問題求解思維,即一個問題的求解可以通過構(gòu)造其算法和程序來解決,因此這兩種思維對于培養(yǎng)學(xué)生利用算法和程序手段求解客觀現(xiàn)實問題具有重要的意義。
5 結(jié) 語
計算機系統(tǒng)教學(xué)模塊中計算思維的本質(zhì)以及二進制思維、指令自動執(zhí)行思維、程序自動運行思維3種計算思維可以讓學(xué)生逐步理解計算機系統(tǒng),并且讓學(xué)生能夠進行這些知識背后的思維訓(xùn)練,為學(xué)生形成抽象和應(yīng)用自動化手段求解問題的思維模式提供重要支撐。我們所在的計算機系統(tǒng)教學(xué)組已經(jīng)將這些計算思維應(yīng)用到實際教學(xué)中,并編寫了支撐計算思維教學(xué)的教材,即將由清華大學(xué)出版社出版。
計算思維作為一種解決客觀世界各種可計算問題的思維方法,在計算學(xué)科中還有很多應(yīng)用。教師要挖掘并傳授這些思維,學(xué)生則要掌握這些思維并將這些思維與自己的專業(yè)研究對象結(jié)合起來,從而形成一種應(yīng)用計算手段求解問題的創(chuàng)新性思維,這種思維的培養(yǎng)也必將對專業(yè)人才在未來進行創(chuàng)造性研究產(chǎn)生深遠(yuǎn)影響。
參考文獻:
[1] 教育部高等學(xué)校計算機基礎(chǔ)課程教學(xué)指導(dǎo)委員會. 高等學(xué)校計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略研究報告暨計算機基礎(chǔ)課程教學(xué)基本要求[M]. 北京: 高等教育出版社, 2012: 9-10 .
[2] 周以真. 計算思維[J]. 中國計算機學(xué)會通訊, 2007, 3(11): 83-85.
[3] Tanenbaum A S. 現(xiàn)代操作系統(tǒng)[M]. 3版. 北京: 機械工業(yè)出版社, 2009: 2-3.
[4] Stallings W. 計算機組成與體系結(jié)構(gòu)——性能設(shè)計[M]. 彭蔓蔓, 吳強, 任小西, 等譯. 6版. 北京: 機械工業(yè)出版社, 2011: 7.
[5] Bryant R E, OHallaron D R. 深入理解計算機系統(tǒng)[M]. 龔奕利, 雷迎春, 譯. 2版. 北京: 機械工業(yè)出版社, 2010: 10-13.
(編輯:宋文婷)