陳志強 陳旭東 江赟


摘要:針對地方財經院校非計算機專業嵌入式系統教學現狀,進行了問卷調查分析;基于“有趣,有用,建立學生自信”指導思想,綜合考慮了生源特點以及前導課學習情況,將有限學時的非計算機專業學嵌入式系統教學定位于“嵌入式系統體驗入門”;基于上述定位,探討教學內容、教學方式、教學順序。
關鍵詞:嵌入式系統;教學改革;非計算機專業
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2015)01-0226-04
嵌入式計算機技術是21世紀計算機技術兩個重要發展方向之一,嵌入式系統代表了“計算”發展的時代方向。根據IDC預測,到2015年,全球智能系統的設備量將達到150億之巨。無論是在航空航天、汽車電子、消費電子,還是工業控制、軌道交通、國防裝備等關鍵行業,處處都有嵌入式系統的身影。嵌入式技術,成為國民經濟發展和社會進步的一項必不可少的重要基礎技術[1-3]。
因此,很多高校紛紛開展嵌入式系統的教學和培訓工作。由于嵌入式技術在工控、汽車電子等領域的廣泛應用,除了計算機專業開設嵌入式方向之外,電子工程、自動化、測試技術等專業也相應開設了嵌入式系統基礎教學。然而各教學單位的辦學理念、辦學條件、教師實力和學生水平良莠不齊,所以嵌入式系統教學模式也應該因地制宜、因材施教。本文展示了對西部某財經高校187名學生進行的問卷調查結果,結合該校的實際情況,從學生和授課教師雙向角度考慮,探討在自動化、電子、測控等非計算機專業嵌入式系統課程的教學方法。
一、非計算機專業嵌入式系統開發學習現狀
為了清楚了解當前地方財經院校嵌入式系統教學現狀,我們對西部某財經高校187名學生進行了問卷調查,被調查學生覆蓋了自動化、電子科學與技術、測試技術、應用物理4個專業。調查內容包括生源特點、嵌入式系統前導課程學習情況、當前嵌入式學習狀況等。
(一)生源特點
調配率高、女生偏多是地方財經院校信息學科的一大特點。在我們調查的187名學生中,調配生高占40.64%,女生占比為38.5%。興趣是學習的最好老師,尤其是90后的當代大學生,無論是難度本就高的嵌入式系統,還是其他專業課,如此高的調配率,對大學教師提出了更高的要求。在工科學習過程中,女生的動手能力等劣勢也是不可回避的。
除此之外,由于專業差異,經管文專業學生相比工科學生學業更輕松,興趣更廣泛,思維也更靈活。財經特色鮮明的地方財經院校,工科學生容易受到經管文類學生影響。
(二)前導課程學習情況
嵌入式系統有兩個很顯著的特點:一是軟硬件結合,嵌入式系統都是軟硬件協同設計的結果;二是面向應用,嵌入式系統是通過嵌入到具體的產品中提升產品性能,降低產品成本的。嵌入式系統作為課程,既包括比較復雜的硬件組成與工作原理,又包括嵌入式軟件設計,同時還涉及嵌入式應用開發中的一些工程經驗和領域經驗。其先行課程有:C語言程序設計、模擬電路、數字電路、計算機組成原理、操作系統等。
在187名被調查者中,C語言程序設計基礎非常薄弱。學完之后還不知道什么是C語言的占10%,大一學的時候懂一點點,大三早就忘記了的達到57.8%;竟然有超過一半的人不知道程序從哪個地方開始執行。知道函數指針用法的學生僅僅占13.9%;能讀得懂結構體也只有15%。C語言在嵌入式驅動程序開發和應用程序開發中都占據重要地位,如此糟糕的學習情況為嵌入式教學提出了很大挑戰。
在筆者的調查中,還考察了其他前導課程學習情況,學習過操作系統的占29.5%;45%的同學學習過計算機組成原理;學習過微處理器結構的學生占38%。
(三)嵌入式Linux開發基礎學習情況
單片機作為自動化、電子科學與技術、測試技術三個專業的基礎課,本質上同屬于嵌入式系統,因此我們同時考察了單片機和嵌入式linux開發基礎兩門課程的學習情況。
如圖1所示,認為嵌入式linux開發基礎很難,幾乎學不懂的占15.3%;難,但努力了還是能夠學懂的占58.7%;難度一般,和其他專業課差不多的占23.5%;只有2.6%的同學認為嵌入式linux開發基礎比較容易學。在單片機的學習過程中,認為很難,幾乎學不懂的占29.8%;難,但努力了還是能夠學懂的占51.0%;難度一般,和其他專業課差不多的占17%;只有2.2%的同學認為單片機比較容易學。
從圖1我們可以看出,同嵌入式linux開發基礎相比,單片機的學習情況更差。這與嵌入式linux開發基礎授課內容密切相關,在被調查的三個專業中,嵌入式linux開發基礎授課內容主要有:ARM處理器概述,linux系統最基本的操作,linux環境下簡單的C語言程序編寫、編譯、調試工具,基本的linux應用程序開發接口函數、字符設備驅動程序開發,嵌入式開發平臺的構建。即便如此,仍然有74%的人覺得嵌入式linux開發基礎很難。從單片機的學習情況也可以看出,一旦涉及到硬件設計,學習情況將更加糟糕。
(四)課時安排不能滿足
當前很多高校都采取了學分制教育模式。學分制的優點自然很多,比如更加靈活、機動和高效等等,但是學分制也造成了大課時量課程的銳減。在這種情況下,嵌入式系統理論課程通常只有32課時,實驗課時通常只有16個課時,然而,嵌入式系統涉及的知識面非常廣泛,需要講解和實踐的內容較多。這樣,就形成了龐大的課程內容和偏少的課時量之間的矛盾。就嵌入式Linux開發基礎教學課時期望,在筆者的調查中,38%的學生希望理論課和實驗課總課時達到64學時,32%的學生選擇了56課時。
二、教學目標和方向定位
在第一節中,我們從對學生特點、嵌入式先導課學習情況等進行了調查分析。正如第一節所言,無論是生源特點還是學習態度,財經院校的工科生都有其鮮明特點,就非計算機專業開課情況來看,嵌入式系統開發先行課要么是學習基礎很不扎實,要么是一些先導課沒有學習。然而在嵌入式系統開發教學中,非計算機專業與計算機專業教學并沒有明顯區分,教學定位很模糊。
在實際嵌入式工程開發中,一個嵌入式開發項目常常由硬件設計工程師、系統開發工程師、驅動程序開發工程師、應用程序開發工程師共同協作完成。無論是硬件設計、操作系統管理及內核裁剪,還是驅動程序開發,都足夠單獨開設一門課程,應用程序開發涉及內容更多。現行教學中,在32~42個學時內,教授的內容幾乎涵蓋了嵌入式系統開發的各個知識點。這種教學方式讓學生難以接受,尤其是對調配生源,其興趣還沒激發,就被一棍子打倒,基本是到了最后老師在講臺上費心講解,學生在下面呼呼大睡。在我們的調查中,《嵌入式Linux開發基礎》學習困難的主要原因調查顯示:73%的同學選擇了計算機軟硬件知識儲備不夠,對計算機硬件不了解,對計算機編程語言不熟悉,對計算機操作系統不熟悉;15%的同學選擇了知識點太多,一下接受不了;8%的同學選擇了沒有興趣;只有4%的同學認為能力不足。在“你是否有興趣繼續深入學習嵌入式”調查中,73%的同學選擇了如果以后工作需要,會繼續學習;12%的同學選擇沒有興趣,以后也不會再學習了,只有15%的同學有興趣,會繼續深入學習。
著名嵌入式培訓學校成都國嵌的嵌入式學習路線設計如下:嵌入式處理器與裸機程序開發→Linux系統管理→Linux應用程序開發→Linux內核開發基礎→嵌入式Linux環境搭建→Linux驅動程序開發→深入學習Linux內核[3]。針對改路線,成都國嵌培訓共計設計了十門課程班。在有限的32~42學時內,要想完成如此多的教學內容,明顯不可能,借鑒先進培訓公司的經驗,考慮到調配生源多、女生多的實際情況,綜合上述調查分析,筆者認為,其指導思想應建立在“有趣,有用,建立學生自信”基礎之上,將學校有限學時的嵌入式系統教學定位于“嵌入式系統體驗入門”。
針對嵌入式教學目標,我們對剛剛學習過《嵌入式Linux開發基礎》的187名同學進行了問卷調查。結合學生意愿和實際情況,其教學目標優先考慮為:通過本課程的學習,使學生對嵌入式系統的基本結構、嵌入式系統設計所涉及的內容有一個較全面的認識,掌握進行嵌入式系統設計的基本理論和方法,為今后從事嵌入式系統的研究和開發打下良好的基礎;次之,熟悉ARM微處理器的結構和特點,基本掌握基于ARM微處理器裸機程序設計,掌握基于嵌入式Linux操作系統應用程序設計的基本方法,了解設備驅動開發基本方法。
三、授課內容與順序設置
在上一節中,我們基于“有趣,有用,建立學生自信”的指導思想,綜合考慮了生源特點以及前導課學習情況,將有限學時的非計算機專業學嵌入式系統教學定位于“嵌入式系統體驗入門”。在本節中我們基于上述定位,探討教學內容設置。
當前非計算機專業嵌入式教學內容存在“大而全”的弊病,幾乎覆蓋了嵌入式系統所有知識點。面對一群連C語言基礎都不具備的同學,老師在講臺上高談驅動程序開發和多進程多線程,學生能夠理解嗎?!此情此景,如同雞同鴨講,對牛彈琴。是否該補上一到兩次C語言編程課?筆者的調查結果中,支持補上C語言課程的達到68%。C語言是嵌入式開發的基礎,因此,我們認為,對非計算機專業學生,要根據實際情況考慮補上3個學時左右的C語言課程。
信息類專業,在地方財經院校,很難說得上是主流王牌專業,“二本,非主流”標簽,讓這些專業學生信心存在先天不足,學習難度較大的嵌入式系統,很容易打擊學生的信心,在授課內容和順序以上,一定要保護好學生的自信心。因此,我們主張在課程學習初始階段,以激發學生興趣為主,知其然未必一定要知其所以然。在對嵌入式系統簡單概述之后,基于開發板進行快樂體驗,如裸機程序體驗,以及操作系統安裝體驗。此過程,學生未必要讀懂程序,只是基于寫好的程序,在老師指導下,一步一步完成操作,實現基本的GPIO控制,直觀上體驗嵌入式系統。當前,開設了嵌入式課程的院校,基本都配置了基于ARM的嵌入式實驗箱,這也為開展體驗式教學提供了很好的平臺。
計算機巨頭ARM公司最近推出一個快速嵌入式系統原形設計平臺——mbed[4],無論是專業人員還是初學者,使用積木式構件,可以快速設計出嵌入式系統。可以在3個學時之內完成經典的GPIO控制實驗體驗。mbed簡單易學,是初學者快樂體驗嵌入式系統的好平臺。
直觀體驗嵌入式教學之后,開展對嵌入式處理器與裸機程序開發的深度學習。裸機程序控制案例很多,可以選取幾個經典的案例,如GPIO輸入輸出控制、UMART通信控制、步進電機直流電機控制,基于這些案例,對處理器等硬件平臺有著更深入的認識。自動化、電子、測控等專業,在學習嵌入式系統開發之前,都開設了單片機教學,開設上述裸機程序教學,既有利于鞏固單片機學習,也有利于過渡到更高級的嵌入式學習。
在實際應用的嵌入式系統中,很多是需要操作系統的,如智能手機等消費電子領域、汽車電子等。當前嵌入式操作系統應用最多最廣的非嵌入式Linux莫屬。熟悉Linux操作系統管理是非常必要的。基于嵌入式Linux系統,有很多嵌入式應用程序開發,因此在嵌入式體驗入門班,有必要奠定基本的嵌入式Linux應用程序開發基礎。
表1對上述學習內容學習順序和學習時間進行更詳細配置。要完成上述內容,需要48學時。在非計算機專業,嵌入式系統學習時間一般在48學時左右,要完成嵌入式系統開發高級主題如驅動程序開發、多進程多線程編程,不但學習時間不能滿足,由于這些學習主題難度較大,很容易打擊學生信心,因此,我們主張只對這些主題基本原理和基本實現作簡單概述,留待有興趣深入學習的同學后續學習。
四、授課模式
(一)理論和實踐合二為一
現在的大學本科教育已由精英教育轉變成為大眾教育,特別是對于地方財經院校這類二本院校的學生,他們普遍興趣廣泛、思維靈活,但卻不太習慣理論學習和思考,缺乏恒心和耐力,容易知難而退。對于這些學生,如果采用傳統的強調理論化、知識化的傳授方法,理論和實驗分開教學模式來講授嵌入式系統課程,學生無法直接感受到嵌入式系統課程的魅力,無法感受到所學知識在實際工作中的地位和作用,因而不能融入到課堂學習中去,體現在課堂上就是老師自說自話,學生我行我事。最后一個學期下來,大部分學生感到一無所獲,產生嚴重的挫敗感。從上節課程內容設置來看,適合老師一邊動手示范,學生一邊學習,學生一邊做一邊學,在做中學。在我們的調查中,81%的同學認為理論與實驗課合二為一,效果會更好。現實中的實驗條件也足夠支撐理論和實踐合二為一教學模式。一個教學班一般一個星期開設嵌入式課程5個學時,一個擁有40臺實驗箱的嵌入式系統實驗室,一天可以支撐兩個班級教學,一個星期可以容納10個班級學習,我校每學年總計有8~10個班級開設嵌入式系統教學,即便是同一學期同時開設這些課程,也能夠支撐將理論和實驗合二為一的教學模式。
(二)案例驅動
以案例為基礎的教學法,根據課堂教學目標和教學內容的需要,通過設置具體教學案例,引導學生參與分析、討論、實踐等,讓學生在具體的問題情景中積極思考、主動探索,培養學生分析問題和解決問題的綜合能力,這被稱之為案例驅動模式[1]。調查結果顯示,77%的學生認為,案例驅動嵌入式系統教學可行,且有利于嵌入式系統工程能力的培養。為了解決嵌入式系統教學中存在的問題,其中一個很重要的做法就是在現有教材的基礎上,適量引入活潑生動的教學案例和相關的工程應用。通過這些教學案例,提高學生的學習興趣,讓他們主動參與到學習過程中;化解課程的教學難點,減少學生學習課程時的挫折感;強調所學知識的工程應用,培養學生的實踐動手能力和創新能力;貫通課程的知識點,建立嵌入式系統整體概念,培養綜合運用所學知識的能力。
(三)充分利用云服務降低嵌入式學習的復雜性
嵌入式教學中一個難點就是需要安裝配置的軟件比較多,如Linux操作系統安裝,虛擬機配置,嵌入式程序開發環境的安裝與配置,嵌入式程序燒寫軟件。對初學者來說,如此多的軟件安裝和配置,一時很難掌握,很容易讓學生產生挫敗感,進而放棄對嵌入式系統開發的學習。
ARM公司最近推出的mbed快速嵌入式系統原形設計平臺[4],可有效幫助學生解決此問題。該平臺只需一塊mbed開發板,一臺可以上因特網的計算機,用戶只需用C或者C++,充分利用mbed庫函數,快速開發出嵌入式程序,然后通過遠程已經配置好的交叉編譯環境進行編譯,然后下載到目標板上。mbed既是一塊開發板,也可以當作一個U盤,下載程序非常簡單。初學者可以很快上手體驗到嵌入式系統的魅力。
在操作系統學習方面,無需在本地機上安裝操作系統,已有很好的基于云計算平臺提供linux操作系統學習平臺,Nitrous.IO[5]就是一個非常不錯的平臺,學生只需要登錄其平臺,注冊一帳號,就可以使用其系統。
五、結語
嵌入式人才的需求量大,嵌入式技術正快速發展,地方財經院校非計算機專業應根據自身特點和定位靈活調整嵌人式系統的教學內容,發揮自身優勢,培養出社會需求的嵌入式技術應用人才。嵌入式系統課程的教學改革是一項長期而系統的工程,要逐步改善教學條件,提高教師素質,改進教學方法,不斷探索與實踐,提高學生的學習興趣,培養學生的應用能力、創新能力,造就學生的就業優勢。
參考文獻:
[1]李文生,鄧春健,呂燚,案例驅動的嵌入式系統教學改革探索[J].計算機教育,2011,(2).
[2]王小妮,嵌入式軟件設計課程研究與探索[J].中國電力教育,2014,(8).
[3]國嵌.嵌入式體驗入門班培訓教材[BD/OL].(2440版). [2011-03-07].
http://www.enjoylinux.cn/jiaocai_view.asp?id=330.
[4]Rob Toulson Tim Wilmshurst,著.ARM快速嵌入式系統原型設計[M].韓德強,等,譯.北京:機械工業出版社,2014.
[5]https://www.nitrous.io/.