劉雨坪
(江蘇信息職業技術學院 物聯網工程學院,江蘇 無錫 214153)
以人工智能、物聯網、大數據等為代表的新興學科蓬勃發展,對未來工科人才培養提出了新的要求[1-3]。部分產業強市,如我校所在地無錫市,提出了構建“465”現代產業體系,其中四個地標產業集群為物聯網、集成電路、生物醫藥、軟件與信息技術服務。首位構建的就是物聯網產業集群,將產生大量的物聯網技術人才需求。物聯網移動應用開發作為物聯網應用技術專業的核心課程,對其教學方法和教學內容的改革研究具有重要意義。
現行的物聯網移動應用開發課程,基本做到了項目化教學,其采用的實踐教學項目,大多貼近行業的典型應用和專業技能大賽的賽題,以及1+x考證內容,做到了“崗課賽證”融通[4-6]。但是在教學設計和教學實踐中,往往是教授學生實現方法,而不教調試方法。在教學實踐中,學生根據教材和教師的指導,可以按照步驟完成開發,但是一旦遇到問題,不知道如何排查,更不知道如何解決[7-8]。這并不符合專業培養目標,尤其是高等職業院校專業培養目標中重點強調的安裝調試技能的培養。因此,筆者提出了將調試方法融入到物聯網移動應用開發課程中,在教學內容和教學設計上做出改進。
開設物聯網應用技術專業的高等職業技術院校有近百所,專業培養對接物聯網產業鏈,聚焦工業互聯網等領域。培養面向軟件和信息技術服務業以及計算機、通信和其他電子設備制造等行業的物聯網工程技術人員、物聯網安裝調試員、信息通信網絡運行管理人員、軟件與信息技術服務人員等,能夠從事物聯網設備安裝配置和調試、物聯網系統運行管理與維護、物聯網系統應用開發、物聯網項目規劃和管理等工作的高素質技術技能人才[9-10]。
物聯網移動應用開發課程是物聯網應用技術專業的核心課程,該課程依據物聯網應用技術專業人才培養目標和相關崗位能力要求設置,對培養本專業綜合能力起到支撐作用。課程教學方案設計雖然多集中在移動端應用的設計和開發,但也離不開傳感器、執行器、網關等物聯網基礎設施,尤其是移動端如何通過物聯網云平臺獲取傳感器數據,如何控制執行器,是物聯網移動應用開發的核心功能。這其中有很多涉及到通信的地方,最典型的是物聯網移動應用需要頻繁地與物聯網云平臺進行通信。
在項目化教學的教學項目設計上,從界面布局開發入手,因其相對簡單且效果明顯可見,容易激起學生的學習興趣;然后學習活動的基本寫法,調用第三方物聯網云平臺提供的jar包中的相關接口,與物聯網云平臺通信。在實踐教學中,學生按照教材和講授步驟操作,一旦遇到問題,只能一遍遍地與教材中所寫步驟對照,而沒有掌握排查問題、定位問題的方法。這與培養目標中培養物聯網設備和系統的安裝調試能力的目標略有不符。
為了解決前述問題,筆者將調試方法融入到物聯網移動應用開發課程中,在教學內容和項目設計上分別進行了改進。
在教學內容設計上,前文簡述了當前通用的項目化教學的教學項目設計思路,即從布局到活動,再到調用jar包接口與物聯網云平臺通信的順序。這個設計思路是沒有問題的,從布局到活動相對簡單,都是本地執行,按照教材講解操作,不容易出現異常情況。但是到了與物聯網云平臺通信的章節,涉及到網絡通信以及各種傳感器、執行器,異常情況會明顯增多。問題就在于,因網絡環境和具體情況不同,面對很多問題學生通過參照教材中標準的操作方法無法有效解決,而前面的學習并沒有讓學生掌握調試方法和定位問題的能力。因此非常有必要讓學生掌握基本的調試方法,通過調試可以定位、解決異常情況中的大部分問題。
在從布局到活動的相對簡單的學習過程中,借助開發工具軟件提供的調試工具,學習調試方法。主要包括輸出關鍵點位的關鍵數據日志信息、Debug調試模式的使用,以及在調試模式中如何單步執行程序、如何查看變量值、如何執行額外指定的代碼等常用的調試方法。經過前面對調試方法的學習,課程項目進度逐漸推進,可能遇到的異常情況逐漸增多,學生就可以使用前面掌握的調試方法,自己定位解決大部分問題。Debug模式下查看token變量值如圖1所示。

圖1 Debug調試截圖
需要指出的是,這里提到調試,仍然可以按照教材內容進行操作,而非需要學生看懂各種報錯信息,讀懂報錯堆棧。因為這些需要深厚的開發語言功底,并不符合高等職業院校對大多數學生的培養目標。這里提到的調試,主要包括檢查網絡通信是否正常,檢查是否正確獲取了用于登錄狀態校驗的token值,檢查獲取到的傳感器信息、每個傳感器的名稱和數值是否符合預期等。主要解決將一個較長鏈路的通信過程拆分成幾段,具體判斷從哪一段開始出現數據異常的問題。比較常見的是,判斷數據沒有展示出來的原因,可能是數據沒有被收到,也可能是收到了數據但沒有被正確展示在界面上,如圖2所示。

圖2 鏈路拆分
在教學項目設計上同時進行優化,加入方便學習調試方法且有助于深入理解所調試數據的任務。能進行調試的前提是知道數據的流向,知道正確的數據應該是什么,所以在任務設計上,要將關鍵的數據鏈路分解開,或者更深入一步。比如與物聯網云平臺通信時調用云平臺提供的第三方jar包,這是物聯網移動應用開發課程項目設計通用的做法。但是直接調用jar包,是不利于學生理解通信時具體的數據流向和核心數據內容的。
對此,可以進一步設計使用HTTP協議直接連接物聯網云平臺,獲取傳感器數據的任務。這里使用封裝好的HTTP協議包,并不需要學生深入理解HTTP協議。但可以讓學生看到、理解請求和響應的原始數據樣式,一般為通用JSON格式數據,如圖3所示。有了上述經驗,學生在后續開發、部署或調試時,遇到使用第三方jar包接入物聯網云平臺的異常情況時,就會清楚數據的流向,知道正確的數據應該是什么,從而有的放矢地利用掌握的調試工具進行調試。
筆者對傳統課程的改進,契合高等職業院校學生培養目標,使學生學習思路更加清晰,理解問題更加深入,有效提高教學效率和學習效率。具體優點如下:①直接培養、增強了學生的安裝調試能力;②將長鏈路分解,有助于學生學習理解;③由淺及深培養學生定位問題、解決問題的能力,使課堂教學和學生自學更流暢;④有助于幫助部分學習能力較強的同學剖析現象,深入理解原理。
在高等職業院校人才培養目標指導下,學習掌握調試方法,有助于提升學生發現問題和解決問題的能力,提升安裝調試的實踐能力,提升其核心競爭力。融入了調試方法的物聯網移動應用開發課程,對傳統課程教學內容和項目設計進行了改進,雖增加了部分內容,但使實踐授課或理實一體授課更加順暢,學生理解問題更加深入,具有較高的實用價值和研究價值。從教學效果反饋來看,整體成效明顯,但仍存在一些具體的設計有待進一步發掘和研究。