林 峰,張澤旺,劉 虹
(廈門理工學院 光電與通信工程學院,福建 廈門 361024)
近年來,我國的嵌入式系統行業發展迅速,社會對嵌入式系統開發方面人才的需求相當大,因此幾乎所有高校的計算機專業均開設嵌入式系統開發與應用課程[1]。嵌入式操作系統是嵌入式系統的軟件平臺,是嵌入式系統重要的組成部分,嵌入式操作系統的教學在嵌入式方向的教學中起著重要的作用。
在傳統的嵌入式操作系統教學中,教學內容以講授操作系統的基本原理(包括進程管理、進程間通信、文件管理、存儲管理和內核裁剪等理論知識)為主,各個知識點比較零散,缺乏關聯性。在教學方法上,多以教師講授和灌輸為主,如教師大多以知識點來組織教學,通過一些小例程對知識點進行驗證,不能將各個知識點有機串聯起來,這種教學方法缺乏實用的工程背景,導致學生“見山是山,見水是水”,只能被動接受,其吸收效率低下,更無法將所學知識轉化為技能。以培養應用型人才為目標的地方院校,更要提高課程的應用性和實踐性,教學內容上更偏重技術的應用,教學方法上更加強實踐教學、提高學生的動手能力。在課時有限的情況下,應當想方設法將理論和實踐有效結合起來,強化理論的應用,提高學生的實踐創新能力和工程素養。
最重要的是需要選定合適的嵌入式操作系統。目前,嵌入式操作系統繁多,教學上常用的有 uCOS-II[2]、Linux[3]和 WinCE[4]。 鑒 于 Linux在行業應用的廣泛性、開源免費、支持眾多硬件平臺、驅動完善等特點,本課程選取Linux作為操作系統平臺。
通過本課程的學習,學生應了解嵌入式操作系統的基本概念、熟悉Linux的基本命令和基本操作、掌握Linux的C語言編程基礎和Linux應用程序開發。具體說,學生應了解shell的概念;熟悉Linux命令的格式以及常見的系統管理、文件目錄、打包壓縮、網絡等命令;掌握vi的操作方法;理解GCC編譯器的4個階段以及常見的選項的含義;理解Makefile的規則;能夠編寫簡單的Makefile;理解系統調用的概念;掌握Linux下文件編程、進程控制、進程通信、多線程編程和網絡編程中相關的概念和原理,并能利用相關的系統調用函數開發應用程序。
與傳統的教學方法相比, 基于項目驅動的教學能夠調動學生學習的積極性, 使學生能夠在項目開發過程中自主發現問題、分析問題,進而本能地使用課程知識解決問題[5]。基于項目驅動的教學需要解決以下3個問題。
教學項目的設計是本教學改革的重要基礎。“設計良好的項目是教學成功的一半”,此話并不過分。項目應該具有MACPE的特征,其具體含義包括以下幾點:①M(Moderate),項目的工作量應適量,使中等學生能夠在規定的教學時間內完成。教學項目的選擇不能太大, 以防止在教學大綱規定的學時內無法完成項目的開發;選擇的項目也不能太小,否則就無法激起學生開發的熱情,也不能實現教學目標[1];②A(Actual),項目應該具有實際意義,項目不是教師憑空設想出來的,應該是學生日常生活中喜聞樂見的實際產品;③C(Complete),項目應該緊扣教學大綱,能夠完整涵蓋大綱所規定的教學內容,滿足課程知識點的構建[5];④P(Progressive),項目應該具有遞進性,項目的功能可以逐步完善,從簡單到復雜,以便教學和實踐的開展;⑤E(Extensible),項目應該是可擴展的,除了規定的功能,學生可以發揮主觀能動性,根據自己的能力擴展項目功能,實現思維和能力的創新。
本文所設計的項目為簡易網絡聊天程序,程序分為服務器和客戶端。服務器開啟后,等待客戶端的注冊或者登錄,客戶端可以向服務器注冊賬戶,服務器保存賬戶的用戶名和密碼信息??蛻舳说卿浄掌鲿r,服務器需檢測用戶和密碼是否正確;登錄后,客戶端可以查看當前在線用戶列表,并與選擇某個在線用戶進行雙向的聊天。為了實時檢測客戶端用戶的在線與否,服務器還具有心跳機制。
該項目符合MACPE特性,具有很強的合理性。在網絡發達的今天,即時聊天程序非常常見。本項目是即時聊天程序在局域網內實現的一個模型,具有實際意義。項目完整性要求完成該項目,需具備文件操作、進程間通信(如信號、網絡編程、多線程編程、進程控制)等多方面的知識。此外,為了更好的編譯程序,需要掌握GCC和Makefile相應知識;為了在Linux上開發該項目,需要掌握Linux的基本操作。這些都屬于規定的教學內容,因此可以將教學內容有機融入到項目實施過程中,并形成一個整體。項目的遞進性體現在可以按照順序逐步實現。首先,實現客戶端與服務器的連接與數據的收發功能(即功能1);其次,實現在服務器端實現賬戶信息的保存與比較功能(即功能2);最后,實現多個客戶端無阻塞訪問服務器等功能(即功能3)。其余功能不一一列舉。每種功能都是在前面功能的基礎上進行修改完善的。這些功能的實現方法與教學內容也是相互對應的(見表1)。以這種遞進式的方法完成項目功能,符合多數人的習慣,易為學生所接受,能提高學生學習的積極性。項目的擴展性體現在:學生如果學有余力,就可以對項目進行擴展,實現文件的發送與接收、聊天記錄的保存與讀取、設計GUI界面等。

