林志紅
(北京信息職業技術學院軟件工程系,北京 100018)
無線應用程序開發技術探討
林志紅
(北京信息職業技術學院軟件工程系,北京100018)
高職院校專業課建設是關系到高職學生培養質量的重大課題,也是困擾高職教師的難題。由于高職院校具有自己的特點和情況,在專業課程建設中,既不能照搬普通本科院校的教學模式,也要防止過度降低課程難度的傾向。本文基于《無線應用程序開發》課程的建設過程,結合教學實踐體驗,介紹了課程建設的一點心得體會。
無線應用程序計算機網絡TCP/IPSocketHTTP
高職教育是以培養技術應用型人才為主要目標的高等教育,這就要求高職院校的專業課必須要有一定的深度,否則就很難使學生真正成為高技能人才。但是由于一些高職學生學習基礎等方面的原因,使得他們學習上缺乏自信心,從而造成學習動機低下,最終導致學習成績下降,進入惡性循環。為了盡量應對這種情況,教師在課程教學方案設計時,就要根據學習目標和學習者的具體情況制定正確的學習策略,要在學習過程中樹立學生的自信心,而避免打擊學生的自信心。在《無線應用程序開發》課程建設中,通過學習目標的確定,學習策略的制定,確定學習任務,學習活動方案設計等步驟,對教學方案進行了精心的設計。
要確定正確的學習目標,首先要弄清企業的真實需求。我們為此走訪了一些企業,對企業專家進行了訪談。通過調查研究我們發現,隨著無線通信以及網絡技術的發展,特別是3G時代的到來,網絡應用程序的位置顯得越來越重要。無線終端產品進入人們生活的方方面面,同時也為社會創造了巨大的財富。越來越多的公司進入無線產品開發領域。這些公司在招聘技術人員的時候,幾乎無一例外地提出如下要求:“具備C/C++/Java開發經驗,熟悉多線程、Socket網絡編程,熟悉TCP、UDP、HTTP、FTP等網絡協議。”
作為嵌入式技術與應用專業的一門核心課,在課程內容設置,學生職業能力與職業素質培養目標設定方面應與時俱進,緊跟時代發展的步伐,這樣才能培養出滿足社會需要的合格高技能人才。
根據系內教師及項目組成員多次研討的結果,我們決定課程要強化以TCP/IP協議、HTTP協議為基礎的網絡編程技術。我們將《無線應用程序開發》解讀為兩個部分,一部分為通用網絡應用程序開發技術,另一部分是無線設備網絡應用開發技術。第一部分是第二部分的基礎。在第一部分學到的基本概念和基本技能在第二部分得到直接的應用,在項目開發過程中加深對所學知識的理解和掌握。

圖1

