賈曉強, 劉軍
(渭南師范學院 計算機學院, 陜西 渭南 714099)
ACM/IEEE最新公布的計算機專業教學調整方案[1]的重點是進一步強調系統知識和系統能力的培養,目的是讓學生具備計算機系統認知、分析、設計和實現能力,CMU、MIT等學校系統能力培養基礎課程比重較大,系統能力培養貫穿本科幾乎所有學期。
根據OBE(Outcomes-based Education)的理念和工程教育認證[2]的標準,新工科形勢下,要求計算機專業的學生具有計算科學的創新思維能力、復雜計算系統的設計能力、跨多學科知識的交叉能力和領域快速變化的適應能力。在四種能力中,系統能力占到75%。包括系統認知、系統設計、系統開發和系統應用能力。而計算機專業是新工科中改革的重頭戲。計算科學的創新思維能力、復雜計算系統的設計能力、跨多學科知識的交叉能力和領域快速變化的適應能力都是以系統能力為基礎的,所以在新工科形勢下,系統能力的培養對計算機類專業起著決定性的作用。
(1) 課程體系[3-7]層面存在的問題
課程體系中,雖然開設有計算導論課程,但是課程缺乏軟硬件之間貫通的銜接,從系統角度來看,各個章節內容相互獨立,缺乏系統性。
重知識,輕能力。課程知識之間關聯性關注不夠,導致軟、硬分家;課程與課程分家;課程與實驗分家,有很多知識斷層,缺少對計算機系統的整體認識。
對系統設計和應用能力培養的整體考慮比較欠缺,實踐內容相互獨立、難度小,解決問題規模小,缺乏挑戰性。
學生幾乎沒有時間自我學習。(以軟件工程為例,4年修171個學分,2 200小時左右的課堂時間;網絡工程專業,4年修175個學分,2 652小時左右的課堂時間;計算機科學與技術專業,4年修181個學分,2 512小時左右的課堂時間)
有些系統類的課程由于受課時的制約或者其他因素的影響,如有些學校的計算機系統結構,在實際培養計劃中用別的課代替或置換。
注重單機系統訓練,對于新興的并行與分布式系統關注較少。
缺少可計算理論等專業數學或理論計算機科學類課程,專業數學僅有離散數學。
缺乏軟硬件貫通的實踐方案和實驗平臺,學生缺乏這方面的訓練。
(2) 現有教學方式和評價體系存在的問題
教師教學理念與教學方式相比國內一流大學存在一些差距,學生評價體系中對系統能力培養關注度不夠,統一的教學目標和考核標準,無法個性化培養和因材施教。
雖然有些課程采用線上線下混合式教學,但學完課程后,沒有要求學生對課程內容提煉總結,沒有明確地將考核的學分與課程的某些內容或章節掛鉤,導致學生對線上學習的主動性不是很強甚至不學,各門課程獨立規劃,獨立教學,造成知識體系中知識點冗余和銜接關系脫節。
設計性、綜合性的教學實踐較少,系統性實驗手段缺乏,只在課程設計和畢業設計中有綜合性的要求,學生實踐動手能力較差,幾乎沒有實現過一個OS、一個CPU、一個編譯器。
新工科形勢下,進行系統能力培養[8-9]是因為我國計算機產業的發展,對計算機專業人才的需求發生了變化,高等學校的計算機專業對人才的定位有了提升,學生個人的成長空間也有了大幅擴展。渭南師范學院的培養方案從以下幾個方面展開。
以學生為中心從教學觀念、課程體系和改革教學方法等幾個方面落實系統能力培養要求,如圖1所示。

