王懷民??王濤??毛新軍
摘 要:無(wú)處不在的軟件已經(jīng)成為現(xiàn)代社會(huì)經(jīng)濟(jì)活動(dòng)的基礎(chǔ)設(shè)施,深刻重塑人們的思維模式。在現(xiàn)代高等教育體系中,軟件教育不僅僅是面向軟件專(zhuān)門(mén)人才的專(zhuān)業(yè)教育,還應(yīng)該成為覆蓋全體大學(xué)生的通識(shí)教育。軟件教育要專(zhuān)業(yè)教育與通識(shí)教育并重,領(lǐng)域?qū)W科知識(shí)與軟件學(xué)科知識(shí)結(jié)合,原理講授與動(dòng)手實(shí)踐融合,實(shí)現(xiàn)對(duì)軟件通識(shí)教育、專(zhuān)業(yè)教育、領(lǐng)域軟件教育以及實(shí)踐教育的升級(jí)。
關(guān)鍵詞:軟件教育;升級(jí);通識(shí)教育;專(zhuān)業(yè)教育;實(shí)踐教育;開(kāi)源教育
早期的大學(xué)軟件教育是計(jì)算機(jī)教育的組成部分,是以計(jì)算機(jī)為中心的軟件教育。隨著信息時(shí)代的到來(lái),人類(lèi)社會(huì)的數(shù)字化程度日益深化和普及,實(shí)現(xiàn)了網(wǎng)絡(luò)化,并正在向智能化的高級(jí)階段邁進(jìn)。當(dāng)前世界,計(jì)算無(wú)處不在,軟件定義一切。軟件已經(jīng)成為當(dāng)今信息化社會(huì)的基礎(chǔ)設(shè)施,它不僅是記載人類(lèi)文明的新載體,而且是運(yùn)行現(xiàn)代文明的新平臺(tái),軟件正在重塑我們的思維模式和生產(chǎn)生活方式。面對(duì)新時(shí)代新需求,中國(guó)比任何時(shí)候都需要更加重視軟件教育,軟件教育亟須全面升級(jí)和變革[1-3]。本文結(jié)合我國(guó)當(dāng)前大學(xué)軟件教育實(shí)踐,討論為什么需要升級(jí)大學(xué)軟件教育和如何升級(jí)大學(xué)軟件教育。
一、為什么要升級(jí)大學(xué)軟件教育
1.軟件自身發(fā)展變化要求升級(jí)大學(xué)軟件教育
軟件學(xué)科是一個(gè)年輕的學(xué)科。從全球視角看,大學(xué)軟件教育大約起步于20世紀(jì)50年代,直到20世紀(jì)80年代初才逐步形成以計(jì)算機(jī)為中心的軟件知識(shí)體系。大學(xué)軟件教育以軟件開(kāi)發(fā)專(zhuān)業(yè)人才為教育對(duì)象,以邏輯思維訓(xùn)練為核心。20世紀(jì)90年代,伴隨著個(gè)人計(jì)算機(jī)和互聯(lián)網(wǎng)的普及,大學(xué)軟件教育及其知識(shí)體系雖然發(fā)生了數(shù)輪迭代升級(jí),但仍然沒(méi)有改變以計(jì)算機(jī)為中心的主流范式。例如,網(wǎng)絡(luò)協(xié)議作為計(jì)算機(jī)上一種新的I/O協(xié)議,網(wǎng)絡(luò)應(yīng)用作為計(jì)算機(jī)上一種新的應(yīng)用方式。進(jìn)入21世紀(jì),伴隨著互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的發(fā)展和普及,軟件成為云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、智能化(俗稱(chēng)“云大物智”)時(shí)代的靈魂載體,大學(xué)軟件教育的對(duì)象、知識(shí)體系和模式都需要做出改變和升級(jí)。
第一,大學(xué)軟件教育不應(yīng)僅僅是面向軟件專(zhuān)門(mén)人才的專(zhuān)業(yè)教育,還應(yīng)該成為覆蓋全體大學(xué)生的通識(shí)教育。軟件技術(shù)已經(jīng)發(fā)展成為具有廣泛滲透性的基礎(chǔ)性技術(shù)和技能,軟件定義一切將帶來(lái)軟件定義的世界,無(wú)處不在的軟件不僅是作為社會(huì)經(jīng)濟(jì)活動(dòng)的基礎(chǔ)設(shè)施,還將成為人們解決問(wèn)題的基本手段。面向未來(lái),每一個(gè)接受高等教育的成年人不僅應(yīng)該是現(xiàn)代信息化社會(huì)的直接受益者,更應(yīng)該是現(xiàn)代軟件文明的直接創(chuàng)造者,軟件技能不再僅僅是大學(xué)軟件專(zhuān)業(yè)人才的專(zhuān)業(yè)能力,還將成為所有大學(xué)生必備的基本生活和工作技能。
第二,軟件教育的專(zhuān)業(yè)知識(shí)體系升級(jí)不應(yīng)僅僅局限在傳統(tǒng)的計(jì)算機(jī)視野下,而應(yīng)該向網(wǎng)絡(luò)空間拓展。軟件成為人類(lèi)社會(huì)的基礎(chǔ)設(shè)施是社會(huì)信息化進(jìn)程不斷深化的必然結(jié)果,其技術(shù)基礎(chǔ)是“計(jì)算的泛在化”和“軟件定義一切”。網(wǎng)絡(luò)化計(jì)算平臺(tái)連接無(wú)處不在的各類(lèi)智能化設(shè)備和可傳感物體,深入人類(lèi)社會(huì)生活的方方面面,形成了“人—機(jī)—物”三元融合萬(wàn)物智能互聯(lián)的態(tài)勢(shì)?;谟?jì)算機(jī)的計(jì)算演變成基于網(wǎng)絡(luò)的計(jì)算,軟件基于網(wǎng)絡(luò)開(kāi)發(fā)、通過(guò)網(wǎng)絡(luò)提供服務(wù)已經(jīng)成為常態(tài),傳統(tǒng)計(jì)算理論(如算法理論)和軟件開(kāi)發(fā)模式(如逐步求精方法)不足以回答新的軟件問(wèn)題。例如,如何刻畫(huà)基于云計(jì)算的軟件服務(wù)的可信性和持續(xù)演化問(wèn)題。軟件知識(shí)體系必須正視軟件作為基礎(chǔ)設(shè)施的新挑戰(zhàn),特別是方法論上的挑戰(zhàn)。
第三,大學(xué)軟件教育方式不能僅僅局限于課堂的專(zhuān)業(yè)性知識(shí)傳授,必須適應(yīng)豐富多彩的軟件實(shí)踐生態(tài)發(fā)展要求。由于軟件的邏輯特征,早期的軟件教育關(guān)注于邏輯思維訓(xùn)練,形成了用大腦“運(yùn)行軟件”的數(shù)學(xué)演算取向,忽略了在計(jì)算機(jī)上“調(diào)試軟件”的實(shí)踐。在當(dāng)今信息化時(shí)代,軟件越來(lái)越復(fù)雜,僅僅開(kāi)源空間的開(kāi)源項(xiàng)目倉(cāng)庫(kù)數(shù)量就超過(guò)3億個(gè),任何程序員不可能讀完每一行代碼,更不可能用大腦“跑明白”復(fù)雜軟件系統(tǒng)。軟件教育不僅需要依靠共享協(xié)作的開(kāi)源生態(tài)環(huán)境,更應(yīng)該是一個(gè)“入世”的教育,形成與軟件產(chǎn)業(yè)、軟件研發(fā)、軟件用戶(hù)互為依賴(lài)、協(xié)同發(fā)展的共生體。
2.中國(guó)軟件發(fā)展要求升級(jí)中國(guó)大學(xué)軟件教育
自從我國(guó)開(kāi)展軟件教育以來(lái),歷經(jīng)幾代計(jì)算機(jī)科學(xué)家、教育家和企業(yè)家的不懈努力,我國(guó)軟件科研、教育、產(chǎn)業(yè)不斷發(fā)展壯大。20世紀(jì)80年代初,中國(guó)學(xué)位制度的建立和發(fā)展為我國(guó)大學(xué)軟件教育奠定了堅(jiān)實(shí)的學(xué)科基礎(chǔ),完成與國(guó)際先進(jìn)軟件知識(shí)體系對(duì)接。進(jìn)入21世紀(jì),為了滿足我國(guó)軟件產(chǎn)業(yè)發(fā)展對(duì)軟件產(chǎn)業(yè)人才的迫切需求,國(guó)家試辦示范性軟件學(xué)院,開(kāi)啟了面向軟件產(chǎn)業(yè)需求的大學(xué)軟件教育新探索。在當(dāng)前構(gòu)建新發(fā)展格局的時(shí)代背景下,升級(jí)中國(guó)大學(xué)軟件教育不僅有軟件技術(shù)發(fā)展變化的要求,還有中國(guó)軟件自身發(fā)展的特殊要求。
第一,必須加強(qiáng)服務(wù)于軟件產(chǎn)業(yè)發(fā)展的人才供給。過(guò)去20年間,我國(guó)軟件產(chǎn)業(yè)持續(xù)保持兩位數(shù)的快速增長(zhǎng)態(tài)勢(shì)。2021年我國(guó)軟件業(yè)累計(jì)完成軟件業(yè)務(wù)收入94 994億元,同比增長(zhǎng)17.7%,是2001年的131倍,軟件業(yè)利潤(rùn)總額11 875億元,同比增長(zhǎng)7.6%[1]。近20年來(lái),雖然我國(guó)高校軟件相關(guān)專(zhuān)業(yè)畢業(yè)生規(guī)模不斷擴(kuò)大,但相較于我國(guó)軟件產(chǎn)業(yè)持續(xù)多年的兩位數(shù)年增速,我國(guó)大學(xué)軟件類(lèi)人才供給年均增長(zhǎng)只有個(gè)位數(shù),人才供給增量較之需求存在巨大缺口。根據(jù)關(guān)鍵軟件人才需求預(yù)測(cè)研究報(bào)告,預(yù)計(jì)到2025年,我國(guó)軟件人才缺口將繼續(xù)加大,軟件人才緊缺問(wèn)題將嚴(yán)重制約軟件產(chǎn)業(yè)的高質(zhì)量發(fā)展。
第二,必須加強(qiáng)掌握軟件核心關(guān)鍵技術(shù)創(chuàng)新的高素質(zhì)人才供給。20世紀(jì)80年代,當(dāng)美國(guó)主導(dǎo)全球IT市場(chǎng)之后,我國(guó)也完全開(kāi)放了中國(guó)IT市場(chǎng)。我們培養(yǎng)的優(yōu)秀大學(xué)生或者留學(xué)美國(guó),成為美國(guó)IT核心技術(shù)創(chuàng)新的生力軍,或者進(jìn)入外企,成為美國(guó)產(chǎn)品進(jìn)入中國(guó)的代理者。相當(dāng)長(zhǎng)的一段時(shí)間,國(guó)內(nèi)失去了關(guān)鍵軟件的市場(chǎng)競(jìng)爭(zhēng)力,大學(xué)軟件教育更加熱衷追逐應(yīng)用熱點(diǎn),軟件人才的系統(tǒng)能力培養(yǎng)嚴(yán)重弱化,導(dǎo)致我國(guó)關(guān)鍵軟件人才奇缺。當(dāng)中國(guó)IT產(chǎn)業(yè)升級(jí)的時(shí)候,發(fā)現(xiàn)“缺芯少魂”,被“卡脖子”問(wèn)題日益突出。近年來(lái),盡管開(kāi)源軟件為我國(guó)學(xué)習(xí)關(guān)鍵軟件提供了新機(jī)會(huì)和新條件,但我們?nèi)蕴幱陂_(kāi)源軟件生態(tài)鏈的外圍,缺少主導(dǎo)性的關(guān)鍵軟件開(kāi)源項(xiàng)目和軟件核心關(guān)鍵技術(shù)創(chuàng)新人才群體。
二、如何升級(jí)大學(xué)軟件教育
無(wú)論是從軟件技術(shù)發(fā)展的時(shí)代特點(diǎn)出發(fā),還是從我國(guó)軟件產(chǎn)業(yè)發(fā)展和國(guó)家安全要求出發(fā),我國(guó)大學(xué)軟件教育都亟須升級(jí)。大學(xué)軟件教育涉及軟件通識(shí)教育、軟件專(zhuān)業(yè)教育、領(lǐng)域軟件教育等,結(jié)合我國(guó)當(dāng)前軟件教育現(xiàn)狀,中國(guó)大學(xué)軟件教育升級(jí)需要重點(diǎn)關(guān)注以下四個(gè)方面的問(wèn)題。
問(wèn)題一:如何升級(jí)大學(xué)軟件通識(shí)教育?
軟件有通識(shí)教育嗎?答案是肯定的。比如當(dāng)前中國(guó)大學(xué)普遍開(kāi)設(shè)的“大學(xué)計(jì)算機(jī)基礎(chǔ)”通識(shí)課,在相當(dāng)程度上就是軟件通識(shí)教育。在“軟件定義一切”的時(shí)代背景下,我們不是把所有大學(xué)專(zhuān)業(yè)變?yōu)橛?jì)算機(jī)類(lèi)專(zhuān)業(yè),而是通過(guò)升級(jí)軟件通識(shí)教育,使每一個(gè)大學(xué)生具備用軟件來(lái)解決未來(lái)就職領(lǐng)域數(shù)字化問(wèn)題的知識(shí)和技能。同時(shí)升級(jí)大學(xué)軟件通識(shí)教育也是解決我國(guó)軟件人才缺口的最有效途徑。
通過(guò)國(guó)防科技大學(xué)近年來(lái)的實(shí)踐,我們認(rèn)為升級(jí)大學(xué)軟件通識(shí)教育需要聚焦“兩種能力”,抓住“三個(gè)銜接”。首先要聚焦提升學(xué)生的計(jì)算思維認(rèn)知能力,幫助學(xué)生形成用算法抽象理解數(shù)字空間問(wèn)題求解,計(jì)算思維的訓(xùn)練必須以軟件為載體,且須通過(guò)編程能力培養(yǎng)加以落實(shí)。其次要聚焦提升學(xué)生的編程實(shí)踐能力,通過(guò)問(wèn)題案例和編程案例,依托各類(lèi)在線編程工具的靈活組合,支持課堂內(nèi)的實(shí)踐教學(xué),幫助學(xué)生形成自主學(xué)習(xí)編程工具解決現(xiàn)實(shí)問(wèn)題的知識(shí)、技能和信心。
“三個(gè)銜接”是指大學(xué)軟件通識(shí)教育要與中小學(xué)計(jì)算機(jī)基礎(chǔ)教育、大學(xué)計(jì)算機(jī)通識(shí)教育、其他專(zhuān)業(yè)教育相銜接。通過(guò)銜接過(guò)去、銜接當(dāng)下、銜接未來(lái),促進(jìn)軟件通識(shí)教育與各類(lèi)教育的融合和銜接,貫穿教育的各個(gè)階段,極大提升軟件通識(shí)教育的效率。
問(wèn)題二:如何升級(jí)軟件專(zhuān)業(yè)教育?
培養(yǎng)關(guān)鍵軟件核心技術(shù)的創(chuàng)新人才主要依靠升級(jí)軟件專(zhuān)業(yè),需要把握軟件技術(shù)發(fā)展的新機(jī)遇。傳統(tǒng)的軟件專(zhuān)業(yè)教育以計(jì)算機(jī)為中心。進(jìn)入互聯(lián)網(wǎng)時(shí)代,軟件系統(tǒng)往往基于網(wǎng)絡(luò)開(kāi)發(fā)、維護(hù)、運(yùn)行和演化,呈現(xiàn)出“構(gòu)造于網(wǎng)絡(luò)、運(yùn)行于網(wǎng)絡(luò)、服務(wù)于網(wǎng)絡(luò)”的網(wǎng)絡(luò)化特征,軟件形態(tài)也正在變?yōu)椤叭恕獧C(jī)—物”融合的基礎(chǔ)設(shè)施。軟件系統(tǒng)表現(xiàn)出的這些新特征、新變化,要求軟件專(zhuān)業(yè)教育主動(dòng)適應(yīng),做好升級(jí)。
一是要升級(jí)新的軟件觀。要培養(yǎng)學(xué)生新的軟件系統(tǒng)觀,關(guān)注“人—機(jī)—物”融合的復(fù)雜軟件系統(tǒng)論;要培養(yǎng)學(xué)生新的軟件形態(tài)觀,關(guān)注軟件系統(tǒng)持續(xù)成長(zhǎng)的特點(diǎn)和規(guī)律;要培養(yǎng)學(xué)生新的軟件價(jià)值觀,關(guān)注以人為中心的可信軟件價(jià)值標(biāo)準(zhǔn);要培養(yǎng)學(xué)生新的軟件生態(tài)觀,關(guān)注軟件生態(tài)系統(tǒng)的發(fā)展演變。
二是要升級(jí)以網(wǎng)絡(luò)為中心的軟件學(xué)科知識(shí)體系。從軟件運(yùn)行的角度看,需要將以計(jì)算機(jī)為平臺(tái)的軟件知識(shí)體系升級(jí)到以網(wǎng)絡(luò)為平臺(tái)的軟件知識(shí)體系;從軟件開(kāi)發(fā)的角度看,需要將計(jì)算機(jī)輔助的軟件工程知識(shí)體系升級(jí)為基于網(wǎng)絡(luò)的軟件開(kāi)發(fā)生態(tài)知識(shí)體系。
三是要升級(jí)軟件系統(tǒng)能力培養(yǎng)。系統(tǒng)能力是軟件專(zhuān)業(yè)人才的關(guān)鍵能力,系統(tǒng)能力培養(yǎng)標(biāo)準(zhǔn)同樣需要由計(jì)算機(jī)空間拓展到網(wǎng)絡(luò)空間,建立與軟件新形態(tài)相適應(yīng)的高層次研究型人才培養(yǎng)方法,強(qiáng)化解決以網(wǎng)絡(luò)為平臺(tái)的復(fù)雜系統(tǒng)問(wèn)題的能力,提升勇于開(kāi)拓新時(shí)代軟件學(xué)科“無(wú)人區(qū)”的探索能力。
問(wèn)題三:如何升級(jí)領(lǐng)域軟件教育?
領(lǐng)域軟件是領(lǐng)域知識(shí)軟件化,在經(jīng)濟(jì)社會(huì)發(fā)展和國(guó)家安全中的作用日益突出,學(xué)習(xí)、理解、開(kāi)發(fā)領(lǐng)域軟件,是軟件教育的重要目標(biāo)與內(nèi)容。傳統(tǒng)的領(lǐng)域軟件開(kāi)發(fā)是以程序本身為關(guān)注點(diǎn)的垂直領(lǐng)域軟件開(kāi)發(fā),如工業(yè)設(shè)計(jì)系統(tǒng)、氣象預(yù)報(bào)系統(tǒng)、地理信息系統(tǒng)、作戰(zhàn)指揮系統(tǒng)等。如何有效提升領(lǐng)域軟件開(kāi)發(fā)效率與軟件質(zhì)量,提高領(lǐng)域軟件可移植、易復(fù)用、能升級(jí)和平臺(tái)化水平,是當(dāng)前領(lǐng)域軟件教育面臨的主要問(wèn)題。
首先要升級(jí)或強(qiáng)化領(lǐng)域軟件工程課程體系。要聚焦工業(yè)設(shè)計(jì)、電子信息、科學(xué)計(jì)算等領(lǐng)域的特點(diǎn)和信息化轉(zhuǎn)型發(fā)展需求,構(gòu)建面向領(lǐng)域的軟件工程課程體系,在相關(guān)專(zhuān)業(yè)領(lǐng)域開(kāi)設(shè)軟件工程、軟件體系結(jié)構(gòu)、軟件開(kāi)發(fā)方法學(xué)等相關(guān)課程。其次要加強(qiáng)各專(zhuān)業(yè)領(lǐng)域?qū)W生兩種能力的培養(yǎng):一是升級(jí)領(lǐng)域需求工程能力,即提升學(xué)生的領(lǐng)域需求分析能力以及領(lǐng)域軟件的規(guī)劃和構(gòu)思能力;二是升級(jí)領(lǐng)域軟件工程能力,即提升學(xué)生跨學(xué)科協(xié)作的專(zhuān)業(yè)軟件研發(fā)能力和專(zhuān)業(yè)軟件創(chuàng)新能力。
以MATLAB的發(fā)展為例,在1965年到1970年,J. H. Wilkinson教授及18個(gè)同事發(fā)表了一系列數(shù)學(xué)計(jì)算方法及其算法的論文,為MATLAB打下了數(shù)學(xué)基礎(chǔ)。之后他們相繼發(fā)布了一組工具軟件,如1971年發(fā)布的基于Algol 60開(kāi)發(fā)的相關(guān)矩陣算法和基于Fortran開(kāi)發(fā)的EISPACK,1975年發(fā)布的基于Fortran開(kāi)發(fā)的LINPACK。在此基礎(chǔ)上,1980年MATLAB正式發(fā)布并開(kāi)始用于新墨西哥大學(xué)、斯坦福大學(xué)的相關(guān)教學(xué)。1992年,Simulink發(fā)布并用于仿真和模型設(shè)計(jì),MATLAB作為一個(gè)教學(xué)和工程計(jì)算平臺(tái)開(kāi)始發(fā)揮越來(lái)越重要的作用。2010年以后,一大批MATLAB相關(guān)應(yīng)用程序發(fā)布,覆蓋了生物、金融、控制系統(tǒng)、數(shù)據(jù)庫(kù)、圖像處理和計(jì)算機(jī)視覺(jué)、數(shù)學(xué)、并行計(jì)算、信號(hào)處理和無(wú)線通信、測(cè)試和測(cè)量等相關(guān)領(lǐng)域,提供了一大批各個(gè)領(lǐng)域的工具箱,形成了豐富的計(jì)算與仿真工具生態(tài)系統(tǒng)。今天的MATLAB已然發(fā)展為一個(gè)覆蓋多領(lǐng)域的計(jì)算工具生態(tài)系統(tǒng)。
問(wèn)題四:如何升級(jí)軟件實(shí)踐教育?
軟件教育既是邏輯性很強(qiáng)的知識(shí)傳授,更是工程性很強(qiáng)的實(shí)踐教育。軟件實(shí)踐教育質(zhì)量的好壞,直接關(guān)系到軟件通識(shí)教育、軟件專(zhuān)業(yè)教育和領(lǐng)域軟件教育水平的高低。長(zhǎng)期以來(lái),軟件實(shí)踐教育始終是制約軟件教育發(fā)展的薄弱環(huán)節(jié)。軟件實(shí)踐教育在實(shí)踐案例構(gòu)造、實(shí)踐資源共享、實(shí)踐效果評(píng)估等方面面臨著嚴(yán)峻的挑戰(zhàn)。開(kāi)源軟件的成功實(shí)踐為我們提供了升級(jí)軟件實(shí)踐教育、破解長(zhǎng)期困擾軟件實(shí)踐教學(xué)難題的啟示和途徑。
升級(jí)軟件實(shí)踐教育,首先要開(kāi)展教育模式創(chuàng)新,有效利用大規(guī)模開(kāi)放在線實(shí)踐教學(xué)模式;其次要做好平臺(tái)升級(jí),全力打造開(kāi)放、共享的軟件教育支撐平臺(tái)。具體而言,一是要升級(jí)軟件教學(xué)與軟件實(shí)踐的融合,基于互聯(lián)網(wǎng)實(shí)踐教學(xué)平臺(tái),依托線上線下課堂教學(xué)和線上線下實(shí)踐教學(xué),采用群體化實(shí)踐教學(xué)模式,從而形成群體化實(shí)踐教學(xué)案例。二是要升級(jí)學(xué)習(xí)工具與開(kāi)發(fā)工具的融合,依托項(xiàng)目代碼庫(kù)、核心開(kāi)發(fā)團(tuán)隊(duì),通過(guò)快速體驗(yàn)、創(chuàng)意分享、協(xié)同編程、持續(xù)評(píng)估等,實(shí)現(xiàn)開(kāi)發(fā)測(cè)試與部署維護(hù)的相互促進(jìn),從而讓學(xué)生能夠讀好的代碼,學(xué)好的技術(shù),做好的項(xiàng)目,真正參與群體化的創(chuàng)新實(shí)踐。三是升級(jí)軟件創(chuàng)作與軟件生產(chǎn)的融合。軟件創(chuàng)作是由創(chuàng)意驅(qū)動(dòng)的軟件實(shí)踐活動(dòng),鼓勵(lì)開(kāi)放共享,而軟件生產(chǎn)則是目標(biāo)驅(qū)動(dòng)的軟件實(shí)踐活動(dòng),關(guān)注質(zhì)量和流程控制。
在軟件實(shí)踐教育升級(jí)中,要遵循以“大眾化協(xié)同、開(kāi)放式共享、持續(xù)性評(píng)估”為核心的群體化學(xué)習(xí)與創(chuàng)新機(jī)理[4]。作為未來(lái)的軟件開(kāi)發(fā)人員,要學(xué)會(huì)面向大規(guī)模開(kāi)放群體,通過(guò)大眾化協(xié)同將教師答疑輔導(dǎo)為主的課堂實(shí)驗(yàn)?zāi)J剑D(zhuǎn)變?yōu)槊嫦蜷_(kāi)放社區(qū)、面向客戶(hù)需求和任務(wù)、以互助討論為主的協(xié)作學(xué)習(xí)模式。通過(guò)引入開(kāi)放式資源共享模式,將以教師為單一資源來(lái)源的封閉環(huán)境資源分享模式,轉(zhuǎn)變?yōu)榕c程序員、開(kāi)發(fā)者甚至極客一起解決軟件問(wèn)題的基于互聯(lián)網(wǎng)的大范圍資源共享模式。通過(guò)引入持續(xù)性評(píng)估機(jī)制,實(shí)現(xiàn)對(duì)實(shí)踐教學(xué)的有效評(píng)估與反饋,實(shí)現(xiàn)對(duì)學(xué)習(xí)者參與性與創(chuàng)新性的有效培養(yǎng)。
三、升級(jí)軟件教育的探索與實(shí)踐
近年來(lái),國(guó)防科技大學(xué)以開(kāi)源創(chuàng)新為抓手,以軟件開(kāi)發(fā)群體化方法的大眾化協(xié)同、開(kāi)放式共享和持續(xù)性評(píng)估思想為指導(dǎo),積極研發(fā)支持軟件人才培養(yǎng)的支撐軟件和大規(guī)模開(kāi)放在線課程(Massive Open Online Course,MOOC),與開(kāi)源軟件資源以及開(kāi)源軟件開(kāi)發(fā)部署云平臺(tái)對(duì)接,構(gòu)建開(kāi)放共享的軟件開(kāi)發(fā)、部署、維護(hù)、升級(jí)和演化的實(shí)訓(xùn)平臺(tái),推廣大規(guī)模開(kāi)放在線實(shí)踐(Massive Open Online Practice,MOOP)教學(xué),推進(jìn)基于開(kāi)源和面向開(kāi)源的軟件教育升級(jí),并取得了很好的成效。
“大學(xué)計(jì)算機(jī)基礎(chǔ)”在相當(dāng)程度上就是軟件通識(shí)教育,國(guó)防科技大學(xué)開(kāi)設(shè)的“大學(xué)計(jì)算”課程以計(jì)算思維和編程能力培養(yǎng)為核心,采用以復(fù)雜工程問(wèn)題實(shí)訓(xùn)為主線的能力培養(yǎng)途徑編排教學(xué)內(nèi)容和施教。該課程依托EduCoder.net實(shí)訓(xùn)平臺(tái),精心選取了數(shù)學(xué)、物理、經(jīng)濟(jì)、地理等領(lǐng)域的案例和實(shí)踐,以公式編程、圓周率π的計(jì)算、泰勒級(jí)數(shù)計(jì)算及誤差分析、函數(shù)可視化、國(guó)家統(tǒng)計(jì)局?jǐn)?shù)據(jù)分析、在線實(shí)時(shí)地震動(dòng)畫(huà)模擬、線性代數(shù)計(jì)算、數(shù)獨(dú)游戲、密碼破解與電子取證、SAR圖像處理10個(gè)復(fù)雜工程問(wèn)題為牽引,分成37個(gè)內(nèi)容,植入130余個(gè)知識(shí)點(diǎn),將課程知識(shí)和技術(shù)植入復(fù)雜工程問(wèn)題計(jì)算求解過(guò)程之中,通過(guò)翻轉(zhuǎn)知識(shí)學(xué)習(xí)和實(shí)踐實(shí)訓(xùn)的傳統(tǒng)方式,突出了能力培養(yǎng)的中心地位。該課程在國(guó)防科技大學(xué)作為計(jì)算機(jī)專(zhuān)業(yè)基礎(chǔ)課面向全校各專(zhuān)業(yè)一年級(jí)本科生開(kāi)課,有效形成了線下課堂與線上課程相結(jié)合、理論學(xué)習(xí)與實(shí)戰(zhàn)實(shí)訓(xùn)相結(jié)合的混合式教學(xué)模式,充分發(fā)揮了線上平臺(tái)伴隨式實(shí)戰(zhàn)實(shí)訓(xùn)、持續(xù)實(shí)時(shí)評(píng)測(cè)、全過(guò)程跟蹤評(píng)估的優(yōu)勢(shì),學(xué)生學(xué)習(xí)興趣、問(wèn)題求解能力以及編程實(shí)踐能力得到極大的提升,獲得了非常好的教學(xué)效果。
“軟件工程”是軟件專(zhuān)業(yè)教育的核心課程,國(guó)防科技大學(xué)依托Trustie/GitLink等平臺(tái)對(duì)軟件工程系列課程進(jìn)行了系統(tǒng)性和深層次的改
革[5-6]。(1)在專(zhuān)業(yè)知識(shí)體系方面,引入以開(kāi)源軟件技術(shù)、群體化開(kāi)發(fā)方法、分布式協(xié)同開(kāi)發(fā)等基于網(wǎng)絡(luò)的軟件工程技術(shù),全面升級(jí)以網(wǎng)絡(luò)為中心的軟件學(xué)科知識(shí)體系;以“人—機(jī)—物”融合的軟件系統(tǒng)為案例來(lái)介紹軟件開(kāi)發(fā)的挑戰(zhàn)和問(wèn)題以及相關(guān)的方法和技術(shù),以此來(lái)幫助學(xué)生深入理解軟件新形態(tài),建立新的軟件觀。(2)在實(shí)踐教學(xué)方面,創(chuàng)新課程實(shí)踐教學(xué)模式。一方面要求學(xué)生閱讀、分析、標(biāo)注和維護(hù)高質(zhì)量、上規(guī)模的開(kāi)源軟件,以此來(lái)學(xué)習(xí)開(kāi)源社區(qū)中高水平軟件開(kāi)發(fā)者的軟件開(kāi)發(fā)經(jīng)驗(yàn)、技能和工程素質(zhì),從而實(shí)現(xiàn)學(xué)生的快速學(xué)習(xí)和高效成長(zhǎng);另一方面,要求學(xué)生開(kāi)發(fā)出有創(chuàng)意、上規(guī)模、高質(zhì)量的“人—機(jī)—物”融合軟件系統(tǒng),并借助開(kāi)源軟件和群智知識(shí)來(lái)完成開(kāi)發(fā)任務(wù),從而培養(yǎng)學(xué)生的系統(tǒng)能力、解決復(fù)雜工程問(wèn)題的能力、創(chuàng)新實(shí)踐能力。(3)在教育理念和學(xué)習(xí)方法方面,打破傳統(tǒng)教育教學(xué)嚴(yán)重依靠教師、教材和教室的局限性,借助開(kāi)源軟件所蘊(yùn)含的群體智能思想和理念,提出要將不同學(xué)校、不同班級(jí)、不同年級(jí)的學(xué)生組織在一起,圍繞課程知識(shí)學(xué)習(xí)和實(shí)踐教學(xué),開(kāi)展群體化學(xué)習(xí),以討論和解決問(wèn)題、交流學(xué)習(xí)和實(shí)踐經(jīng)驗(yàn)、分享教學(xué)和實(shí)踐資源,從而形成基于群體大眾的新穎學(xué)習(xí)方式,極大提升了學(xué)生的學(xué)習(xí)效率和解決問(wèn)題的能力,并引導(dǎo)學(xué)生創(chuàng)作出空巢老人看護(hù)系統(tǒng)等優(yōu)秀的開(kāi)源軟件項(xiàng)目。
此外,國(guó)防科技大學(xué)聯(lián)合中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)以及相關(guān)單位形成了從開(kāi)源代碼閱讀評(píng)注平臺(tái)Codepedia、開(kāi)源技能學(xué)習(xí)實(shí)踐平臺(tái)EduCoder.net到開(kāi)源項(xiàng)目創(chuàng)新開(kāi)發(fā)平臺(tái)GitLink等的系列實(shí)踐支撐平臺(tái)。并以平臺(tái)為依托支撐本科生和研究生的計(jì)算機(jī)教育,幫助學(xué)生從讀好的開(kāi)源代碼開(kāi)始,不斷學(xué)好的開(kāi)源技術(shù)實(shí)現(xiàn)實(shí)踐能力的快速提升。在此基礎(chǔ)上參與好的開(kāi)源項(xiàng)目開(kāi)源,甚至進(jìn)一步做出屬于自己的優(yōu)秀開(kāi)源項(xiàng)目。相關(guān)平臺(tái)已支持4屆中國(guó)軟件開(kāi)源創(chuàng)新大賽,并在在線實(shí)踐教學(xué)、開(kāi)源項(xiàng)目創(chuàng)新中得到廣泛應(yīng)用。
參考文獻(xiàn):
[1]張堯?qū)W. 軟件與軟件的教育[J]. 中國(guó)大學(xué)教學(xué),2020(6):3.
[2]陳志剛,石金晶,奎曉燕.“雙一流”建設(shè)背景下軟件工程國(guó)家級(jí)一流本科專(zhuān)業(yè)建設(shè)思路探討[J].中國(guó)大學(xué)教學(xué),2022(6):27-33.
[3]洪玫,嚴(yán)斌宇,余靜.面向?qū)W生能力培養(yǎng)的課程教學(xué)設(shè)計(jì)——以軟件工程專(zhuān)業(yè)為例[J].中國(guó)大學(xué)教學(xué),2022(7):39-44.
[4] Wang H. Harnessing the crowd wisdom for software trustworthiness[J]. ACM Sigsoft Software Engineering Notes. 2018, 43(1): 1-6.
[5]毛新軍,尹剛,王懷民.軟件工程系列課程實(shí)踐教學(xué)平臺(tái)Trustie[J]. 計(jì)算機(jī)教育,2014(23):53-56.
[6]毛新軍,尹良澤,尹剛,等. 基于群體化方法的軟件工程課程實(shí)踐教學(xué)[J]. 計(jì)算機(jī)教育,2018(7):14-17.
王懷民,國(guó)防科技大學(xué)教授,中國(guó)科學(xué)院院士。