戴宏明,戴宏亮
(1.廣東科貿職業(yè)學院 信息與自動化學院,廣東 廣州 510430;2.廣州大學 經(jīng)濟與統(tǒng)計學院,廣東 廣州 510006)
目前,隨著國務院《促進大數(shù)據(jù)發(fā)展行動計劃》《新一代人工智能發(fā)展規(guī)劃》的發(fā)布,大數(shù)據(jù)、人工智能逐步上升為國家戰(zhàn)略,國內大數(shù)據(jù)產(chǎn)業(yè)與人工智能產(chǎn)業(yè)開始蓬勃發(fā)展。大數(shù)據(jù)分析、大數(shù)據(jù)系統(tǒng)開發(fā)、人工智能都以軟件技術為支撐。因此,軟件工程也必須與大數(shù)據(jù)、人工智能的快速發(fā)展同步,但國內高校的軟件工程專業(yè)人才培養(yǎng)方案還沒有與大數(shù)據(jù)、人工智能的發(fā)展做到有效對接[1]。
2017 年2 月以來,教育部積極推進新工科建設,先后形成了“復旦共識”“天大行動”和“北京指南”,并發(fā)布了《關于開展新工科研究與實踐的通知》《關于推進新工科研究與實踐項目的通知》,全力探索形成領跑全球工程教育的中國模式、中國經(jīng)驗,助力高等教育強國建設[2]。新工科建設是應對新經(jīng)濟的挑戰(zhàn),從服務國家戰(zhàn)略、滿足產(chǎn)業(yè)需求和面向未來發(fā)展的高度,提出的一項持續(xù)深化工程教育改革的重大行動計劃,其專業(yè)建設注重學科的交叉性、綜合性和實用性[3-4],但傳統(tǒng)的軟件工程教育偏重于理論教育,實踐教學環(huán)節(jié)比較薄弱。據(jù)調查,傳統(tǒng)教育模式培養(yǎng)出來的學生,即使是比較優(yōu)秀的畢業(yè)生,在走向社會之后,至少要花1 年左右甚至更多的時間才能逐步建立相應的工程能力,因此,軟件工程專業(yè)建設的改革勢在必行[5]。
傳統(tǒng)的軟件人才培養(yǎng)模式已經(jīng)不能滿足大數(shù)據(jù)產(chǎn)業(yè)和人工智能產(chǎn)業(yè)的需求,技術創(chuàng)新和新興產(chǎn)業(yè)的發(fā)展都需要大量的創(chuàng)新人才和卓越工程技術人才為支撐。國家推行的新工科戰(zhàn)略,一方面需要發(fā)展大批新興工科專業(yè),另一方面也需要對傳統(tǒng)的工科專業(yè)進行改革創(chuàng)新,探索符合工程規(guī)律和時代特征的嶄新培養(yǎng)模式。新工科建設引發(fā)的工程教育模式創(chuàng)新亟須設計出包括教育理念、課程體系、質量保障體系等整套的人才培養(yǎng)方案[6]。
CDIO 教育模式是由MIT、瑞典皇家工學院等4 所大學經(jīng)過多年的探索、研究和實踐,于2004 年創(chuàng)立的。這個教育模式是以真實產(chǎn)品、過程和系統(tǒng)的構思、設計、實施、運行全生命周期為背景,以CDIO 教學大綱和標準為基礎,讓學生以主動的、實踐的、課程之間具有有機聯(lián)系的方式學習和提高工程能力,包括個人的科學和技術知識、終身學習能力、交流和團隊工作能力以及在社會實際環(huán)境下建造產(chǎn)品、過程和系統(tǒng)的能力[7-9]。
運用CDIO 教育模式對現(xiàn)有的軟件工程人才應用型培養(yǎng)方案進行重新設計,可以更好地對接大數(shù)據(jù)和人工智能產(chǎn)業(yè)的需求,同時更好地對接教育部提出的新工科建設戰(zhàn)略,更扎實地培養(yǎng)軟件工程技術人才[10-12]。
培養(yǎng)方案設計遵循“12345”原則:“1”表示1 個教育理念——遵循CDIO 工程教育理 念;“2”表 示2 條發(fā)展主線——軟件工程實踐教育主線及軟件設計能力培養(yǎng)主線;“3”表示3 個技術平臺——Java 平臺、移動應用平臺及大數(shù)據(jù)平臺;“4”表示4 個專業(yè)方向——軟件技術方向、移動互聯(lián)網(wǎng)技術方向、大數(shù)據(jù)技術方向及智能軟件開發(fā)方向;“5”表示5 種學習方法——基于問題學習、基于項目學習、基于案例學習、基于做中學及基于經(jīng)驗學習。
在設計課程體系時,要將CDIO 大綱框架與軟件工程專業(yè)相結合,將CDIO大綱要求的知識、能力及素質轉換為軟件工程專業(yè)相應的知識、能力及素質,同時映射到具體的課程中,并且將課程按照構思、設計、實現(xiàn)及運行的步驟排列。與一般工程專業(yè)相比較,軟件工程理論與實踐是緊密結合的關系,實踐以理論為基礎,實踐中又蘊含著理論;理論需要實踐驗證,理論在實踐的基礎上不斷發(fā)展。對于初學者而言,軟件工程的這個特點導致某些環(huán)節(jié)的學習難度偏大、學習周期較長(如構思及設計環(huán)節(jié)),因此,教師在排列課程進程時,一方面要遵循循序漸進的規(guī)律,另一方面對于學習難度較大的環(huán)節(jié)要反復強化。除公共基礎課之外,軟件工程專業(yè)主干課程包括專業(yè)基礎、程序設計(基礎)、程序設計(高級)及軟件工程等4 個課程模塊(如圖1 所示)。
圖1 軟件工程專業(yè)主干課程體系魚骨圖
專業(yè)方向課程模塊設計應以產(chǎn)業(yè)需求為導向,以軟件工程技術為依托。軟件工程技術發(fā)展日新月異,新技術層出不窮,舊技術不斷更新?lián)Q代。為了與社會應用要求接軌,專業(yè)課程的選擇策略至關重要:首先,選擇的課程應是當前社會應用的主流技術,并且能夠代表未來的技術發(fā)展趨勢;其次,選擇的課程應側重在軟件工程原理、方法、過程及應用規(guī)律的介紹;再次,選擇的課程應與區(qū)域經(jīng)濟行業(yè)發(fā)展相結合,應用型高校主要是為區(qū)域經(jīng)濟發(fā)展服務;最后,選擇的課程應與本校師資結合,發(fā)揮本校師資優(yōu)勢。目前,大數(shù)據(jù)技術、人工智能技術及移動互聯(lián)網(wǎng)技術是信息化技術發(fā)展的重點,這3 項技術都是以軟件技術作為支撐。因此,軟件工程專業(yè)方向包括4 個課程模塊:軟件技術、大數(shù)據(jù)技術、移動互聯(lián)網(wǎng)技術及智能軟件開發(fā)(如圖2 所示)。每個學生應根據(jù)個人興趣及特長,選擇一個課程模塊進行重點學習。
圖2 軟件工程專業(yè)方向課程模塊魚骨圖
與一般工程相比較,軟件工程技術復雜、抽象,學習難度大、學習周期長。要理解軟件工程相關理論及原理,實踐是至關重要的環(huán)節(jié)。根據(jù)軟件工程技術的學習規(guī)律,要掌握軟件技術的使用,必須參與實際項目,在做中學,通過自主學習及經(jīng)驗學習,才能逐步融會貫通。軟件工程實踐教學環(huán)節(jié)通常包括實驗、實訓、實習及畢業(yè)設計等環(huán)節(jié)。CDIO 標準對實踐環(huán)節(jié)有明確的要求,必須以軟件構思、設計、實現(xiàn)及運行作為軟件工程教育的背景環(huán)境,以項目作為依托。軟件工程實踐教學環(huán)節(jié)包括3 個I 級項目、4 個II 級項目及多個III 級項目,如圖3 所示。
圖3 項目與實踐教學環(huán)節(jié)的對應關系
I 級項目是綜合項目,用于對軟件工程構思、設計、實現(xiàn)及運行環(huán)節(jié)的綜合訓練。第一個I 級項目是引導項目,在大一下學期完成,用于激發(fā)學生的學習興趣,增加學生對軟件的感性認識,明白與實際要求的差距,為下一階段的學習做好準備。第二個I 級項目是在大二下學期完成,用于強化對軟件工程構思、設計、實現(xiàn)及運行環(huán)節(jié)基本技術的學習。第三個I 級項目是畢業(yè)設計,由學生獨立完成,用于訓練學生獨立進行構思、設計、實現(xiàn)及運行的能力。II 級項目是與專業(yè)主干課程模塊相對應,用于強化對課程模塊相關技術的學習。III級項目與具體課程相對應,用于強化對相關課程及知識點的學習。項目設計應遵循以下原則:①項目來源于真實項目或者由真實項目改造而來,并且與當前社會應用最新技術接軌;②與項目結合的領域知識不能過于簡單,應具備一定的復雜度;③項目針對性要強,能夠強化對相關技術或者知識點的學習;④項目難易適中;⑤要與趣味性相結合。
CDIO 工程教育模式強調學生的主體作用,自主學習意識及能力對于學習工程技術很關鍵。同時,CDIO 工程教育模式也強調教師的作用,教師是學生進入工程技術殿堂的引路人,是學生經(jīng)驗學習的主體。CDIO 工程教育模式的這些要求與軟件工程的學習規(guī)律及應用規(guī)律都是一脈相承的。要做好軟件工程人才的培養(yǎng),做好幾個關鍵環(huán)節(jié)是至關重要的。
(1)激發(fā)學生的學習興趣是學好軟件工程專業(yè)的前提。軟件工程是理論與實踐緊密結合的學科,學習方法與一般文理學科不同,除了理論學習之外,大量的實踐也是必不可少的。學生在剛接觸軟件工程學科時,要認識到這些不同點,同時,教師要通過軟件工程導論課程和引導項目激發(fā)學生的學習興趣。
(2)入門是學好軟件工程專業(yè)的關鍵。軟件工程技術復雜、抽象,入門門檻高。傳統(tǒng)教學模式都是將C 語言作為入門程序設計技術,學生在學完C 語言之后,并不知道C 語言到底能夠解決什么問題,獲取的感性知識非常有限。選擇一門以組件技術為核心、可視化的編程技術,作為學生的入門程序設計技術是非常必要的,如Visual C#、Python 等。學生通過這種技術可以迅速地模仿開發(fā)一些應用功能,如學籍管理、圖書管理等功能。通過這種方式,一方面可以加強學生對軟件工程技術的感性認識,另外一方面可以幫助學生快速入門。
(3)創(chuàng)新思維的訓練及學習方法、應用方法的掌握是學好軟件工程專業(yè)的保障。軟件產(chǎn)品是知識產(chǎn)品,對創(chuàng)新能力有較高要求。數(shù)學是思維的體操,學習數(shù)學可以訓練創(chuàng)新思維能力。為保障學生的創(chuàng)新思維能力不斷得到訓練,在排列課程時可以做到數(shù)學4 年不斷線,即高等數(shù)學(上)→高等數(shù)學(下)→離散數(shù)學→線性代數(shù)→概率論與數(shù)理統(tǒng)計→Matlab 軟件與數(shù)學建模。程序設計是軟件工程的核心技術,而程序設計技術日新月異。為保障學生掌握程序設計技術的學習方法及應用方法,可以做到程序設計4 年不斷線,即高級程序設計(Visual C#)→面向對象編程技術(Java)→面向對象技術實訓→Java Web 編程技術→Web 開發(fā)實訓→軟件工程綜合實訓。
(4)教育教學一體化是學好軟件工程專業(yè)的核心。教育教學的一體化設計及管理能夠保障學生的學習、課外活動、社會實踐與知識、能力、素質的培養(yǎng)有機結合。
軟件工程應用型人才培養(yǎng)過程復雜,培養(yǎng)周期長,遇到的挑戰(zhàn)多,學生個體差異大,并且軟件技術發(fā)展日新月異,所以,要保證軟件工程專業(yè)學生培養(yǎng)的質量,更好地對接產(chǎn)業(yè)的需求,軟件工程專業(yè)建設必須持續(xù)改進。