圖1 以學生為中心的系統能力培養模式解讀(出自哈爾濱工業大學劉宏偉老師)
有些實驗條件達不到系統能力要求的,建議實行校企合作或購買租賃實驗平臺的方式。
(1) 課程體系中增加一門計算機系統基礎課,學校可以根據實際需要選購教材,比如采用南京大學袁春風教授編寫的“計算機系統基礎”,讓學生從單元到整體有一個完整的概念。
(2) 對于程序設計課程、數據結構在原有的基礎上可以采用線上線下混合式教學,對于計算機系統基礎、計算機組成和數字邏輯需要對實驗內容和實驗手段進行修改、完善,以便于讓學生更容易地理解像操作系統、編譯原理等后續的課程,對于操作系統、編譯原理的課程實驗要以計算機硬件系統為基礎(渭南師范學院采用北京航空航天大學開發的可裁剪的、可擴展的實驗平臺)。
(3) 講授數字邏輯、組成原理、操作系統和編譯原理的老師要明確哪些知識點在哪門課程中講比較好,要講深、講透。如“中斷”的概念建議放在組成原理中講解;存儲器部分放在操作系統講解;CPU線路圖放在數字邏輯中講解,避免重復講授,注重課程之間的關聯。
(4) 建立軟硬件貫通的實驗平臺,實驗中通過橫向、縱向貫穿,強化學生的系統能力培養。
(1) 在以前的基礎上增加暑期小學期和大學分工程強化訓練。一是圍繞應用型人才培養目標,加大設計性實驗課程比重,引入創業創新教育課程,構建“基礎實驗基地、專業實驗訓練、創新訓練培養、學科競賽加強、實習實踐體驗、畢業設計提升”的實踐教學體系,提升學生的創新創業和社會適應能力。二是充分考慮實踐教學[10-11]與理論教學的比例關系,加大實驗實踐環節的比重(比如物聯網工程從原來的“3+1”課時變為“2+2”課時),從時間上保證實踐教學在人才培養過程中的重要作用。三是以社會需求為導向,設計綜合性實驗的比重,強化實習實踐教學環節和項目實訓,培養主線,如圖2所示。

圖2 渭南師范學院系統能力培養主線
(2) 將系統能力培養的課程分成3 個層次講授。計算機系統基礎課程培養計算機基礎系統能力,通過重組內容的核心課程培養設計和開發計算機領域的專門系統培養計算機領域系統能力;通過不同平臺的應用課程培養計算機應用系統能力,不具備開課條件的共享兄弟院校的MOOC課程資源或租賃實驗平臺[12],結合工程認證,構建系統能力培養課程群,做好課程之間的銜接。
第一層次,通過學習 C語言程序設計、數字邏輯電路和計算機系統基礎,明確符號化思維、程序思維、算法思維和機器思維,在不涉及具體機器的情況下,程序是如何被執行的,讓學生學會“理解機器工作過程”。
第二層次,從理解程序執行的角度學習計算機組成原理、計算機操作系統(Windows+Linux)、編譯技術/原理、計算機系統結構、匯編語言和完整的軟硬件系統的協同訓練,明白高級語言的要素如何被映射成匯編語言在機器上執行,理解機器結構。
第三層次,通過學習嵌入式計算系統、網絡系統和數據庫技術,理解典型計算系統的分析與設計,從編程視角和系統視角打通軟硬件之間的壁壘,如圖3所示。

圖3 系統能力培養課程雙向分層
在3個層次的每一層次,都有能力迭代要求。一年級經過計算機系統導論和高級語言的學習,明確符號化思維、程序思維、算法思維和機器思維,理解程序如何被機器執行;二年級通過完整的軟硬件系統的協同訓練,從理解程序執行的角度,學習計算機組成、操作系統和匯編語言,達到閱讀機器,理解機器結構;三年級在各門專業課中融入典型的計算系統的分析與設計,嘗試實現可執行程序的機器;四年級通過專業實習和項目訓練強化系統實現。
從建立系統觀—形成系統開發能力—系統設計能力,培養學生從形成計算思維—程序理解—系統理解—達到靈活應用的能力要求[13-14]。
從軟件開發和系統兩個層面的能力考核圖,如圖4、圖5所示。

圖4 軟件開發層面的能力考核圖

圖5 系統層面的能力考核圖
重構和優化專業核心課程體系,在培養學生系統認知能力基礎上,提高學生軟硬件協同分析、設計、實現和應用能力。通過考核確定是否達標。在實踐教學考核中,注重對學生系統分析問題、系統設計能力的考核,側重對學生綜合實踐能力和項目設計能力的評價,關注學生設計、分析和研究能力的提高。完善教學質量評價與考核機制,從軟件開發層面到系統層面,建立與工程教育專業認證統一的系統能力考核標準。
將系統能力分解為基礎能力、專業能力、拓展能力和綜合能力,形成軟硬貫通[15]的實踐教學體系,如圖6所示。

