李學輝,劉三榮,張 強
(棗莊學院信息科學與工程學院,山東棗莊 277160)
計算機技術已從初期的科學計算及信息處理進入到以物聯網、移動互聯、大數據與云計算為主要特征的新時代,新的商業模式和應用依賴于各類復雜的硬件系統和軟件系統。創新是計算機行業人才的一致追求[1],實踐創新培養模式對物聯網專業的人才培養具有十分重要的意義。工程教育認證要求學生具有針對復雜工程問題設計解決方案的能力[2]。嵌入式系統設計涉及到計算機、電子、網絡、通信等諸多專業知識,是一門多學科交叉的綜合性課程,該課程突出特點是軟硬件緊密結合,是訓練軟硬件綜合設計的良好載體。隨著物聯網技術的發展,該課程已成為計算機、自動化和電子等專業重點建設課程[3]。
嵌入式系統課程具有很強的工程性、系統性和應用性,具有軟硬件結合特性,實踐性很強。為培養學生軟硬件綜合設計和開發能力,許多高校相繼開設了該課程[4],但是多數高校以講授加固定實驗的方式教授本課程,不能有效提高學生的工程實踐能力。無論是傳統的教師課堂講授還是MOOC 線上教學都是重理論輕應用,如何整合線下課堂和線上MOOC 優勢[5]提升學生的綜合實踐能力,許斌等[6]提出引入雙階段目標行為導向法,分層次、分階段培養學生應用各類型基礎知識解決實際問題的能力。這種方法對純軟件開發課程效果較好,但對于嵌入式系統開發這種軟硬結合、知識點廣泛的課程效果不夠明顯。嵌入式系統設計課程的目的是提升學生的工程實踐能力,但是當前課程的講授方式不利于學生工程實踐能力提升。
嵌入式系統課程內容非常廣泛[7],既包括理論又包括實踐;不僅包括軟開發還包括硬件開發,以及軟硬件開發過程的調試技能。其中硬件開發知識包括繪制原理圖、layout 板位圖、布線、處理器及設備選型、硬件調試等;軟件開發包括驅動開發、軟件系統設計、應用程序開發、系統API 等,軟件開發相關技能包括內核編譯、模塊編譯、修改及編寫makefile、模塊加載及卸載、文件系統、交叉編譯、系統調用等;系統調試過程涉及眾多開發工具使用,其中硬件開發工具包括J-link、串口、示波器、萬用表等;軟件開發工具包括MDK、Keil、ADS、VMWare 等。多數高校都是將其作為一門課講授,沒有先導課程和后續課程,導致該課程出現知識量豐富而課時有限的問題。
嵌入式系統設計課程將操作系統原理、應用程序開發與調試、硬件結構和接口驅動設計等多部分內容融為一體,知識點廣而繁雜,課程難度大,教材內容也相應分成幾個部分,各部分之間關聯性較小。教材每一部分知識點一般是從簡單到復雜,循序漸進安排,同類知識放在一個章節,知識內容的相關性即基礎相關性較強,但是工程關聯性較弱。從工程的角度看,這些知識單一、零散,幾乎沒有任何關系。按照教材順序講授只能零散完成各個知識點講解,無法使學生整體認識及有效理解知識點之間的關系,無法將知識點關聯綜合應用。
當前課程實驗都是在實驗箱上進行,每節實驗都是驗證上節理論課所學知識點,通過實驗使學生更直觀地理解理論知識,學生按照實驗指導按部就班一步步完成。每個實驗功能單一,知識關聯性弱。如講授GPIO 理論知識之后,會有一個點亮LED 燈的實驗,該實驗目的僅僅是為了驗證GPIO 的功能及最簡單的使用方法,但是項目中更復雜的情況例如使能芯片,使用GPIO 控制一對多的SPI 通信等工程中最常見的GPIO 應用都沒有涉及。學生不能整體理解所學知識點在整個項目中的作用,學習效果不好。
MOOC 作為一種新型的網絡教學模式,以課程易于使用、工具資源多樣化、課程受眾面廣等特點備受青睞,同時讓學習者公平享受優質的教學資源,彌補了線下課堂教學的不足[8-9]。嵌入式系統設計知識體系龐大而課時較少,為充分利用課堂時間,部分理論知識、實驗演示等各個知識點錄制成短視頻放到MOOC 上;學生課下通過MOOC 學習,使傳統課堂知識點講授移到課前[10]。課堂采用翻轉課堂方式,督促學生課下學習[11]。
理論知識分成較難的原理性知識及較易的應用性知識兩類,較易的應用性知識點采用翻轉課堂,原理性知識點采用教師講授。實驗課每個小組完成工程項目的不同功能,實驗開始前教師先從總體上介紹整個項目功能,分配實驗任務,然后每個小組理解各自實驗在整個項目中的作用并完成實驗,實驗完成后每個小組進行講解,學生對項目整體有更深理解。課堂組織流程如圖1 所示。

