武小平++劉丹++蘇科華

摘 要:分析面向系統能力培養的教學課程體系特點及卓越工程師培養計劃目標,探討如何在有限的學時中通過教學與實驗使學生能夠將嵌入式系統所涉及的軟硬件系統相關知識融會貫通,介紹針對卓越工程師培養的嵌入式系統方向課程的教學經驗。
關鍵詞:系統綜合能力;卓越工程師;嵌入式系統;教學改革
1 面向系統能力培養的教學體系
對于高校計算機專業教育而言,以應用和系統綜合能力培養為核心,著力重視培養計算思維及解決問題的能力,依然是當前教育的側重點之一。計算機系統能力主要體現在能夠自覺利用系統觀,理解計算機系統的整體性、關聯性、層次性、動態性和開放性,并用系統化方法,掌握計算機硬軟件協同工作及相互作用機制的能力[1]。
系統能力的培養是提高計算機專業本科教學質量和水平的一個重要方向。從學習的角度也需要更多地關心計算機系統的整體性,培養自身計算機系統能力,這也是工程教育的特征。文獻[1]從計算機技術發展的特點,介紹了系統能力培養的主要內涵和需求,闡述了系統能力培養和課程體系設置的總體思路,也代表了國家層面對系統能力培養課程體系設置的發展方向。文獻[2-3]則分別從清華大學和浙江大學的實際情況,介紹了在計算機系統能力培養方面所做的課程體系建設和教學改革實踐工作。
2 卓越工程師班嵌入式系統方向課程分析
2.1 嵌入式系統方向課程概況
嵌入式系統概念隨著芯片技術的發展和應用需求的擴張逐漸普及。伴隨著物聯網及相關應用的發展,嵌入式系統也成為計算機科學技術領域的一個重要發展應用方向。目前國內高校的嵌入式系統教學基本上都是從早期的微機原理類和單片機類課程發展而來,而更多的學校則是作為本科培養方案中的一門專業必修課或專業限選課。由于受限于學時安排,大多是開設一門嵌入式系統原理類課程作為一個入門級的概述,缺乏后續更深入的學習課程安排。
卓越工程師培養計劃是國家貫徹落實中長期教育改革和發展綱要的重大改革實踐項目,也是促進我國由工程教育大國邁向工程教育強國的重大舉措。對于計算機專業而言,卓越工程師的培養以工程應用技術為主。根據卓越工程師的培養計劃和目標,到了本科高年級階段,則應該在不同的專業方向做課程細分與側重學習,這樣就對后續的課程設置提出了更高的要求。
結合嵌入式系統的工程應用技術特點,課程的設置希望能夠讓學生更深入地了解系統底層的環節。在專業基礎必修課中,面向所有專業學生開設有嵌入式系統原理課程。針對卓越工程師的培養目標,在嵌入式系統方向的定位是能夠從事驅動級系統程序開發、嵌入式操作系統移植以及面向上層應用的技術支持;而在受限于專業方向選修課程只有3門的情況下,我們在嵌入式系統方向的專業選修課程設置為:ARM體系結構與編程、嵌入式OS及應用,嵌入式系統綜合設計與嵌入式系統的體系層次之間的對應關系如圖1所示。
2.2 教學內容編排
(1)ARM體系結構與編程。本課程是在嵌入式系統原理的基礎上開設的嵌入式方向選修的第一門課程。在嵌入式系統原理中,學生從51單片機入門,逐漸過渡到ARM體系并基本掌握嵌入式系統的基本設計原理及開發方法,對嵌入式系統有了一個總體上的認識,并對系統開發的全過程有了基本了解。在此基礎上,本課程將引導學生深入掌握一種主流的ARM體系架構(以ARMv7為藍本),并以一種具體的ARM Cortex微控制器為例(STM32系列),學習掌握32位ARM Cortex微控制器的片上資源及接口編程。課程側重突出應用程序實踐,結合具體的應用案例加強基于ARM體系的應用編程能力培養。在針對基于具體微控制器的應用時,引導學生逐漸從基于ARM匯編的面向寄存器編程過渡到基于C語言的面向庫函數編程。
本課程主要知識點包括:①ARMv7體系的編程模型。理解其工作模式和特權級別,數據類型支持和存儲映射I/O,中斷與異常處理流程。②BootLoader概念、作用與移植。理解BootLoader基本概念及通用執行流程,以開源項目U-Boot為例,學習掌握其編譯與移植。③以基于ARM Cortex-M內核的STM32系列微控制器為例,學習掌握其片上資源及接口編程,了解其固件庫資源及應用示例。④嵌入式系統接口及編程。實現基于STM32微控制器進行外圍接口設計及控制編程,具體通過連接字符型LCD顯示、行列式鍵盤、電機控制、SPI通信、IIC通信等,提高實踐與設計能力。
(2)嵌入式操作系統及應用。嵌入式操作系統在概念上與通用操作系統并無本質的區別。由于嵌入式系統硬件平臺的差異性和特定性以及某些場合對實時性的要求,使得嵌入式系統中的操作系統最終表現出來的形式也是側重點不一。在操作系統原理、嵌入式系統原理、高級語言程序設計等前導課程學習的基礎上,本課程將結合嵌入式系統的軟硬件特點,以嵌入式Linux為藍本,引導學生學習嵌入式操作系統的內核結構、引導程序、圖形庫、內核構建和裁剪移植技術,培養基于嵌入式操作系統的應用和實踐能力,為后續的系統級開發積累初步的知識和經驗。
本課程主要知識點包括:①嵌入式軟件體系結構。了解嵌入式軟件及開發工具分類,掌握嵌入式軟件體系結構,掌握嵌入式軟件運行流程及交叉編譯開發過程。掌握嵌入式操作系統體系結構,嵌入式操作系統功能及特點,了解嵌入式操作系統發展趨勢。②嵌入式操作系統內核基礎。了解嵌入式操作系統內核的實時性、可移植性、可剪裁性、可配置性和可靠性;掌握嵌入式操作系統的應用編程接口。掌握嵌入式操作系統內核的主要功能及重要性能指標。掌握嵌入式操作系統的任務管理與調度、通信機制、中斷和時間管理、高可靠實時系統設計。③嵌入式Linux。掌握嵌入式Linux的構建與應用開發流程;學習Linux圖形庫移植及應用開發技術;掌握嵌入式系統接口設計與Linux驅動程序設計方法。④典型嵌入式操作系統簡介。學習了解u/COS-II、IOS、Android系統的基本體系結構、開發環境及應用軟件開發流程。endprint
(3)嵌入式系統綜合設計。本課程為案例式教學。在前述課程的學習基礎上,由主講教師結合科研項目講解項目中具體的嵌入式系統解決方案及設計實現內容,結合試驗進行驗證或引導學生做深入嘗試。本課程可由多名老師聯合授課。
3 面向系統綜合能力培養的教學實踐
國內很多應用型本科院校針對卓越工程師培養目標,結合本校的教學特色,在嵌入式系統教學方面做了很多有益的探索[4-7],尤其是以賽促教、案例式教學、項目式教學等教學方法和教學模式的探索,取得了較好的效果。
嵌入式系統作為本院卓越工程師的專選方向之一,應該將計算機專業前期重要的相關專業課程如高級語言程序設計、計算機組成原理、微機系統與接口技術、操作系統、編譯原理等課程知識進行充分集成整合,給學生提供一個能夠將系統進行綜合的平臺。再針對嵌入式系統開發所側重的底層接口與控制,將計算機系統的軟硬件有關知識進行融會貫通,并形成系統及應用,對于提升學生深入理解計算機系統和綜合系統設計能力將大有裨益。因此,在制定嵌入式方向的后續專選課程大綱時,明確提出要求在課程內增加綜合實踐環節,包括課程大作業、團隊合作開發等,加強學生的動手能力和團隊合作能力;增加案例教學內容,通過具體案例分析促進學生對工程知識的理解。
3.1 案例導學
在ARM體系結構與編程課程中,在學習微控制器體系及片上資源編程與接口之后,設計了兩個綜合實驗案例:第一個案例為結合實驗室開發板,實現一個片上資源及接口編程的綜合應用程序。該案例通過GPIO、中斷、定時器、串口通信的編程,實現將鍵盤掃描、電機控制、LED顯示綜合集成的控制程序,屬于入門級案例,也是提高學生學習興趣的一種手段。第二個案例為基于ARM的嵌入式銀行排隊模擬系統,是相對開放式的綜合應用案例。該案例貼近生活實際,功能容易理解。在教學實踐中可提前一周左右的時間安排學生先自主進行設計,然后再通過講解系統的功能分析、硬件總體設計與接口模塊化設計、軟件總體設計與應用程序開發,讓學生有一個對比理解的過程,加深系統設計的理解。
在嵌入式OS及應用課程中,在嵌入式OS內核及嵌入式Linux的學習基礎上,設計了兩個綜合實驗案例:第一個案例為基于Linux任務調度、信號互斥和中斷控制分別實現控制LED的效果,加深對內核操作的理解;第二個案例為擴展LCD顯示及Camera圖像采集,掌握基于內核的硬件擴展及I/O管理方法。
3.2 以賽促教
近年來在教育部教學指導委員會的支持下,一些在全國有影響力的競賽項目也逐漸受到各大高校的重視和學生的熱捧。隨著物聯網及移動互聯網的發展,嵌入式系統方向相關的競賽也逐漸突顯巨大的影響力,比如全國大學生物聯網設計競賽、全國智能小車競賽等,還有一些企業贊助的杯賽項目,如英特爾杯全國大學生電子設計競賽嵌入式系統專題賽、博創杯全國大學生嵌入式物聯網設計大賽等。這些競賽一般都是開放式命題,有利于參賽者自由發揮創意。同時,全國性的競賽水準也對學生和指導老師提出了更高的要求。
結合卓工班學生的培養計劃和目標,在教學中有意識地引導學生組隊參加各類競賽,以參賽來促進專業知識的更深入學習。一方面,通過組隊參賽,培養學生的團隊合作精神,彌補單純的課堂和實驗教學中對團隊配合的訓練;另一方面,在理論教學中所涉及的項目案例,也都是預設性和驗證性的居多,通過參賽則能更好地培養學生主動創新能力及解決實際問題的能力,對于學生后續的專業深入學習起到巨大的推動作用。
3.3 項目實踐
嵌入式系統是非常注重項目實踐效果的專業方向之一。結合綜合實踐課程嵌入式系統綜合設計,我們在教學上也做了一些有益的探索,其中比較顯著的就是該門課程將由多名老師動態聯合授課。在開課的前一學期,我們會發布課程信息,號召承擔有嵌入式系統相關實際項目的老師參與進來,課程的主要內容也就是講解老師所承擔的項目內容。例如,筆者在2014年承擔了湖北省科技支撐計劃項目——基于物聯網的國土資源智能監測系統,計劃在綜合設計課程中申請6個學時,向學生講解項目中研發的一套基于4G網絡傳輸的用于國土資源監測預警的嵌入式系統平臺,讓學生能夠直接感受到嵌入式系統在實際研發項目中的應用。
4 結 語
嵌入式系統方向知識面涵蓋廣,教學上面臨的系統性問題較多。從工程技術的角度來看,尤其要注重對學生系統綜合能力的培養,也是非常適合卓越工程師培養目標的專業方向之一。武漢大學計算機學院卓越工程師班第一屆學生目前正步入高年級階段,對于選擇嵌入式系統方向的學生而言,新制定的培養課程大綱的教學實踐效果將在他們身上得到體現。面向系統綜合能力培養的教學實踐是個值得深入探討的課題,后續也將根據實際教學效果做進一步深入的研究,探索更符合時代發展需求及本學院實際情況的教學模式和教學內容。
參考文獻:
[1] 王志英, 周興社, 袁春風, 等. 計算機專業學生系統能力培養和系統課程體系設置研究[J]. 計算機教育, 2013(9): 1-7.
[2] 陳文智, 陳越, 莊越挺. 面向系統設計能力培養的教學改革探索[J]. 計算機教育, 2013(20): 70-76.
[3] 劉衛東, 張悠慧, 向勇, 等. 面向系統能力培養的計算機專業課程體系建設實踐[J]. 中國大學教學, 2014(8): 48-54.
[4] 牛玉軍, 毛玉萃. 面向卓越工程師培養的嵌入式系統課程建設[J]. 實驗科學與技術, 2013(12): 335-337.
[5] 王蘇峰, 唐玉華, 陸洪毅, 等. 嵌入式系統課程教學方法探索[J]. 計算機教育, 2011(20): 65-69.
[6] 殷建軍, 張明武, 尹令. 嵌入式系統課程現狀分析與對策研究[J]. 計算機教育, 2010(14): 114-119.
[7] 于曉海. 金建設. 嵌入式系統課程教學模式探索[J]. 計算機教育, 2011(13): 76-80.
(編輯:郭田珍)endprint