圖6 軟硬件之間貫通的實踐教學體系
基礎能力主要通過計算機系統基礎(南京大學袁春風教授主編)來培養高級語言程序設計(C語言)、數字邏輯與課程設計和面向對象程序設計(C++)等課程培養學生的計算機基本思維模式、符號化思維、程序思維、機器思維和算法思維,讓學生理解程序如何在機器上執行。
專業能力與自主創新能力分軟件和硬件兩部分。
硬件部分通過計算機組成實驗與課程設計,掌握計算機基本組成,形成簡單CPU設計與實現的技能;通過微機接口與匯編實驗,理解計算機接口和X86應用小系統的設計與實現;通過嵌入式系統實驗,掌握嵌入式系統模塊的設計與實現能力。
軟件部分通過數據結構實驗與課程設計,掌握基于數據結構分析、小型應用程序的設計能力;通過編譯原理實驗與課程設計,掌握系統軟件的詞法分析器、語法分析器的設計與實現;通過操作系統實驗與課程設計,掌握系統模塊中操作系統部分模塊的設計與實現能力;通過數據庫課程實驗與課程設計,掌握軟件查詢、數據存儲模塊的設計與實現。
在所有軟硬件課程的基礎上,通過典型的計算系統的設計與實現、企業項目植入、暑期小學期、學科競賽和參與教師項目等形式提升專業能力和自主創新能力。在專業能力、自主創新能力的基礎上,通過計算機系統綜合課程設計、畢業設計、生產見習和實習,強化系統綜合能力。
鼓勵教師定期參加教育部主辦的系統能力培養的培訓和導教班,提高自身的修養,涉及到系統能力課程的老師要相互協商,找準系統類課程之間的銜接點;鼓勵教師到企業掛職鍛煉,提高教師隊伍中雙師型教師的比例,將系統能力培養落到實處;參加全國高校系統能力競賽,進一步調動教師和學生的積極性,以賽促學,以賽促教。
開放專業實驗室,如網絡攻防實驗室、虛擬現實實驗室、物聯網實驗室或網絡工程實驗室等可以考慮向本院學生開放,引導學生自主實驗,進一步激發他們的探究精神,為系統能力培養奠定良好的基礎。
渭南師范學院計算機學院已經與北京千峰、北京新大陸、達內集團、藍橋軟件學院、中軟國際、云間科技和傳智博客等企業開展產學聯合培養模式[16],具體作法如下。
(1) 構建全學段多層次實踐教學體系
按照工科認證的標準,形成 “驗證實驗+綜合實驗+課程設計+專業見習+專業實訓+專業實習+畢業設計”的多層次實踐教學體系。構建一年級體驗、二年級見習、三年級實訓、四年級實習的實踐教學全學段不間斷模式,從三年級開始引入企業實訓課程,強化和細化實踐教學環節,將學到的知識、技能轉換為能力。
(2) 實施校企合作、一線工程師進課堂
在新的教學計劃中實施企業課程嵌入、教師學生進企業的“校企合作”實踐教學過程,探索“微課程”“微實訓”“微實習”和企業推薦就業模式。
(3) 以工科認證為導向、以項目為基礎,產教融合培養學生的系統能力
用工科認證的標準來指導系統能力培養,通過暑期小學期和企業深度實習,企業工程師和教師共同指導畢業設計來提高學生的項目研發能力,在大三的第二學期實施產教融合項目:1+X 高級職業技能教育試點(智能傳感、工業機器人、云計算平臺運維與開發),增強學生的就業競爭力。
在新工科背景下,做計算機系統能力培養,要喜新不厭舊,教學實踐證明了好的做法要堅持,不好的要完善,注重思考能力和軟件系統思維的培養,加強實踐,加強個性化培養。積極推進高校、企業、學術/教育團體協作,共同建設系統能力培養的教育生態。對地方高校而言,仍然存在一定的困難和問題,期望在工程教育的引導下,結合自己的實際情況,繼續向國內外知名高校和教指委學習改革的新思路和新方法,研究課程體系和教學內容,形成適合自己的軟硬件貫通的實踐教學體系,探索服務地方的新模式。