表1 項目功能與教學內容的對應關系
本課程上課地點為實驗室,有些知識點在教師講解之后可以立即操作或者編寫代碼進行驗證,有助于更好掌握其原理。本課程要求學生自帶筆記本電腦至課堂,學生在自己電腦上安裝Linux虛擬機,可在課后實踐課程項目,克服課堂時間不足等問題。
在第一次課堂上, 教師就給學生演示該項目,以激起學生的學習興趣, 并將該項目的功能分解到對應教學知識點上,強調通過掌握和應用相關的知識點就能完成相關功能的開發。接下來的4次課,教學內容為Linux基本命令和vi操作、Linux的C語言編程基礎。在之后的課時中,根據項目從易到難,安排相應的知識點。教學的推進過程,實際上也是項目的完善過程。在每次課堂前,規定本次需要添加的項目功能,為了達到該功能,需要掌握哪些知識,因此,學生可以帶著目標去學習,方向性更強。在教師向學生公布教學進度之后,要求學生根據能力制定合理的項目進度表,以便考核之用,對學生而言,既是壓力也是動力。
在課堂教學中,以教師講授和簡單示范為輔助,以學生實驗和實施項目為主。教師講清知識點的基本概念和原理,尤其是工作流程、函數的參數、返回值和功能等,學生在此基礎上通過實驗對知識點進行驗證,將知識點應用到項目中。在項目具體實施過程中,以小組的形式進行項目的開發,根據學生的意愿,每3~4名學生組成一個小組。小組內部進行任務的分配,鼓勵小組內部進行討論,發揮同儕作用,“學霸”帶領“學渣”共同進步。對教師而言,其角色為項目開發的監控者和幫助者:作為監控者,教師記錄各小組項目的進展,進展過慢時予以督促;作為幫助者,在學生碰到問題時,提供合理的資源或者解決問題的方法,在學生發生方向偏差時給予必要的糾正。
課程考核是整個教學過程的重要組成部分,也是直接檢驗教學成果和成效的方式。在項目驅動的嵌入式操作系統教學實踐中,必須突出學生在項目中的動手實踐能力和創新研究能力的重要性,因此,本課程的考核包含平時表現、項目表現和期末考試3個環節,成績比重分別為20%、40%和40%。
平時表現以學生的出勤、在項目實施過程中提出問題和解決問題的情況以及與教師的討論交流為標準。項目表現以各個小組的實際進度與計劃進度的符合情況、項目功能完成情況和項目設計報告為標準,前兩者占30%,后者占10%。在課程結束時,要求各個小組對項目設計成果進行演示和答辯。小組首先演示,然后教師根據小組所實現的功能,針對程序的流程、某代碼段的含義、函數的參數的含義、某種功能在代碼中如何實現等進行提問,指定小組成員回答,教師根據本小組的功能實現情況以及小組成員的回答情況給定本小組的項目功能完成情況的分數。小組內部分數如何劃分,由小組內部討論決定。設計報告的撰寫能力也是很重要的一項技能,在項目結束前,向學生公布設計報告應當具有的內容以及撰寫規范,據此判斷學生的報告是否符合要求。比重設置為10%,目的是為引起學生對設計報告的重視,認真訓練,提高撰寫報告的能力。期末考試,有相當的題目與項目有很大的關系,只是題型不同和考查的知識點不同。題型可以是選擇、填空、程序分析或編程題等。知識點有的偏重于理論基礎,有的則偏重于編程應用??偠灾?,項目其實是外殼,知識點才是內在。
經過兩輪的教學實踐,基于項目驅動教學法的有效性得到了驗證。學生普遍反應項目的設計比較合理,上課方式比較新穎,對課程的興趣得到提高,而且能夠帶著目標去學習理論知識,學習主動性和積極性更高。各個小組在實現項目的過程中,通過合理分工、討論交流、解決問題,不僅鞏固了舊知識、掌握了新知識、增強了綜合開發的能力,而且團隊意識和協作能力得到不斷提高。這些成果對于應用型人才的培養不僅提供了重要的借鑒價值,而且具有重要的現實意義。當然在項目實施過程中,也有一些地方需要改進和完善,如小組考核的方式,存在個別學生“渾水摸魚”的情況。此外,還可以設置不同難度的項目供不同能力的學生選擇,并加強過程考核等,這需要在今后的教學中加以改進。
[1] 孫成富. 基于項目驅動的“嵌入式系統開發與應用”課程教學[J] .佳木斯教育學院學報, 2013(8): 165-166.
[2] 滕艷平, 杜鵑, 金梅, 等. 以嵌入式應用為導向的操作系統實驗教學改革[J]. 計算機教育, 2015(17): 98-102.
[3] 鄭廣海, 曲英偉. “嵌入式 Linux 操作系統及實踐”課程改革[J] .計算機教育, 2012(4): 37-40.
[4] 王曉春, 孫宏偉. 高職院?!扒度胧讲僮飨到y”課程的教學改革研究[J]. 計算機教育, 2007(9): 42-45.
[5] 張其亮, 王愛春, 陳永生. 能力遞進式項目教學法在嵌入式系統課程中的實踐[J]. 實驗室研究與探索, 2014 (8): 185-189.