孫大為,張玉清
(中國地質大學(北京)信息工程學院,北京 100083)
以信息化、數(shù)字化為代表的新一輪科技革命與產(chǎn)業(yè)變革已經(jīng)對社會生活的各方面產(chǎn)生了顛覆式的影響,改變了人們的生活方法,改變了傳統(tǒng)的產(chǎn)業(yè)布局形態(tài),也改變了科技人才的培養(yǎng)目標。2017 年教育部開始推進“新工科”的研究與實踐[1],聚焦“復雜工程問題”,培養(yǎng)學生具備解決“復雜工程問題”的能力,積極主動培養(yǎng)適應新一輪科技革命與產(chǎn)業(yè)變革所需的新型工科人才,滿足新的工科時代各產(chǎn)業(yè)的新需求和新挑戰(zhàn)。
在“新工科”背景下,計算機專業(yè)人才的培養(yǎng)也需要具備“復雜工程問題”解決能力,面臨著諸多新的變化,其本質可以概述為從注重讓更多人“會編程”到讓更多人“編好程”的根本性轉變。經(jīng)過幾十年計算機教育的普及和發(fā)展,以及計算機軟硬件技術的進步,“會編程”在今天已經(jīng)不是問題,特別是以Python 為代表的高級編程語言易學、易用,一個不具有計算機基礎的學生,可以在短短數(shù)天內,經(jīng)過一定強度的學習和訓練,就可以學會使用。但如何“編好程”,實現(xiàn)對分布式環(huán)境中計算機軟硬件資源的高效利用,實現(xiàn)對高吞吐量數(shù)據(jù)的快速處理,是今天計算機專業(yè)人才面臨著的突出問題。這就需要計算機專業(yè)人才具備良好的系統(tǒng)思維能力,從系統(tǒng)觀的角度進行系統(tǒng)規(guī)劃、程序編寫和功能優(yōu)化。
計算機系統(tǒng)思維源自于計算機軟硬件的復雜性、用戶需求的多樣性、應用環(huán)境的動態(tài)性、系統(tǒng)運行的長期性等多方面因素。計算思維[2]是計算機科學的本質思維模式,系統(tǒng)思維則推動了計算機科學向縱深發(fā)展。
一般意義上,系統(tǒng)思維是以系統(tǒng)觀為特征的認識世界、構建系統(tǒng)、優(yōu)化性能、持續(xù)改進的基本思維,其注重從全局的角度進行計算機系統(tǒng)的規(guī)劃,實現(xiàn)有效利用軟硬件資源;從發(fā)展的角度進行計算機系統(tǒng)的設計,實現(xiàn)合理進行功能的細分;從生命周期的角度進行計算機系統(tǒng)的優(yōu)化,實現(xiàn)快速進行計算機系統(tǒng)的升級。
系統(tǒng)思維是計算機專業(yè)人才的核心競爭力之一[3],是具備“復雜工程問題”能力的關鍵,也是區(qū)分“會編程”和“編好程”的關鍵標準之一。只有具備了計算機系統(tǒng)思維,才能夠適應“新工科”背景下各行業(yè)、各領域對計算機專業(yè)人才的發(fā)展需求,實現(xiàn)對“復雜工程問題”的解決。
在很長一段時間內,國內多數(shù)高校將計算機專業(yè)人才培養(yǎng)事實界定為對程序員的培養(yǎng),專業(yè)知識學習過程中更多的是通過對編程能力的訓練,僅僅達到“會編程”的目標。相當數(shù)量的學生,也僅以學過幾種編程語言為滿足。只有少數(shù)高校具備條件和能力,進一步加強對學生的系統(tǒng)思維能力的培養(yǎng),達到“編好程”的目標。
隨著計算機硬件的不斷提升,軟件的不斷優(yōu)化,特別是計算機高級語言的快速發(fā)展,“會編程”已經(jīng)不是問題。一個非計算機專業(yè)的學生,只要具備一定的數(shù)學、英語等方面的知識儲備,可以在1~2 周的時間內通過集訓或自學等形式,進而達到“會編程”的目的。
計算機專業(yè)是最受學生歡迎的專業(yè)之一,也是就業(yè)率最高的專業(yè)之一。由于“會編程”的門檻已經(jīng)很低,部分非計算機專業(yè)學生在畢業(yè)之際,放棄了本專業(yè),通過短期的培訓,就可以找到計算機領域的工作。工資待遇甚至比其原專業(yè)還要高。這個現(xiàn)象的產(chǎn)生,一方面源自于今天社會各行業(yè)對計算機人才的強烈需求,另一方面,由于計算機專業(yè)人才的就業(yè)率較高,很多計算機專業(yè)人才的培養(yǎng)止步于“會編程”的階段,沒有動力或沒有能力進行“編好程”階段的人才的培養(yǎng)。
隨著大數(shù)據(jù)、人工智能等前沿科技的發(fā)展,推動著新一輪科技革命與產(chǎn)業(yè)變革的不斷進步,也迫切需要更多具有計算機系統(tǒng)思維的人才,不再停留在“會編程”的初級階段,而是上升到“編好程”的高級階段,需要具備“復雜工程問題”的解決能力。
在現(xiàn)階段,簡單地進行具體功能的實現(xiàn)往往很容易做到,如實現(xiàn)網(wǎng)頁搜索,通過早期的編程語言進行實現(xiàn),需要明白其中的具體實現(xiàn)邏輯,編寫很多行代碼。然而,今天可以很容易找到相關的軟件包或利用已有工具,通過簡單的幾個調用語句就可以完成,編程人員甚至不需要了解其中的實現(xiàn)細節(jié)。
隨著信息技術的不斷發(fā)展和信息產(chǎn)品的不斷普及,這種僅關注功能的實現(xiàn),越來越不能夠滿足市場的需要。在用戶規(guī)模不斷增大、系統(tǒng)訪問持續(xù)增加的情況下,系統(tǒng)的性能成為制約系統(tǒng)成功的關鍵因素。系統(tǒng)性能的改善需要編程人員具有系統(tǒng)思維能力,了解系統(tǒng)的全局架構、掌握功能實現(xiàn)的底層細節(jié)、明白制約性能的關鍵因素。也就是只有做到“編好程”,才能實現(xiàn)高質量工程問題的解決、高水平代碼能力的應用、高效率軟硬件資源的利用,才能夠對該“復雜工程問題”進行系統(tǒng)化解決。
一般意義上,通過不同的計算機軟硬件技術實現(xiàn)同一個復雜功能,其會存在性能上的差異。這種差異根據(jù)功能的復雜程度的不同、程序員對具體技術掌握的不同,其性能會很大。如高維矩陣乘法,一個“編好程”的程序員可以在“會編程”的程序員的基礎上,通過計算機系統(tǒng)思維,根據(jù)計算機系統(tǒng)結構,綜合利用軟硬件資源,實現(xiàn)計算性能提升高達六萬倍[4]。
可見,在“新工科”背景下,隨著新一輪科技革命與產(chǎn)業(yè)變革,越來越多的“復雜工程問題”需要得到解決,這就要求培養(yǎng)更多具備“編好程”能力的計算機人才。
計算機系統(tǒng)思維的培養(yǎng)要從系統(tǒng)觀的角度入手,對教學環(huán)節(jié)各主體進行再優(yōu)化,從培養(yǎng)目標、教學內容、教學方法、教學手段等方面進行再調整。要以培養(yǎng)高質量計算機人才為最終目標,真正做到“編好程”;要以“新工科”為立足點,以解決復雜工業(yè)實際需求為培養(yǎng)源動力;要以課程建設為抓手,在課程的教學過程中,讓學生認識到系統(tǒng)思維的重要性,理解系統(tǒng)思維的實現(xiàn)方法,明白系統(tǒng)思維的內在邏輯。
在計算機人才的培養(yǎng)初期,應通過通俗易懂的方式講授計算機科學領域經(jīng)典的思想,在更宏觀的層面上進行計算機知識的學習,也可以使學生有機會在后續(xù)的具體知識學習過程中,進一步理解和強化相關思想,提升對計算機科學認識的高度和層次。
在通常情況下,計算機科學導論作為基礎類課程為所有專業(yè)本科生開設,主要介紹計算機科學的基本概念、思想和方法,其目的是讓學生了解計算機學科、明白計算機的學科范圍,理解計算機可以解決的問題邊界,其重要性不言而喻。然而,目前國內大多數(shù)高校,在開設計算機科學導論課程的過程中,其所教授的內容只是對計算機專業(yè)部分課程的簡化和疊加,講授計算機基本概念、數(shù)據(jù)結構、計算機組成、軟件工程、操作系統(tǒng)、信息安全等內容。這些內容只是簡單的羅列,面向全體學生進行授課,其思想性、趣味性不強,很難引起學生的共鳴和興趣。
作為介紹計算機科學的入門課程計算機科學導論,其在講課內容的選擇上可以聚焦于計算機的經(jīng)典思想,如以計算思維、系統(tǒng)思維、算法思維、網(wǎng)絡思維、數(shù)據(jù)思維等為章節(jié)進行講授,針對各類計算機思維,從問題的提出、思想的形成與發(fā)展、思想的核心與要點等角度進行重點講授。同時,結合具體應用、具體計算機軟硬件產(chǎn)品、具體思想的提出者及其提出過程等案例,使學生認識到這些思想的形成是源自于計算機發(fā)展過程中的具體問題,當今計算機的應用也面臨著諸多問題,這些問題的解決也將推動計算機的發(fā)展。通過這些改變,可以增強課程學習的思想性、趣味性、歷史性和現(xiàn)實性,也可以為對計算機感興趣的學生明確其學習好計算機后續(xù)課程的著力點和落腳點,解決計算機發(fā)展過程中的具體問題,推動計算機科學的應用與發(fā)展。文獻[5]系統(tǒng)地總結了計算邏輯思維、算法思維、網(wǎng)絡思維、計算系統(tǒng)思維4 個方面的思維,通過通俗的案例進行講授,可以很好地告訴學生什么是計算機科學要解決的問題及其解決的基本思想,實現(xiàn)從“方法”到“思想”的提升。諸如此類的教材還有很多,可以根據(jù)實際情況進行選擇,將計算機科學導論這門入門課真正作為打開計算機科學的金鑰匙。
計算機系統(tǒng)是由軟件和硬件兩部分構成。硬件是基礎,為軟件提供支撐和平臺;軟件是靈魂,實現(xiàn)處理邏輯在更高層面上的提升,最大程度的發(fā)揮硬件的性能。軟件和硬件兩者之間相互促進、有機統(tǒng)一,最終實現(xiàn)計算機系統(tǒng)功能和性能的最大化。
計算機人才也需要同時具備軟件和硬件兩個方面的素質。由于多方面因素的作用,導致了目前計算機人才的培養(yǎng)主要集中在軟件方面,相關的課程體系也比較全,涉及計算機硬件的課程偏少。這個現(xiàn)象在過去的一段時間內,在處于“會編程”的階段時,具有一定的歷史合理性,但在今天的“新工科”背景下,需要更多“編好程”的計算機人才,這就需要彌補計算機硬件的課程,讓學生懂得軟件系統(tǒng)是所運行的平臺,以及如何更好地使用硬件資源,實現(xiàn)系統(tǒng)性能的提升。
在計算機硬件課程開設方面,可以通過提升硬件類課程在人才培養(yǎng)方案中的比例,細化不同層次的硬件課程的開設、強化規(guī)模不等的硬件實驗、強化工廠生產(chǎn)實踐環(huán)節(jié)、強化中到大規(guī)模多人協(xié)作工程項目等多種不同方式,以數(shù)字邏輯、匯編語言、計算機組成原理等課程的學習和實訓為具體抓手,實現(xiàn)對理論知識和硬件實踐的有機統(tǒng)一,通過強化硬件知識的認知和體會,進而更全面地培養(yǎng)計算機人才的系統(tǒng)思維和能力。
分布式是大數(shù)據(jù)時代計算機系統(tǒng)運行和部署的常態(tài),很難想象一個大規(guī)模應用的計算機系統(tǒng)不是分布式的。這就要求教師對分布式環(huán)境下的計算機系統(tǒng)特征有著充分的認知。在目前的計算機人才培養(yǎng)課程體系中,也只有部分學校在計算機專業(yè)的研究生階段開始了相關課程。
為了促進計算機人才的系統(tǒng)思維和能力的培養(yǎng),提升分布式場景下的計算機系統(tǒng)的性能,在計算機人才本科的培養(yǎng)過程中和講授具體知識點的過程中,通過分組和多人協(xié)作,針對具體場景的不同要求,針對性的開發(fā)具有特定特征的操作系統(tǒng)等實踐活動,通過理論和實踐環(huán)節(jié)相結合,強化操作系統(tǒng)等課程的學習。同時,結合大數(shù)據(jù)時期應用場景對計算機系統(tǒng)的復雜性、規(guī)模性、實時性等問題,以問題為出發(fā)點,進一步地增設分布式系統(tǒng)、分布式數(shù)據(jù)庫等課程,在問題中學習和掌握分布式相關理論和知識,提升自身的核心競爭力。
系統(tǒng)思維的理論性強、復雜性大、抽象性高,在完善現(xiàn)有理論知識學習的前提下,也需要通過多種不同教學手段,采用多樣教學方法,讓學生可以理解的清楚、實踐的明白。在教學方法方面,可以引入實際分布式、大規(guī)模系統(tǒng)開發(fā)案例,并結合具體知識點,進一步提高學生對具體問題的理解。在教學實踐方面,應該加強大型實驗環(huán)節(jié)的訓練,在團隊合作、多人協(xié)調的情況下,開展課程實踐活動,增強對系統(tǒng)思維的認知。如,在操作系統(tǒng)的教學過程中,可以分組完成對操作系統(tǒng)原型各個部分的開發(fā)實踐,通過各組間的相互協(xié)調進行原型的構建。在基本功能實現(xiàn)的情況下,進行系統(tǒng)性能的調優(yōu),開展壓力測試,拓展分布式功能等,實現(xiàn)從簡單功能到復雜功能的逐步完善。在此過程中,實現(xiàn)對學習系統(tǒng)思維能力的逐步培養(yǎng)。
鼓勵學生在學有余力的情況下,積極參加算法類和系統(tǒng)應用開發(fā)類的學科競賽,如ACMICPC 國際大學生程序競賽和中國大學生計算機設計大賽等,有助于提高學生的系統(tǒng)思維和綜合分析應用能力。在條件允許的情況下,還可以讓學生利用假期時間,參加到企業(yè)實際項目的開發(fā)過程中,進行系統(tǒng)思維的培養(yǎng)。在教學手段方面,可以引入慕課、引進優(yōu)質外部資源,實現(xiàn)對教學質量的改進。
“新工科”建設聚焦“復雜工程問題”,計算機人才需要具備“復雜工程問題”的解決能力,本質上是實現(xiàn)了從注重數(shù)量的“會編程”階段提升到注重質量的“編好程”階段。計算機系統(tǒng)思維能力的培養(yǎng)是其中的關鍵一環(huán),計算機人才需要基本系統(tǒng)思維能力,這是其核心競爭力之一。我們需要以課程改革為抓手,通過完善課程體系、改變教學方式,實現(xiàn)對計算機專業(yè)人才的系統(tǒng)思維能力的培養(yǎng)。
在下一階段,我們將進一步細化培養(yǎng)各環(huán)節(jié),整合各方面優(yōu)勢資源,更好地實現(xiàn)對計算機系統(tǒng)思維能力的培養(yǎng),實現(xiàn)對“復雜工程問題”的系統(tǒng)解決。