張健毅,張克君,孫 猛,王志強,傅仕諍
(北京電子科技學院 網絡空間安全系,北京 100070)
長期以來,國家一直高度重視信息化工作,特別是黨的十八大以來,習近平總書記多次強調“沒有網絡安全就沒有國家安全,沒有信息化就沒有現代化”,把網絡安全和信息化上升到了國家戰略的高度。信息安全是構建信息社會更是黨政系統信息化需要關注的重要問題,密碼技術、系統安全則是構建信息安全的基礎。隨著信息技術的不斷發展以及“新工科”概念的提出[1-3],在對密碼人才的培養中,教育從業者提出了如何應對變化、塑造未來,如何培養多元化、創新型卓越人才,如何繼承、創新、交叉、融合、協調與共享等新的要求。緊扣密碼行業業務需求,注重綜合型、應用型、創新型密碼人才的培養,是確保信息安全、滿足保障需要的關鍵所在。
北京電子科技學院已在應用型密碼人才培養模式方面進行了多項改革:通過壓縮課內學時,確立行業特色人才基本技能、專業技能和綜合創新能力等分級目標;融合密碼與信息安全各類特色課程,形成了獨具特色的密碼與信息安全人才綜合能力培養機制;構建了行業特色突出、注重能力培養的理論與實踐教學體系。然而,在新工科以及國家自主可控要求的背景下,對培養學科的交叉融合以及計算機系統思維的培養還存在一定的不足。如何更好地培養應用型密碼人才的計算思維成為當前計算機專業培養亟待解決的問題。
“新工科”概念自2016年提出以來形成了一系列的共識[4-6],即“新工科建設與教育應致力于以產業需求為導向,注重跨界交叉融合,探索建立工科發展新范式;緊跟技術發展,及時更新工程人才知識體系;以學生為中心,根據學生志趣選擇、設計教學方法與手段”。新工科的提出為工程特別是密碼工程教育理論與實踐探索提供了不同的視角與更高的要求。學科的融合與交叉在計算機專業教育中體現的是計算機系統思維。
隨著多核處理器、嵌入式和云計算技術的發展,以及大規模數據中心的建立和個人移動設備的大量普及使用,計算機快速進入了“后PC時代”[7]。時代變化促使教學課程必須與時俱進,讓學生能夠通過課程完整地理解計算機系統的層次結構,系統地建立計算機整機概念,特別是培養學生對計算機系統的分析、應用、設計及開發能力,以滿足行業的需求。
密碼科研體系下的計算機學科主要研究的是計算機系統各個不同抽象層的實現及其相互轉換的機制,如圖1所示。培養的密碼人才主要是在計算機系統或在系統特定層次上從事相關工作[8]。

圖1 計算機抽象層示意
不同的抽象層代表了不同的工作性質,密碼人才全部包含了計算機專業培養的4類角色,即計算機工程技術人員、系統程序員、應用程序員和系統管理員(如圖2所示)。只有具備對信息系統全局的“系統觀”,密碼人才才能夠研制出適合行業需求的特殊計算系統,編寫出更適合自主可控硬件架構的系統軟件,開發出更匹配硬件與系統軟件的應用軟件,配置出最佳的系統環境。