圖1 課堂組織思維流程
以整體項目的自動調節屏幕亮度這一功能為例,實驗涉及到光照傳感器、LCD 顯示,在傳感器控制中涉及到I2C通信、GPIO 控制、驅動開發;在LCD 顯示中涉及LCD 顯示原理、LCD 背光控制、PWM 原理。I2C 協議、GPIO 原理以及LCD 顯示原理是較難的知識點,這部分教師講授;PWM概念、PWM 控制、LCD 背光控制、GPIO 使用這些知識相對容易,使用翻轉課堂形式學習。每個學生講授一部分知識,如果講述過程中有錯誤或者描述不清楚的地方,教師記錄下來并在學生講完后重講。講授完后通過提問了解課堂反饋,最后串聯這些知識點并說明其在項目中的應用。實驗課上教師先把自動調節屏幕亮度這一功能分解成多個模塊,例如I2C 通信模塊、光感傳感器控制模塊、PWM 生成模塊、LCD 背光控制模塊、GPIO 控制模塊等,每個小組完成一個模塊。每個小組完成后自行驗證、演示。如果有問題由教師指導修改,并再次驗證或演示,各小組講述實驗。最后,教師指導合并所有小組實驗,完成整個實驗。
工程項目作為案例,可以培養學生發現、分析、解決問題的創造性思維[12]。項目教學具有很強的綜合性與實踐性[13],使用完備的項目進行教學,調整教材知識點順序,將工程中相關聯的知識點調整到一起講授,一次課講授的知識點能夠完成項目的某一個或某幾個功能,一次實驗完成項目的某一個或某幾個小的關聯性強的項目功能,最終多個實驗組合完成項目所有功能,同時講授完所有知識點。通過對一個項目功能的增刪以及適當修改,可以把嵌入式方向各個知識點串聯起來,通過具體應用使學生形成整體清晰的知識脈絡。項目作為理論教學主體的流程如圖2所示。

圖2 項目教學流程
首先選擇適當項目。選取市立醫院用藥系統信息采集器,以該信息采集器開發作為項目實例。對采集器功能進行一定的增刪及修改,例如增加自動調節屏幕亮度、刪除語音控制功能、剝離并獨立每個功能、簡化部分功能等,使其適合學生實驗。然后分解整個項目,分別講解各部分功能,根據項目功能調整知識點講授順序,按照調整后的順序講授相關知識點原理及應用方法;講授完原理及應用方法之后,再把知識點結合到項目中,舉例項目中的應用,最后將各個功能整合為整個項目,并根據知識點應用進行延伸。
原來的實驗都是驗證所學知識點,學生無法直接理解所學知識點在實際工程中的應用,而工程項目作為實驗可使學生運用所學知識開發項目某部分功能,快速了解各知識點在項目中的作用,理清開發流程。通過做中學的方式,一方面提高學生的工程能力,另一方面激發學生的學習興趣,使學生更喜歡學。每次實驗完成項目的一部分功能,同時驗證相關知識點,進行項目教學符合工程教育理念。
以前述自動調整屏幕亮度作為實驗為例,學生首先要通過原理圖查看LCD 使用timer 的PWM,光感傳感器使用I2C 和GPIO,其次開發驅動控制光傳感器及timer,最后開發應用程序。該項目用到的知識點包括原理圖閱讀、驅動開發、驅動加載、內核編譯、下載及調試、應用開發、Linux系統框架及原理、系統API、交叉編譯、應用程序安裝等一系列知識。本實驗涉及的理論知識點有:I2C 通信原理、GPIO 控制及原理、LCD 背光控制原理、LCD 顯示原理以及PWM 控制原理。通過實驗,學生不僅掌握了這些知識點原理,而且直觀了解了這些知識點在項目中的應用,以及在項目中如何開發。項目知識點如圖3 所示。

圖3 項目知識點
為檢驗改革效果,對2017、2016 和2015 級物聯網專業及智能物聯專業學生的成績及課程設計得分情況進行對比。其中2017 級物聯專業及智能物聯專業使用改革后的項目教學,2016、2015 級物聯網專業及智能物聯專業使用改革前按照教材順序按部就班的教學方式。
將2017 級與2016 和2015 級學生總成績各分數段對比,統計各分數段占總人數的比例,對比結果如圖4 所示(彩圖掃描OSID 碼可見)。

圖4 學習成績對比
本課程各年級學生人數分別為:2017 級85 人,2016級88 人,2015 級86 人。從對比結果可以看出,相對2016級及2015 級,2017 級高分學生數量明顯較多,其中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 分。
課程設計比卷面考試更能反映學生工程實踐能力,本門課期末考核方式為課程設計。對課程設計每個評分項進行詳細對比,評分標準及占比如下:①項目功能點15%;②每個功能完成情況10%;③項目復雜度10%;④項目整體完整度35%;⑤項目創新性15%;⑥項目實用性15%。總分100 分,各項100 分。各項平均成績具體對比情況如圖5 所示(彩圖掃描OSID 碼可見)。

圖5 課程設計各項平均成績
相對2016 級和2015 級課程設計,2017 級學生課程設計復雜度分別提高了17.6 和16.3 分,完整度方面分別提高12.3 和13.4 分,實用性方面分別提高了13.2 和14.4分;期末平均成績分別提高了8.7 和9.6 分。并且2017 級學生課程設計中,有部分作品完成了商用項目中較獨立、完整的功能,學生動手能力得到明顯提高。
針對嵌入式系統設計課程知識點多,教學方式不利于培養學生實踐動手能力的情況,本文通過翻轉課堂、項目教學等教學手段提高學生的工程實踐能力。通過對比發現學生的成績改革后比改革前有明顯提高,動手能力明顯增強。但是,該教學方式需要占用學生更多的課下時間,教師需要花費更多時間了解新項目以應對技術更新及新技術發展,在提高教學效率、減輕學生負擔方面還有待繼續研究。