表1
2.1通用網絡應用程序開發技術的學習內容
通用網絡應用程序開發技術的學習目標是使學生能夠熟悉網絡編程機制和工作過程。編程是一個實踐性很強的活動,需要學生多多上機操作,這就要求所采用的編程環境必須是學習者能夠經常接觸到的。考慮到Windows目前的絕對壟斷地位,加之Windows Socket已經成為網絡編程事實上的標準,基于Windows Socket的編程實踐可以使學生接觸到更完整的網絡編程知識。因此我們將Visual C++作為通用網絡編程技術的學習平臺,學習內容包括Winsock編程、C/S模式編程方法、TCP服務器程序開發以及TCP客戶端程序開發。
Windows Socket網絡編程技術綜合性較強,學習難度較大。對于學生來說,既涉及到已學過的C語言編程技術的高級應用,又涉及到TCP/IP協議基礎知識、客戶機/服務器模型、Winsock 函數庫等新概念和新技術的學習。
2.2無線設備網絡應用開發技術的學習內容
關于第二部分的內容,考慮到學生剛剛學完《嵌入式應用軟件開發(J2ME)》課程,我們決定以J2ME作為無線設備網絡應用程序開發的訓練平臺。學生此前Java語言編程已經比較熟練,對于單機版的程序結構與設計已經掌握,為本課程的學習打下了比較扎實的基礎。在這一部分中,將會增加HTTP協議、多線程、J2ME通用連接框架、基于Socket的多線程服務器設計、基于Socket的手機客戶端設計,基于Http的手機客戶端設計,并完成一個手機網絡應用項目。
2.3學習策略的制定原則
《無線應用程序開發》這門課程安排在大二下學期,從大三開始,學生將進入生產性實訓和畢業設計階段。也就是說,這門課扮演著承上啟下的重要角色。通過這門課程一方面要對以前的相關課程做一個完美的總結,另一方面要為后續的實訓、實習及工作打下良好的基礎。因此,通過本門課程的學習,應該達到以下兩個目的:
(1)復習原有知識,深化對原有知識的理解。在本課程的學習過程中,要用到大量的編程知識。學生已經學過了《C語言程序設計》,具備了一定的編程技能。但是學生在《C語言程序設計》的學習中,更多注重的是基本語法的學習和訓練,與走上工作崗位解決實際問題還有一定的差距。因此,本課程對于C語言編程進行復習時,沒有僅僅停留在簡單的知識回顧水平上,而是進行了一系列的強化。例如,我們為學生準備了一個單詞計數器的例子,學生通過這個例子的實踐,學習到了狀態機的概念,為今后應付復雜的程序設計工作打下了思想基礎。再如,Winsock編程中涉及到許多與TCP/IP協議相關的結構類型數據,這些結構類型數據多用于系統調用函數的參數,不僅內容相對繁瑣,而且頻繁地使用指針傳遞機制。這些都明顯超過了通常C語言課程的練習難度,但是卻更接近實際工作的需要。因此,在正式學習Winsock編程之前,使用了一定的課時量對學生進行C語言復雜結構類型數據和指針使用的強化訓練。
(2)達到學習目標,對后續學習和工作產生積極影響。研討交流中,企業專家建議我們通過一個網絡聊天室項目作為學生的實戰項目,原因在于即時通信是一種最基本最重要也最流行的網絡應用類型,在手機上制作即時通信軟件涉及到TCP/IP協議的使用,多線程服務器程序的開發,無線終端設備應用程序的開發、互聯網中繼交換原理及終端設備與服務器網絡通信過程的實現,綜合性強,實用性強,今天企業中許多主流軟件開發技術仍然采用聊天室原理。因此完成一個手機聊天室項目的開發,不僅能夠為本課程的學習畫上完美的句號,而且可以為后續的實訓、實習及工作打下良好基礎。
2.4分析知識結構,合理統籌教學
《無線應用程序開發》涉及到眾多的知識點,為了合理地安排教學內容,我們對課程的知識結構做了如下分析:
(1)確定知識點。
K1: 計算機網絡基礎
K2:TCP/IP協議概念
K3: HTTP協議概念
K4: Winsock網絡編程原理
K5: TCP/UDP服務器編程
K6: TCP/UDP客戶端編程
K7: 多線程服務器編程
K8: C/S架構系統開發
K9: 復雜結構類型
K10:指針
K11:多線程
K12:Http服務器編程
K13:J2ME通用連接框架
K14:手機閱讀器客戶端
K15:手機聊天室服務器
K16:手機聊天室客戶端
(2)分析兩兩知識點之間的關系(如圖1)。
(3)列出直接關系矩陣(如表1)。
(4)確定各知識點所在的層次
L1: K1,K9,K10,K11
L2:K2
L3: K3, K4
L4: K5,K12,K13
L5: K6,K7
L6: K8,K14
L7:K15,K16
(5)繪制各知識點之間的關系圖(如圖2)。
(6)設計講解順序。
K1→K9→K10→K2→K4→K5→K6→K11→K7→K8→K3→K13→K15→K16→K12→K14
2.5按照講解順序,安排學習活動
按照講解順序,為每個知識點設計相應的實踐環節,落實在學中做、做中學。學生以項目小組的形式組織教學,每個小組6-7人。注重學生學習過程的考評,采用自我評價、小組評價和教師評價相結合的評價方式。要求學生編寫程序代碼及撰寫相關的技術文檔資料,學生實際任務完成的情況和提交的代碼、技術文檔資料作為學業評價的依據。

圖2
教學方案設計是一項艱苦細致的工作,需要進行教學目標分析、學習者特征分析、教學模式與教學策略選擇以及資源準備等各個環節工作,其中學習者特征分析尤為重要,特別是高職學生的特征分析。根據實際教學實踐經驗來看,由于基礎的原因,高職學生的專業課知識一般都不太扎實,因此要注重知識的回顧與深化,要強調新知識點與以往學習的知識點之間的內在聯系,讓學生理解所學知識在整個知識體系結構中的位置和作用,力爭在不同階段的知識之間產生雙向正遷移。從教學方案的實施情況來看,效果還比較令人滿意。
[1]朱文彬,趙淑文.高等教育心理學.北京:首都師范大學出版社,2008,6.
[2]教育部考試中心.全國計算機等級考試二級教程:C++語言程序設計.北京:高等教育出版社,2010-9.
[3]代勇,李偉,楊宏帥.Visual C++網絡通信編程技術詳解.北京:機械工業出版社,2011,5.
[4]鄭阿奇.Visual C++網絡編程.北京:電子工業出版社,2011-7.
[5]仵博,張麗涓,池瑞楠.J2ME無線開發實用教程.北京:清華大學出版社,2006,8.
林志紅(1966-),男,重慶市,碩士,副教授,從事嵌入式軟件、圖像處理的研究。