劉路路,王凡,江東
(合肥師范學院計算機科學與技術系,安徽合肥230061)
嵌入式系統(tǒng)系列課程建設的教學研究
劉路路,王凡,江東
(合肥師范學院計算機科學與技術系,安徽合肥230061)
結(jié)合培養(yǎng)應用型人才的需要,探討嵌入式技術發(fā)展對人才的需求問題,將嵌入式系統(tǒng)相關課程組成課程群進行合理建設.針對課程群內(nèi)容建設、構建課程群實驗與實踐教學環(huán)節(jié)體系、教學方法提升學生興趣幾個方面介紹嵌入式系統(tǒng)系列課程的建設工作.
嵌入式系統(tǒng);課程群;應用型;教學
嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)[1].掌握單片機MCU、數(shù)字信號處理器DSP、高性能RISC處理器ARM的設計,并了解IC、SOC及嵌入式操作系統(tǒng)的產(chǎn)品研發(fā)人才成為新的人才競爭熱點.尤其是實用型、復合型的嵌入式軟件工程研究、技術開發(fā)和項目管理復合型人才更是企業(yè)追捧的對象.但是與巨大的產(chǎn)業(yè)需求和市場潛力相比,嵌入式系統(tǒng)方面的教育體系建設相對滯后.國內(nèi)高校原來計算機專業(yè)的相對偏軟而電子工程專業(yè)卻相對偏硬,而嵌入式系統(tǒng)需要的是軟硬件緊密結(jié)合的復合型人才,使得企業(yè)缺乏合適的嵌入式系統(tǒng)開發(fā)人員,高校畢業(yè)生無法滿足企業(yè)需求,使得人才培養(yǎng)模式與實際人才需求嚴重脫節(jié).合肥師范學院(以下簡稱我校)作為新建本科院校,其主要任務是為安徽經(jīng)濟和社會發(fā)展培養(yǎng)高素質(zhì)應用型人才,也為我省的經(jīng)濟建設和發(fā)展提供有力的人才支持.因此,積極探討嵌入式技術發(fā)展對人才的需求問題,進行嵌入式系統(tǒng)系列課程建設的教學研究以符合我省經(jīng)濟發(fā)展和我校培養(yǎng)應用型人才的急迫需要.
根據(jù)企業(yè)調(diào)研,結(jié)合專業(yè)特點和我校實際,以就業(yè)為導向,注重學生專業(yè)技能和崗位能力的培養(yǎng),確定了我校計算機軟件專業(yè)的培養(yǎng)方案,要求培養(yǎng)的學生具有扎實的計算機理論基礎以及良好的軟件工程專業(yè)素質(zhì),掌握現(xiàn)代軟件工程設計、開發(fā)和測試技能.重點培養(yǎng)學生嵌入式系統(tǒng)軟件工程實踐能力,包括各種嵌入式系統(tǒng)開發(fā)技術、調(diào)試和測試工具,畢業(yè)后學生有能力適應巨大的嵌入式系統(tǒng)產(chǎn)品市場需求,成為嵌入式系統(tǒng)產(chǎn)品企業(yè)所急需的掌握嵌入式系統(tǒng)軟件技術和管理的應用型人才.
由于嵌入式軟件人才的培養(yǎng)不同于傳統(tǒng)計算機軟件人才的培養(yǎng),除了學習軟件工程的軟件開發(fā)流程、項目管理等方面的知識外,還需掌握計算機硬件基礎、嵌入式應用領域的專業(yè)知識,嵌入式系統(tǒng)的開發(fā)技術與調(diào)試和測試工具,這就需要解決課時總量一定而專業(yè)領域擴大的矛盾,如果課程設置不合理,不但造成新的課程學生接受不了,傳統(tǒng)課程體系的優(yōu)勢也會被破壞.為了解決這一矛盾,我校計算機科學與技術系(以下簡稱我系)將嵌入式系統(tǒng)相關課程組成課程群進行合理建設,組成教師團隊開展課程群的建設研究,整合各課程教學內(nèi)容,提高教學質(zhì)量.課程群的課程主要有[2]:硬件先期基礎課程包括電子電路、組成原理、單片機原理及應用;軟件先期基礎課程包括C語言、數(shù)據(jù)結(jié)構、操作系統(tǒng)、軟件工程、軟件項目管理,最后進行嵌入式驅(qū)動程序開發(fā),嵌入式系統(tǒng)及應用開發(fā)的課程教學.課程群結(jié)構圖如圖1所示.
在通過一系列的調(diào)研和分析之后,對嵌入式系統(tǒng)及應用開發(fā)方面的課程進行了全面的梳理,根據(jù)各門具體課程內(nèi)容縱向的傳承關系,橫向的內(nèi)在的聯(lián)系將課程群的內(nèi)容進行整合和優(yōu)化,補充部分在實際工程實踐中需要的相關知識,刪除一些過時和重復的教學內(nèi)容,同時注意調(diào)整教學順序,保證知識的系統(tǒng)性,更利于學生接受消化和理解.并通過連貫性,系統(tǒng)性的教學與實驗,更加有效地提高學生的綜合素質(zhì),使整個課程群的教學內(nèi)容針對性更加突出.以保證學生之后能夠真正地掌握嵌入式系統(tǒng)及應用開發(fā)的核心技術,提高開發(fā)和應用嵌入式程序的能力.
圖1 課程群結(jié)構圖
2.1 硬件基礎
電子電路:包括模擬電路和數(shù)字電路兩部分內(nèi)容,這類課程的授課內(nèi)容是使學生掌握模擬電路和數(shù)字電路的基本理論、元器件的構成和特性,電路分析和設計,熟練使用儀器儀表,授課時主要注意和后期專業(yè)課程進行銜接,尤其注意提高學生的實踐動手操作能力,包括能夠熟練使用焊接工具焊接集成器件,能夠閱讀原理圖,會分析以及調(diào)試電路,讓學生覺得學以致用,理論聯(lián)系實際.
組成原理:詳細介紹組成計算機的各部件的組成原理、邏輯實現(xiàn)和設計方法.介紹計算機硬件系統(tǒng)內(nèi)部各部件之間的互連、指令在計算機中的執(zhí)行過程,讓學生形成整機的概念.為了便于學生對基本概念的理解,培養(yǎng)學生對硬件系統(tǒng)的分析、設計、使用方面的能力,介紹一種或兩種有代表性的機型結(jié)構.特別注意培養(yǎng)學生從硬件和軟件的結(jié)合上思考、分析、解決問題的初步能力.
單片機原理及應用:單片機課程是嵌入式課程群教學的基礎和入門,在嵌入式方向應用型人才培養(yǎng)中占有舉足輕重的作用,旨在傳授給學生綜合運用嵌入式處理器進行開發(fā)與設計的基本方法和能力.目前在實際應用中單片機的種類非常多,因而該課程的教學主要選取目前國內(nèi)市場上覆蓋和利用率最廣的MCU51系列芯片作為樣板,學習單片機的核心架構以及各個功能模塊、各種接口程序的編寫,并詳細介紹單片機在各種場合的應用.要求學生掌握單片機的基本結(jié)構及工作原理、各種接口的應用,單片機硬件系統(tǒng)擴展的基本概念、基本方法和單片機軟件編寫的基本原則,著重培養(yǎng)學生應用單片機設計控制系統(tǒng)及編寫程序的能力.
2.2 軟件基礎[3]
C語言程序設計:C語言是當今世界嵌入式系統(tǒng)開發(fā)最主流開發(fā)語言,在嵌入式系統(tǒng)開發(fā)中,特別是基于ARM和Linux的嵌入式系統(tǒng)中占主導地位,所以為了結(jié)合后續(xù)嵌入式系統(tǒng)開發(fā)的需要,需要調(diào)整C語言程序設計課程內(nèi)容,強化指針、位操作、函數(shù),并加強兩周的課程設計訓練,強化程序設計能力.教學中可以結(jié)合一些簡單的單片機開發(fā)的小程序如流水燈實驗來提高學生以后學習的興趣.
數(shù)據(jù)結(jié)構:數(shù)據(jù)結(jié)構是從事計算機軟件開發(fā)的必備的基礎知識.高效、實時、可靠對嵌入式應用系統(tǒng)來說尤為重要,要求學生掌握在硬件資源有限的情況下,如何提高代碼質(zhì)量,優(yōu)化算法,提高軟件的執(zhí)行速度,更好地滿足實時性的要求;減少目標代碼的長度,節(jié)省存儲空間的開銷,提高系統(tǒng)的性能和處理速度.
操作系統(tǒng):當前面向高端應用的嵌入式系統(tǒng)基本上使用的是實時操作系統(tǒng),且采用微內(nèi)核結(jié)構,核心就是任務和內(nèi)存管理.由于大多數(shù)嵌入式操作系統(tǒng)對內(nèi)存空間沒有保護,各線程實際上共享的是一個運行空間而這些內(nèi)容關系到嵌入式系統(tǒng)開發(fā)的成敗,在講述操作系統(tǒng)基本內(nèi)容的同時應重點提出,并面向嵌入式系統(tǒng)應用舉出實例.在操作系統(tǒng)課程的授課時需結(jié)合linux操作系統(tǒng)進行講解分析,以便學生在掌握Linux操作系統(tǒng)后可以快速深入了解主流帶操作系統(tǒng)的嵌入式系統(tǒng)設計流程和方法.
軟件工程/軟件項目管理:嵌入式軟件工程人員必須首先具有軟件工程的基本知識和工程技能,包括軟件工程管理、軟件質(zhì)量、軟件工程過程等,這些基本知識也正是目前非軟件工程背景的嵌入式軟件人員所忽視和缺乏的.但是,嵌入式軟件工程人才又必須掌握嵌入式軟件工程的特殊性,例如軟硬件一體化設計與開發(fā)、開發(fā)工具和方法等,因此,在課程內(nèi)容設置上,除了講解軟件工程的基本模型和基本方法外,還要將嵌入式系統(tǒng)新近發(fā)展起來的如軟硬件協(xié)同設計、模塊的可重用和可移植設計等一些新方法和技術列入到課程內(nèi)容中去.
2.3 嵌入式系統(tǒng)開發(fā)課程
包括嵌入式驅(qū)動程序開發(fā)、嵌入式系統(tǒng)及應用開發(fā)課程,課程內(nèi)容包括嵌入式系統(tǒng)的基礎知識,實時內(nèi)核的基本原理,嵌入式操作系統(tǒng)內(nèi)核及文件、網(wǎng)絡、GUI.培養(yǎng)學生具備嵌入式微處理器ARM的基本知識和編程能力,具備嵌入式存儲系統(tǒng)、I/O接口的編程能力,培養(yǎng)學生熟練使用嵌入式系統(tǒng)的開發(fā)、調(diào)試、測試等開發(fā)工具.通過課程設計結(jié)合項目實踐幫助學生積累開發(fā)經(jīng)驗,能結(jié)合嵌入式系統(tǒng)軟硬平臺多樣性的特點舉一反三,具有創(chuàng)新思維和獨立分析解決問題能力.
嵌入式類課程群是一個理論和實踐教學的綜合體,在課程群體系中,需注意各門課程實驗內(nèi)容合理安排與相互銜接,使學生得到設計、綜合技能的全面訓練.我系進行的立體化實踐教學體系,取得了良好的效果.將實踐教學分成課內(nèi)實驗、課程設計、課程企業(yè)見習及專業(yè)實習、畢業(yè)設計五個階段完成.其中課內(nèi)實驗和課程設計配合理論課的學習,以提高學生的理論學習興趣和訓練他們開發(fā)的基本能力;項目實訓階段以課程企業(yè)見習和專業(yè)實習的方式進行,構建虛擬嵌入式開發(fā)的開發(fā)環(huán)境和管理模式,使得學生在完成傳統(tǒng)實驗同時可以真題真做,通過實際動手的綜合設計掌握企業(yè)嵌入式開發(fā)流程;最后通過畢業(yè)設計進行綜合實踐能力的提高.通過實踐,使學生能夠整合嵌入式系統(tǒng)的相關理論,并在實際開發(fā)中得到工程能力培養(yǎng).
4.1 精選入門程序
為了提升學生學習興趣,課程可以精選一些簡單直觀的入門程序.一般來說,第一個工程安排應“短小直觀”為原則,以達到讓學生直觀的了解程序框架和工作過程的目的[4].以嵌入式系統(tǒng)及應用開發(fā)課程為例,選擇一個簡單的可供觀察的小程序,進行編譯、鏈接下載到芯片內(nèi)部Flash存儲器,然后將程序下載到目標MCU中,在目標板上,讓學生注意觀察整個過程.同時可以在被測程序中插入一些函數(shù)與語句這樣可以進一步利用嵌入式軟件的打樁調(diào)試技術,讓學生可以更方便的通過在硬件板上顯示的物理現(xiàn)象來觀察程序的運行情況.
4.2 參賽
組織指導學生成立興趣小組參加嵌入式系統(tǒng)方面的設計大賽,讓學生在競賽中檢驗并進一步提高自己的實踐創(chuàng)新能力.近年來,由于我系有著健全的創(chuàng)新管理機制,特別是教師的積極組織和學生的熱情參與,使得學生參加國家級以及省級的各項比賽,取得了一定的成績,包括全國機器人大賽,全國大學生智能汽車大賽等,而通過這些比賽,可以帶動更多的學生加入到興趣小組,帶動更多的學生自覺投身到實踐學習當中,從而有助積極氛圍的營造和優(yōu)良風氣的形成,也推動了嵌入式系統(tǒng)系列課程的建設.
4.3 開展嵌入式系列講座
針對學生舉辦嵌入式系統(tǒng)方向應用型人才培養(yǎng)系列講座,旨在通過綜合介紹計算機層次結(jié)構,核心課程結(jié)構和作用,使學生明確學什么?怎么學?嵌入式方向講座針對嵌入式系統(tǒng)范圍廣,跨度大,知識點多而雜的特點,從硬件軟件兩方面引入專業(yè)基礎課程,然后開始較簡單的無操作系統(tǒng)的嵌入式系統(tǒng)介紹,最后引入現(xiàn)在主流帶操作系統(tǒng)的嵌入式系統(tǒng).從簡入繁,依據(jù)嵌入式系統(tǒng)結(jié)構,一層一層引入各門核心課程,給學生以直觀了解.方便學生明確自己未來工作所處的計算機層次,有針對性的學習,為后續(xù)因材施教、學生綜合能力提升、創(chuàng)新能力培養(yǎng)打下基礎.
〔1〕李亞峰,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通[M].北京:清華大學出版社,2008.
〔2〕王曉薇.基于應用型人才培養(yǎng)的嵌入式課程群建設的探索與實踐[C]//大學計算機課程報告論壇組委會.大學計算機課程報告論壇論文集.北京:高等教育出版社,2010.1-4.
〔3〕過怡,劉文芝.基于職業(yè)能力的嵌入式專業(yè)課程群建設探討[J].常州信息職業(yè)技術學院學報,2010,9(6):51-53.
〔4〕王志超,王宜懷.從嵌入式系統(tǒng)教學談學生創(chuàng)新能力的培養(yǎng)[J].計算機教育,2010(3):150-152.
G642.0
A
1673-260X(2013)06-0230-03
合肥師范學院院級教學質(zhì)量與教學改革工程項目(2010yj29)