李學(xué)輝,劉三榮,張 強
(棗莊學(xué)院信息科學(xué)與工程學(xué)院,山東棗莊 277160)
計算機技術(shù)已從初期的科學(xué)計算及信息處理進入到以物聯(lián)網(wǎng)、移動互聯(lián)、大數(shù)據(jù)與云計算為主要特征的新時代,新的商業(yè)模式和應(yīng)用依賴于各類復(fù)雜的硬件系統(tǒng)和軟件系統(tǒng)。創(chuàng)新是計算機行業(yè)人才的一致追求[1],實踐創(chuàng)新培養(yǎng)模式對物聯(lián)網(wǎng)專業(yè)的人才培養(yǎng)具有十分重要的意義。工程教育認證要求學(xué)生具有針對復(fù)雜工程問題設(shè)計解決方案的能力[2]。嵌入式系統(tǒng)設(shè)計涉及到計算機、電子、網(wǎng)絡(luò)、通信等諸多專業(yè)知識,是一門多學(xué)科交叉的綜合性課程,該課程突出特點是軟硬件緊密結(jié)合,是訓(xùn)練軟硬件綜合設(shè)計的良好載體。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,該課程已成為計算機、自動化和電子等專業(yè)重點建設(shè)課程[3]。
嵌入式系統(tǒng)課程具有很強的工程性、系統(tǒng)性和應(yīng)用性,具有軟硬件結(jié)合特性,實踐性很強。為培養(yǎng)學(xué)生軟硬件綜合設(shè)計和開發(fā)能力,許多高校相繼開設(shè)了該課程[4],但是多數(shù)高校以講授加固定實驗的方式教授本課程,不能有效提高學(xué)生的工程實踐能力。無論是傳統(tǒng)的教師課堂講授還是MOOC 線上教學(xué)都是重理論輕應(yīng)用,如何整合線下課堂和線上MOOC 優(yōu)勢[5]提升學(xué)生的綜合實踐能力,許斌等[6]提出引入雙階段目標行為導(dǎo)向法,分層次、分階段培養(yǎng)學(xué)生應(yīng)用各類型基礎(chǔ)知識解決實際問題的能力。這種方法對純軟件開發(fā)課程效果較好,但對于嵌入式系統(tǒng)開發(fā)這種軟硬結(jié)合、知識點廣泛的課程效果不夠明顯。嵌入式系統(tǒng)設(shè)計課程的目的是提升學(xué)生的工程實踐能力,但是當(dāng)前課程的講授方式不利于學(xué)生工程實踐能力提升。
嵌入式系統(tǒng)課程內(nèi)容非常廣泛[7],既包括理論又包括實踐;不僅包括軟開發(fā)還包括硬件開發(fā),以及軟硬件開發(fā)過程的調(diào)試技能。其中硬件開發(fā)知識包括繪制原理圖、layout 板位圖、布線、處理器及設(shè)備選型、硬件調(diào)試等;軟件開發(fā)包括驅(qū)動開發(fā)、軟件系統(tǒng)設(shè)計、應(yīng)用程序開發(fā)、系統(tǒng)API 等,軟件開發(fā)相關(guān)技能包括內(nèi)核編譯、模塊編譯、修改及編寫makefile、模塊加載及卸載、文件系統(tǒng)、交叉編譯、系統(tǒng)調(diào)用等;系統(tǒng)調(diào)試過程涉及眾多開發(fā)工具使用,其中硬件開發(fā)工具包括J-link、串口、示波器、萬用表等;軟件開發(fā)工具包括MDK、Keil、ADS、VMWare 等。多數(shù)高校都是將其作為一門課講授,沒有先導(dǎo)課程和后續(xù)課程,導(dǎo)致該課程出現(xiàn)知識量豐富而課時有限的問題。
嵌入式系統(tǒng)設(shè)計課程將操作系統(tǒng)原理、應(yīng)用程序開發(fā)與調(diào)試、硬件結(jié)構(gòu)和接口驅(qū)動設(shè)計等多部分內(nèi)容融為一體,知識點廣而繁雜,課程難度大,教材內(nèi)容也相應(yīng)分成幾個部分,各部分之間關(guān)聯(lián)性較小。教材每一部分知識點一般是從簡單到復(fù)雜,循序漸進安排,同類知識放在一個章節(jié),知識內(nèi)容的相關(guān)性即基礎(chǔ)相關(guān)性較強,但是工程關(guān)聯(lián)性較弱。從工程的角度看,這些知識單一、零散,幾乎沒有任何關(guān)系。按照教材順序講授只能零散完成各個知識點講解,無法使學(xué)生整體認識及有效理解知識點之間的關(guān)系,無法將知識點關(guān)聯(lián)綜合應(yīng)用。
當(dāng)前課程實驗都是在實驗箱上進行,每節(jié)實驗都是驗證上節(jié)理論課所學(xué)知識點,通過實驗使學(xué)生更直觀地理解理論知識,學(xué)生按照實驗指導(dǎo)按部就班一步步完成。每個實驗功能單一,知識關(guān)聯(lián)性弱。如講授GPIO 理論知識之后,會有一個點亮LED 燈的實驗,該實驗?zāi)康膬H僅是為了驗證GPIO 的功能及最簡單的使用方法,但是項目中更復(fù)雜的情況例如使能芯片,使用GPIO 控制一對多的SPI 通信等工程中最常見的GPIO 應(yīng)用都沒有涉及。學(xué)生不能整體理解所學(xué)知識點在整個項目中的作用,學(xué)習(xí)效果不好。
MOOC 作為一種新型的網(wǎng)絡(luò)教學(xué)模式,以課程易于使用、工具資源多樣化、課程受眾面廣等特點備受青睞,同時讓學(xué)習(xí)者公平享受優(yōu)質(zhì)的教學(xué)資源,彌補了線下課堂教學(xué)的不足[8-9]。嵌入式系統(tǒng)設(shè)計知識體系龐大而課時較少,為充分利用課堂時間,部分理論知識、實驗演示等各個知識點錄制成短視頻放到MOOC 上;學(xué)生課下通過MOOC 學(xué)習(xí),使傳統(tǒng)課堂知識點講授移到課前[10]。課堂采用翻轉(zhuǎn)課堂方式,督促學(xué)生課下學(xué)習(xí)[11]。
理論知識分成較難的原理性知識及較易的應(yīng)用性知識兩類,較易的應(yīng)用性知識點采用翻轉(zhuǎn)課堂,原理性知識點采用教師講授。實驗課每個小組完成工程項目的不同功能,實驗開始前教師先從總體上介紹整個項目功能,分配實驗任務(wù),然后每個小組理解各自實驗在整個項目中的作用并完成實驗,實驗完成后每個小組進行講解,學(xué)生對項目整體有更深理解。課堂組織流程如圖1 所示。
圖1 課堂組織思維流程
以整體項目的自動調(diào)節(jié)屏幕亮度這一功能為例,實驗涉及到光照傳感器、LCD 顯示,在傳感器控制中涉及到I2C通信、GPIO 控制、驅(qū)動開發(fā);在LCD 顯示中涉及LCD 顯示原理、LCD 背光控制、PWM 原理。I2C 協(xié)議、GPIO 原理以及LCD 顯示原理是較難的知識點,這部分教師講授;PWM概念、PWM 控制、LCD 背光控制、GPIO 使用這些知識相對容易,使用翻轉(zhuǎn)課堂形式學(xué)習(xí)。每個學(xué)生講授一部分知識,如果講述過程中有錯誤或者描述不清楚的地方,教師記錄下來并在學(xué)生講完后重講。講授完后通過提問了解課堂反饋,最后串聯(lián)這些知識點并說明其在項目中的應(yīng)用。實驗課上教師先把自動調(diào)節(jié)屏幕亮度這一功能分解成多個模塊,例如I2C 通信模塊、光感傳感器控制模塊、PWM 生成模塊、LCD 背光控制模塊、GPIO 控制模塊等,每個小組完成一個模塊。每個小組完成后自行驗證、演示。如果有問題由教師指導(dǎo)修改,并再次驗證或演示,各小組講述實驗。最后,教師指導(dǎo)合并所有小組實驗,完成整個實驗。
工程項目作為案例,可以培養(yǎng)學(xué)生發(fā)現(xiàn)、分析、解決問題的創(chuàng)造性思維[12]。項目教學(xué)具有很強的綜合性與實踐性[13],使用完備的項目進行教學(xué),調(diào)整教材知識點順序,將工程中相關(guān)聯(lián)的知識點調(diào)整到一起講授,一次課講授的知識點能夠完成項目的某一個或某幾個功能,一次實驗完成項目的某一個或某幾個小的關(guān)聯(lián)性強的項目功能,最終多個實驗組合完成項目所有功能,同時講授完所有知識點。通過對一個項目功能的增刪以及適當(dāng)修改,可以把嵌入式方向各個知識點串聯(lián)起來,通過具體應(yīng)用使學(xué)生形成整體清晰的知識脈絡(luò)。項目作為理論教學(xué)主體的流程如圖2所示。
圖2 項目教學(xué)流程
首先選擇適當(dāng)項目。選取市立醫(yī)院用藥系統(tǒng)信息采集器,以該信息采集器開發(fā)作為項目實例。對采集器功能進行一定的增刪及修改,例如增加自動調(diào)節(jié)屏幕亮度、刪除語音控制功能、剝離并獨立每個功能、簡化部分功能等,使其適合學(xué)生實驗。然后分解整個項目,分別講解各部分功能,根據(jù)項目功能調(diào)整知識點講授順序,按照調(diào)整后的順序講授相關(guān)知識點原理及應(yīng)用方法;講授完原理及應(yīng)用方法之后,再把知識點結(jié)合到項目中,舉例項目中的應(yīng)用,最后將各個功能整合為整個項目,并根據(jù)知識點應(yīng)用進行延伸。
原來的實驗都是驗證所學(xué)知識點,學(xué)生無法直接理解所學(xué)知識點在實際工程中的應(yīng)用,而工程項目作為實驗可使學(xué)生運用所學(xué)知識開發(fā)項目某部分功能,快速了解各知識點在項目中的作用,理清開發(fā)流程。通過做中學(xué)的方式,一方面提高學(xué)生的工程能力,另一方面激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生更喜歡學(xué)。每次實驗完成項目的一部分功能,同時驗證相關(guān)知識點,進行項目教學(xué)符合工程教育理念。
以前述自動調(diào)整屏幕亮度作為實驗為例,學(xué)生首先要通過原理圖查看LCD 使用timer 的PWM,光感傳感器使用I2C 和GPIO,其次開發(fā)驅(qū)動控制光傳感器及timer,最后開發(fā)應(yīng)用程序。該項目用到的知識點包括原理圖閱讀、驅(qū)動開發(fā)、驅(qū)動加載、內(nèi)核編譯、下載及調(diào)試、應(yīng)用開發(fā)、Linux系統(tǒng)框架及原理、系統(tǒng)API、交叉編譯、應(yīng)用程序安裝等一系列知識。本實驗涉及的理論知識點有:I2C 通信原理、GPIO 控制及原理、LCD 背光控制原理、LCD 顯示原理以及PWM 控制原理。通過實驗,學(xué)生不僅掌握了這些知識點原理,而且直觀了解了這些知識點在項目中的應(yīng)用,以及在項目中如何開發(fā)。項目知識點如圖3 所示。
圖3 項目知識點
為檢驗改革效果,對2017、2016 和2015 級物聯(lián)網(wǎng)專業(yè)及智能物聯(lián)專業(yè)學(xué)生的成績及課程設(shè)計得分情況進行對比。其中2017 級物聯(lián)專業(yè)及智能物聯(lián)專業(yè)使用改革后的項目教學(xué),2016、2015 級物聯(lián)網(wǎng)專業(yè)及智能物聯(lián)專業(yè)使用改革前按照教材順序按部就班的教學(xué)方式。
將2017 級與2016 和2015 級學(xué)生總成績各分數(shù)段對比,統(tǒng)計各分數(shù)段占總?cè)藬?shù)的比例,對比結(jié)果如圖4 所示(彩圖掃描OSID 碼可見)。
圖4 學(xué)習(xí)成績對比
本課程各年級學(xué)生人數(shù)分別為:2017 級85 人,2016級88 人,2015 級86 人。從對比結(jié)果可以看出,相對2016級及2015 級,2017 級高分學(xué)生數(shù)量明顯較多,其中90 分以上占比分別提高8.2% 和5.9%,80-90 分占比分別提高23.0% 和24.3%,低分中60-70 分的分別減少6.2% 和7.9%,不及格占比分別降低3.2% 和4.6%。3 個年級平均成績:2017 級為84.9 分,2016 級為74.5 分,2015 級為73.4分,從平均成績看2017 級比2016 級和2015 級分別高出10.4 分和11.5 分。
課程設(shè)計比卷面考試更能反映學(xué)生工程實踐能力,本門課期末考核方式為課程設(shè)計。對課程設(shè)計每個評分項進行詳細對比,評分標準及占比如下:①項目功能點15%;②每個功能完成情況10%;③項目復(fù)雜度10%;④項目整體完整度35%;⑤項目創(chuàng)新性15%;⑥項目實用性15%??偡?00 分,各項100 分。各項平均成績具體對比情況如圖5 所示(彩圖掃描OSID 碼可見)。
圖5 課程設(shè)計各項平均成績
相對2016 級和2015 級課程設(shè)計,2017 級學(xué)生課程設(shè)計復(fù)雜度分別提高了17.6 和16.3 分,完整度方面分別提高12.3 和13.4 分,實用性方面分別提高了13.2 和14.4分;期末平均成績分別提高了8.7 和9.6 分。并且2017 級學(xué)生課程設(shè)計中,有部分作品完成了商用項目中較獨立、完整的功能,學(xué)生動手能力得到明顯提高。
針對嵌入式系統(tǒng)設(shè)計課程知識點多,教學(xué)方式不利于培養(yǎng)學(xué)生實踐動手能力的情況,本文通過翻轉(zhuǎn)課堂、項目教學(xué)等教學(xué)手段提高學(xué)生的工程實踐能力。通過對比發(fā)現(xiàn)學(xué)生的成績改革后比改革前有明顯提高,動手能力明顯增強。但是,該教學(xué)方式需要占用學(xué)生更多的課下時間,教師需要花費更多時間了解新項目以應(yīng)對技術(shù)更新及新技術(shù)發(fā)展,在提高教學(xué)效率、減輕學(xué)生負擔(dān)方面還有待繼續(xù)研究。