圖2 不同人員角色
當前,密碼人才的“系統觀”培養和課程教學方面還存在一些問題。
首先,從課程設置上來說,計算機專業課程設置,基本上是按計算機系統層次結構進行橫向切分的,自下而上分解成數字邏輯電路、計算機組成原理、匯編程序設計、操作系統、編譯原理、程序設計等課程,課程相互之間幾乎沒有關聯,學生對整個計算機系統的認識過程就像“盲人摸象”,很難形成對完整計算機系統的全面認識。
其次,計算機科學與技術專業培養出的人才局限于應用程序員,對計算機系統底層知之甚少。在動手實踐能力方面,國內大多數高校所培養的“程序員”能力甚至趕不上“北大青鳥”“新東方”等社會辦學所培訓出的學生。密碼人才的培養是屬于在基礎學習之后的特定方向培養,因此需要有分流的培養模式,應在基礎學習之后設置偏硬件或者偏系統的密碼應用方向。
最后,在課程安排上是先上數字邏輯電路課程,后上組成原理課程,并沒有考慮不同方向學生對于計算機底層硬件知識和硬件設計能力的不同需求。目前,組成原理課程的教學基本上還是沿用傳統的教學理念,教學內容還停留在計算機硬件的基本構成和基本設計原理層面,既不是國外數字系統設計的那種硬件設計課程,能夠讓學生真正了解如何用硬件描述語言通過FPGA 來設計現代計算機硬件系統;也不是一門關于計算機系統的入門課程,能夠讓學生全面地理解整個計算機系統的實現機理,整體概念對于密碼人才尤為重要,無論是做密碼芯片還是上層密碼應用,都需要對整個系統熟悉才能更好地設計出高效的應用。
網絡空間安全的保障依賴于密碼應用技術的提高,而如何培養具有計算機系統思維能力的密碼人才是眾多問題中的首要問題,密碼科研要求密碼人才具備以計算機系統思維方式理解計算機系統、具有系統觀的軟/硬件貫通的復合能力,具備站在系統的高度考慮和解決問題、具有系統層面的認知能力;能夠進行系統及算法整體性能分析、調整、評估、優化以及計算機密碼應用系統的開發能力。培養密碼人才的計算機系統思維能力,應從程序執行生成機器語言入手,縱向貫穿軟/硬件體系,以機器語言執行形成各個分支知識點,通過數字邏輯、匯編、計算機組成、操作系統和編譯原理等將知識點進一步細化,解決每一部分的具體問題,再以基于MIPS指令系統及密碼指令的處理器設計貫穿整個系統,進而培養計算機系統思維能力,建立系統觀。計算機系統思維和系統觀都需要有系統的高度才能更好地設計應用。當前,國內外還沒有可以借鑒的實例,需要研究探索一條有特色的適合于密碼特定方向人才的培養模式。
普通高等院校探索密碼人才計算機系統思維能力培養的教學模式主要面臨2個問題:與國內外一流高校相比,普通高等院校師資力量較為薄弱,學生接受能力相對較慢,如何在這一情況下尋求一種適合的計算機系統思維培養方案,進而建立有效的系統思維和系統觀;密碼人才培養與一般院校畢業生在培養目標、培養過程、培養側重點等均不一樣,而國內外還沒有可以借鑒的實例,這就要求我們探索出一條適合密碼這個特定方向人才的培養模式。
筆者對國內外一流高校計算機系統課程開設及改革情況進行了詳細的調研與分析,同時深入密碼行業基層部門、參與行業工作實踐,了解特殊行業對人才的特殊需要。針對用人單位需求和普通計算機領域系統觀建立的成熟經驗,以本科培養方案修訂為切入點,在北京電子科技學院課程體系建設中將計算機系統思維培養模式滲透到多門課程中,強化課程間的銜接及支撐。為達到在計算機組成課程及硬件課程設計中培養學生計算機系統觀概念和工程設計能力,需要規劃好各個相關課程涵蓋的知識結構和框架體系,合理定位各門課程的教學目標,把每個知識點落實到具體課程中。
表1是模式探索下的課程習題結構設計與內在關系。在課程體系建設過程中,將知識分解到邏輯電路、匯編語言及組成原理課程中,為核心課程一體化建設做基礎。數字邏輯課程中的硬件描述語言設計能力、匯編語言課程中MIPS架構的概念及應用、計算機組成課程中計算機部件及系統概念及設計、重構的課程群知識體系和實驗體系形成合理的前后依賴關系,支撐硬件課程設計完成整體系統設計,同時為一體化核心課構建形成階段成果。

表1 課程體系結構設計
筆者力圖使用同一套具有工程性和實踐性的實驗體系貫穿計算機系統化學習的完整過程。針對數字邏輯課程,實驗體系以組件化思想為中心,加強處理器數據通路所需部件(包含但不限于多路選擇器、譯碼器等)的基礎實驗,強化學生對計算機系統的硬件感知。
針對匯編語言課程,實驗體系以過程性思想為中心,增加了MIPS指令集相關實驗,強化學生的底層軟件感知;針對計算機組成原理課程,實驗體系以系統性思想為中心,增加了處理器設計的相關實驗,強化學生的軟硬件一體化設計思想。
在研究過程中,筆者強調了實踐環節的統一性。面對不同的課程,從基礎知識學習的數字邏輯課程開始,到知識運用的匯編語言課程,再到以系統再造為目標的組成原理課程,學生的實踐過程始終具有一致性和連貫性的特點。這不僅能夠滿足學生課程學習的要求,而且能夠幫助學生借助實驗課程,在實際工程環境下實現跨課程的知識銜接與強化。
根據理論課程的體系設計,結合計算機系統思維模式培養的思路,本次研究對理論課程、課程實驗、課程設計等實驗體系進行了改革。
1)理論課程方面。
數字邏輯課程的實踐教學部分提供了處理器數據通路所需的基本部件(涉及多路選擇,譯碼器等)的基礎實驗,能夠讓學生更好地在處理器層面理解數字邏輯;匯編語言課程的實踐教學部分增加了MIPS指令集格式、設計、編程方面的實驗,能夠讓學生在后續CPU設計中,以成熟的MIPS體系為基礎,深入理解指令系統的概念;計算機組成原理課程試驗中,進一步提供了處理器設計的存儲器、ALU等功能部件的相關實驗,一方面讓學生了解到處理器的內部結構,另一方面讓學生更加深入的了解計算機的組成。
2)課程實驗方面。
本次研究配套改革了部分實驗;將“MIPS指令系統”以及“運算器的設計與實現”融入實驗中。讓學生能夠基本掌握MIPS匯編語言程序的能力,了解RISC體系結構,并使用Verilog語言設計計算及核心部件,為基于MIPS指令集的處理器設計和系統設計打下基礎。
3)課程設計及畢業設計方面。
本次研究在硬件課程設計以及畢業設計兩個教學環節進行了試點,嘗試在計算機系統思維模式下設計并實現單周期、多周期以及密碼算法的指令系統設計,并驗證了整個教學改革的成果。在后續教學安排中,將會全面推廣改革效果。
在“新工科”背景下以及自主可控的浪潮中,北京電子科技學院通過對密碼人才的計算機系統思維培養模式的探索,提高了學生對計算機系統的全面認識水平和系統設計能力,系統地建立了計算機整機概念;培養了學生特別是密碼人才對計算機系統的分析、應用、設計及開發能力,滿足了實際的需求,實踐取得了良好的效果。在后續工作中,筆者將完善新媒體教學平臺,借助便捷的移動網絡資源,提高課程靈活度,將密碼人才的培養過程可定制化、簡單化。