趙石磊++唐光義
摘 要:文章從嵌入式系統(tǒng)存在的問題出發(fā),指出了基于開源軟硬件平臺(tái)的嵌入式教學(xué)策略,即從教學(xué)方法上教會(huì)學(xué)生學(xué)習(xí),整合教學(xué)內(nèi)容,合理安排實(shí)驗(yàn)案例。
關(guān)鍵字:嵌入式教學(xué);開源硬件平臺(tái);策略
中圖分類號(hào):G642.0 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1002-4107(2015)10-0018-02
近年來(lái),隨著嵌入式技術(shù)的發(fā)展,嵌入式系統(tǒng)在越來(lái)越多的領(lǐng)域內(nèi)得到了廣泛應(yīng)用,各種相關(guān)的嵌入式產(chǎn)品也紛紛涌現(xiàn),同時(shí),嵌入式人才的需求量也在逐年增加,因此各大高校紛紛開展嵌入式教學(xué)。然而,在嵌入式教學(xué)中,一方面,面對(duì)比較深?yuàn)W的嵌入式知識(shí),學(xué)生很難有自覺深入學(xué)習(xí)的興趣和動(dòng)力,即使在教學(xué)中加強(qiáng)了教、學(xué)、做一體化等教學(xué)模式,大多數(shù)學(xué)生也只是照葫蘆畫瓢,被動(dòng)機(jī)械地完成學(xué)習(xí)任務(wù),不能有效地提高自身的技能和創(chuàng)新能力。另一方面,雖然學(xué)生邏輯思維能力不強(qiáng),但是他們的思維十分活躍,只要教學(xué)內(nèi)容符合他們的需求,引起他們的興趣,就能激發(fā)他們學(xué)習(xí)的動(dòng)力和創(chuàng)造力。因此,如何在嵌入式教學(xué)中挖掘出嵌入式教學(xué)中存在的問題的根源,并以此為根據(jù)來(lái)對(duì)癥下藥,才是解決嵌入式教學(xué)中問題的關(guān)鍵。
一、嵌入式教學(xué)存在的問題
各個(gè)學(xué)校開展“嵌入式系統(tǒng)”及相關(guān)課程已經(jīng)有很多年了,所遇到的問題有很多[1],主要有以下幾點(diǎn)。
(一)“嵌入式系統(tǒng)”課程教授難度大
嵌入式課程是一門實(shí)踐性、應(yīng)用性和創(chuàng)新性很強(qiáng)的專業(yè)課程。嵌入式課程內(nèi)容的抽象化決定了嵌入式課程教學(xué)必須通過(guò)大量的實(shí)踐和動(dòng)手操作訓(xùn)練來(lái)強(qiáng)化其知識(shí)結(jié)構(gòu),僅學(xué)習(xí)芯片的基本知識(shí)而不綜合運(yùn)用軟硬件技術(shù)且動(dòng)手解決實(shí)際問題的話,就等于紙上談兵。這些抽象內(nèi)容的具體化以及如何組織大量的實(shí)踐成為學(xué)生學(xué)習(xí)以及教師授課的最大困難。
(二)學(xué)生基礎(chǔ)薄弱,學(xué)習(xí)興趣缺乏
各個(gè)學(xué)校一般在一、二年級(jí)強(qiáng)調(diào)基礎(chǔ)教育,開設(shè)了相當(dāng)多的基礎(chǔ)課程,而與嵌入式相關(guān)的基礎(chǔ)課程,即專業(yè)基礎(chǔ)課程,如“計(jì)算機(jī)技術(shù)”“半導(dǎo)體技術(shù)”等則相對(duì)較少。因此,當(dāng)大三開設(shè)“嵌入式系統(tǒng)”課程時(shí),學(xué)生并沒有嵌入式的直接知識(shí),更無(wú)感性認(rèn)識(shí),再加上課程本身難度較大,從而導(dǎo)致學(xué)生缺乏學(xué)習(xí)興趣,即使勉強(qiáng)堅(jiān)持,也會(huì)因?yàn)椴欢脑絹?lái)越多,而越來(lái)越失去學(xué)好“嵌入式系統(tǒng)”課程的信心。
(三)缺少適合的教材與實(shí)驗(yàn)儀器
目前,大多的“嵌入式系統(tǒng)”的教材以知識(shí)結(jié)構(gòu)為主線,先講解ARM的體系結(jié)構(gòu)、指令集和匯編程序,最后分析綜合應(yīng)用實(shí)例。此類教材雖然內(nèi)容比較翔實(shí),理論性教強(qiáng),但缺乏直觀性,案例較少或者只能提供一些簡(jiǎn)單的案例,且沒有考慮初學(xué)者學(xué)習(xí)嵌入式課程的特點(diǎn),使用這類教材進(jìn)行教學(xué)會(huì)導(dǎo)致學(xué)生感到學(xué)習(xí)內(nèi)容抽象、枯燥,難以理解。具體來(lái)說(shuō)就是很少有符合不同學(xué)校實(shí)際情況的教材。即使能找到較好的教材,也很難找到與其相對(duì)應(yīng)的實(shí)驗(yàn)儀器。理論與實(shí)踐不能很好結(jié)合,致使教學(xué)效果下降。
(四)實(shí)驗(yàn)形式單一,學(xué)生動(dòng)手能力弱
學(xué)生在學(xué)習(xí)嵌入式課程中重要的實(shí)踐就是課程實(shí)驗(yàn)[2]。而學(xué)生在課上實(shí)驗(yàn)過(guò)程中,大多以實(shí)驗(yàn)箱為主體,進(jìn)行理論驗(yàn)證性實(shí)驗(yàn),實(shí)驗(yàn)教學(xué)形式單一,方法簡(jiǎn)單,只需按照指導(dǎo)書上的步驟完成相同的實(shí)驗(yàn)即可,大大限制了學(xué)生應(yīng)用理論去解決實(shí)際問題的能力。此外,由于學(xué)生嵌入式基礎(chǔ)薄弱、學(xué)習(xí)無(wú)興趣,使得學(xué)生在課下很難有效地組織興趣小組來(lái)拓展實(shí)踐知識(shí)。而當(dāng)有學(xué)院、學(xué)?;蛘吒邔哟蔚碾娮痈?jìng)賽時(shí),往往由于缺乏必要知識(shí)而無(wú)法參加,致使實(shí)際鍛煉機(jī)會(huì)較少,學(xué)生的動(dòng)手能力、創(chuàng)新能力難以發(fā)揮。
二、基于開源硬件平臺(tái)的嵌入式教學(xué)策略
出于以上原因,在講授嵌入式課程時(shí),教師難教,學(xué)生難懂,長(zhǎng)此以往,最終將導(dǎo)致學(xué)生失去興趣,這些問題的存在使得嵌入式教學(xué)成為高校教學(xué)中的一大難點(diǎn)。此外,現(xiàn)在各個(gè)學(xué)校教授嵌入式系統(tǒng)原理及實(shí)踐知識(shí)的過(guò)程為原理到實(shí)踐的過(guò)程。由于在學(xué)習(xí)原理時(shí)與實(shí)踐脫離,理論知識(shí)的枯燥性,再加上嵌入式入門門檻高、學(xué)生嵌入式基礎(chǔ)差等問題的使得嵌入式課程,教學(xué)效果難以得到保障。
在高校嵌入式教學(xué)中,若能引入業(yè)界更多優(yōu)秀的系統(tǒng),不僅會(huì)給學(xué)生深入學(xué)習(xí)嵌入式知識(shí)提供更多可以選擇的平臺(tái),也會(huì)有效減緩教師授課的困難,并成為提高嵌入式課程教授效果的一個(gè)有效手段。
開源軟硬件平臺(tái)Arduino無(wú)疑是很好的選擇[3]。Arduino編程簡(jiǎn)單,軟件、硬件等資源均為開源,且在學(xué)習(xí)過(guò)程中需要的嵌入式知識(shí)較少,只需要掌握 C 語(yǔ)言即可完成復(fù)雜的系統(tǒng)設(shè)計(jì)。此外,由于Arduino Due 本身的核心是ARM,即Atmel公司的SAM3X8E內(nèi)核,所以二者本質(zhì)上是一致的。將其引入,能在加強(qiáng)學(xué)生感性認(rèn)識(shí),增強(qiáng)學(xué)生興趣中起到關(guān)鍵的作用。在將開源軟硬件平臺(tái)Arduino引入到“嵌入式系統(tǒng)”課程的教學(xué)過(guò)程中[4],主要考慮了以下幾個(gè)方面。
(一)教學(xué)方法:教會(huì)學(xué)生學(xué)習(xí)
大學(xué)的學(xué)習(xí)主要是自主學(xué)習(xí),要想學(xué)生能夠更好地自主學(xué)習(xí),就要求教師在教學(xué)的過(guò)程中不僅僅教授知識(shí),更重要的是培養(yǎng)學(xué)生學(xué)習(xí)的興趣、教授學(xué)生學(xué)習(xí)方法,讓學(xué)生愛學(xué)習(xí)、會(huì)學(xué)習(xí),從而提高學(xué)生學(xué)習(xí)的主動(dòng)性及學(xué)習(xí)的效率。特別是“嵌入式系統(tǒng)”這門課程,如果能夠讓學(xué)生DIY一些小制作,就會(huì)充分激發(fā)學(xué)生的積極性,同時(shí)也會(huì)給他們帶來(lái)極大的自信,鍛煉他們自我解決問題的能力。由于Arduino具有編程簡(jiǎn)單、網(wǎng)絡(luò)資源多、設(shè)計(jì)模塊化等等優(yōu)點(diǎn),對(duì)于初學(xué)者或者剛接觸的人,只要略加指導(dǎo),就能夠很快上手,并制作出比較“炫”的東西來(lái)。因此,使用Arduino平臺(tái)能夠從學(xué)習(xí)方法上改變過(guò)去先學(xué)理論再實(shí)踐的過(guò)程,從而有效地提高了學(xué)生學(xué)習(xí)興趣。
(二)整合教學(xué)內(nèi)容
教學(xué)內(nèi)容的改革是嵌入式課程提高教學(xué)效果的核心。由于Arduino開源硬件平臺(tái)編程比較簡(jiǎn)單,設(shè)計(jì)硬件知識(shí)較少,因此在教學(xué)內(nèi)容上進(jìn)行了相應(yīng)的改變,拋棄了課程教授初期就講授晦澀難懂的ARM的體系結(jié)構(gòu)、指令集和匯編程序等原理知識(shí),減少了由于不了解、不懂而產(chǎn)生的厭學(xué)問題。在開課之初,使用Arduino進(jìn)行教學(xué),教學(xué)內(nèi)容的重點(diǎn)放在Arduino中操作硬件的函數(shù)運(yùn)用上,而基礎(chǔ)較高硬件編程知識(shí)是被函數(shù)屏蔽的。此外,教師可以在這個(gè)階段介紹一些器件知識(shí),如光敏電阻的性質(zhì)、按鍵的實(shí)現(xiàn)原理等等,一旦有一定積累,就可以轉(zhuǎn)向ARM的教學(xué)了。由于Arduino內(nèi)容的緩沖,使得ARM知識(shí)不會(huì)顯得突兀,從而在一定程度上緩解了學(xué)生對(duì)嵌入式無(wú)感性認(rèn)識(shí)等問題。
(三)合理安排實(shí)驗(yàn)案例
“嵌入式系統(tǒng)”這門課程與其他課程最大的區(qū)別就是實(shí)踐的問題。實(shí)驗(yàn)是學(xué)生學(xué)好這門課程的關(guān)鍵,只有通過(guò)自己動(dòng)手實(shí)踐,才能真正理解所學(xué)到的知識(shí)點(diǎn)。而傳統(tǒng)的實(shí)驗(yàn)教學(xué)形式過(guò)于單一、呆板,學(xué)生只需按照指導(dǎo)書的規(guī)定步驟機(jī)械地完成實(shí)驗(yàn),沒有思考,效率不高。為了提高學(xué)生的創(chuàng)新能力,應(yīng)在實(shí)驗(yàn)中加入更多的設(shè)計(jì)環(huán)節(jié),給學(xué)生制定實(shí)驗(yàn)題目,最大限度地調(diào)動(dòng)和發(fā)揮學(xué)生在實(shí)驗(yàn)中的主體作用,才能提高學(xué)生的實(shí)踐能力和應(yīng)用能力。在這一方面,由于Arduino開源硬件平臺(tái)的相關(guān)資源都是開源的[5],可發(fā)揮教師及學(xué)生的能動(dòng)性,定制出適合本院學(xué)生的實(shí)驗(yàn)案例。
基于以上分析,將Arduino引入到嵌入式教學(xué)中,能夠有效緩解、甚至解決傳統(tǒng)“嵌入式系統(tǒng)”教學(xué)中入門難、學(xué)生容易失去興趣的問題。在教學(xué)中,先學(xué)習(xí)Arduino知識(shí),讓學(xué)生體會(huì)嵌入式學(xué)習(xí)的樂趣;然后在實(shí)踐中指出Arduino編程中存在的問題、分析問題的本質(zhì),繼而學(xué)習(xí)ARM知識(shí)來(lái)解決這些問題,即深入了解Arduino、掌握嵌入式編程原理;最后,再利用嵌入式原理回到嵌入式實(shí)踐,也就是ARM的實(shí)踐。那么,本文提出的嵌入式教學(xué)方法為從實(shí)踐到原理再到實(shí)踐的過(guò)程,而且實(shí)踐—原理—實(shí)踐的反復(fù)過(guò)程使得理論的學(xué)習(xí)更加生動(dòng)、更加有利于理論聯(lián)系實(shí)際。同時(shí),Arduino的引入可在培養(yǎng)學(xué)生系統(tǒng)設(shè)計(jì)、創(chuàng)新能力、團(tuán)隊(duì)意識(shí)等方面起到積極的作用。
當(dāng)然,引入Arduino也存在以下幾個(gè)方面的問題需要解決:(1)需要研究編寫適合各個(gè)學(xué)院本身教學(xué)特點(diǎn)的理論教學(xué)資源;(2)如何將Arduino知識(shí)逐漸地深入,拓展到ARM上來(lái),即怎樣過(guò)渡的問題;(3)如何定制出與理論教學(xué)資源相配套的實(shí)驗(yàn)教學(xué)資源。雖然以上提出了一些尚未解決的問題,但由于Adruino資源豐富,再加上本身為開源平臺(tái),可借鑒的資料非常多,這也給解決以上問題帶來(lái)很多便利。
通過(guò)在“嵌入式系統(tǒng)”課程中引入Arduino并結(jié)合已學(xué)知識(shí),能夠讓學(xué)生在接觸課程之初就開始進(jìn)行實(shí)際應(yīng)用工程設(shè)計(jì),從而極大地調(diào)動(dòng)了學(xué)生的自主學(xué)習(xí)積極性,在轉(zhuǎn)入ARM的學(xué)習(xí)之前,采用工程引導(dǎo)的方式,提出問題、并給出解決問題的方式,也能夠使學(xué)習(xí)過(guò)程有一定的連貫性。此外,由于一直使用C語(yǔ)言開發(fā),為后面的ARM學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ),使學(xué)生在語(yǔ)言與硬件方面有了較好的結(jié)合,避免了直接學(xué)習(xí)ARM的突兀性??傊?,Arduino的引入,不僅可以讓學(xué)生的理論知識(shí)得到更好的實(shí)踐,還有效地培養(yǎng)了學(xué)生的應(yīng)用創(chuàng)新能力,以此作為培養(yǎng)應(yīng)用型本科教育模式是值得研究的。
參考文獻(xiàn):
[1]王宇英,谷建華,周興社.操作系統(tǒng)教學(xué)探索及其在嵌入
式教學(xué)中的實(shí)踐[J].計(jì)算機(jī)教育,2011,(21).
[2]李進(jìn).實(shí)驗(yàn)教學(xué)重在過(guò)程[J].實(shí)驗(yàn)室研究與探索,2009,(9).
[3]凱文·布里斯.Arduino開源硬件[J].科技創(chuàng)業(yè),2011,(5).
[4]施智雄.Arduino 在大學(xué)工科教學(xué)中應(yīng)用探索[J].西昌
學(xué)院學(xué)報(bào):自然科學(xué)版,2012,(4).
[5]楊靜等.基于開源技術(shù)的學(xué)生實(shí)踐與創(chuàng)新能力培養(yǎng)[J].
計(jì)算機(jī)教育,2012,(23).