林毅申 肖媚燕 林丕源 徐東風



摘要:針對當前計算機專業高年級程序設計課程實驗中存在的諸多問題,提出在課程實驗中引入基于Web服務的標準規范接口,建立一套開放的可擴展教學實踐平臺,指出通過該平臺提供的基礎接口,學生可以把精力集中在程序的功能設計上,進而減輕負擔,提高編程興趣以及課程教學質量。
關鍵詞:Web服務;移動開發;實踐平臺
0 引言
在我國高等教育中,計算機類專業(包括計算機科學與技術、軟件工程、網絡工程、信息安全、物聯網工程、數字媒體技術)學生人數眾多,其作為工學類專業,培養學生的實踐能力非常重要。對計算機類專業學生而言,應用系統構建能力和程序設計能力是非常重要的專業實踐能力。
高校在培養計算機類學生應用系統構建能力和程序設計能力方面,需要開展專業的、具有一定復雜度的實驗。然而,由于學生數量巨大,教師對學生實驗的評判工作十分繁重。為提高評判效率,建立良好的實驗平臺是重要的解決辦法。計算機類專業的學生從大三開始將接觸多種高級程序設計語言,并進行一些復雜的程序設計。實驗課往往需要學生針對某些關鍵技術進行訓練,為此,我們致力于建設開放的實驗平臺,既能支持關鍵技術,又能實施評判。
在專業課程的綜合性實驗教學中,教師通常會要求學生從底層開始搭建一套完整應用如從權限系統開始逐步而上設計業務邏輯、界面等模塊。在這過程中,學生必須把大量精力放到底層代碼的設計和實現上,從而忽略軟件的過程設計和功能設計。如果有一套現成的底層平臺接口實現系統的基礎功能,那么通過規范調用接口獲取數據,學生就可以把精力放在具體系統的業務邏輯開發和關鍵技術點實現上,從而做出更有特色的應用程序。此外,隨著計算機技術的不斷發展,越來越多的新技術不斷涌現,如LBS應用(基于位置定位應用)、微信接口應用、云存儲系統等都是目前流行的熱門應用。讓學生掌握流行的編程技術,也是專業課程的重要內容。
1 開放實踐平臺概述
我們將建設的針對計算機類專業高年級課程的開放實踐平臺命名為專業課程在線實踐公共平臺。平臺以在線實驗提交系統為核心,以Web服務技術為紐帶,通過標準接口規范,開放一系列的底層接口和擴展接口,學生和教師可共同使用本平臺。該平臺在華南農業大學計算機類專業(主要有3個專業:計算機科學與技術、軟件工程、網絡工程)的程序設計類課程教學中已被大規模應用和推廣。通過該平臺,廣大師生可以共享豐富的教學題庫,學生通過先進的計算機網絡技術能夠進行在線自主訓練。平臺采用“實驗平臺+題庫+外圍模塊”的方式,建立一套完善的在線實驗管理平臺系統(包括前臺、后臺),加入不同課程的題庫,讓學生在實驗系統中完成對應的實驗。
經過近5年的計算機專業課程教學改革實踐,我們總結出針對高年級計算機實驗的平臺可以Web服務技術為紐帶,通過標準接口規范,開放一系列的底層接口和擴展接口。在教學中,教師可根據本系統接口規范,編寫擴展接口,布置實驗供學生調用;學生發揮自主能動性,根據系統公布的接口編寫一系列實際應用。
2 系統結構及基礎模塊
在專業課程在線實踐公共平臺開發之前,我們開發了在線實驗提交管理平臺并已經穩定運行多年,它提供了題庫管理、作業提交、實驗統計等基本功能。在專業課程在線實踐公共平臺中,我們引入Web服務技術,制定數據傳輸規范,把原有系統的業務邏輯接口改造為Web服務標準接口,并且按照以下系統結構重新劃分系統功能,增強系統的模塊化及擴展性。系統結構如圖1所示。
在引入Web服務接口技術規范后,教師應著重設計系統的安全認證體系,學生必須經過登錄認證后,才能調用系統各種接口。系統安全認證體系如圖2所示。
在步驟1中,調用基礎功能業務邏輯的登錄接口,發送用戶名、MD5處理后的密碼字符串到服務器端。服務器接收信息后,判斷用戶名和密碼是否合法,如果合法則返回一串包含用戶信息和時間戳的Session字符串。此Session字符串就是用戶后續調用服務器端的基礎功能接口和擴展功能接口的鑰匙,不需要再使用用戶名和密碼。
此外,在登錄過程中加入安全機制。安全機制處理如下:①輸入密碼錯誤,等待30秒后再登錄;②若相同IP登錄,用戶名和密碼不正確,連續3次嘗試錯誤后,鎖定IP半小時;③若小同IP登錄,用戶名和密碼不正確,連續5次嘗試錯誤后,鎖定用戶半小時;④登錄30分鐘內,若沒進行任何調用,Session失效,需要重新登錄。
通過以上規則,客戶端可在保證安全的前提下與服務器端進行高效的通信。
3 基于開放實踐平臺的課程實驗沒汁
3.1 開放的接口列表
平臺目前向學生開放的基本接口及擴展功能見表1。
3.2 實驗設計
1) Web服務調用基礎實驗。
該實驗要求學生選定一種語言(如C#、Java、Object C等),選定一個平臺(Windows、Android、iOS、Windows Phone等),在此平臺卜進行實驗,構建應用程序。在應用程序中,通過Web服務連接服務器,調用獲取服務器時問接口,獲取返回值。通過該實驗,學生可以r解什么是Web服務,如何在對應平臺上調用Web服務并連接到本平臺上取得數據。
2)“我的作業”應用實驗。
該實驗要求學生調用“我的作業”相關接口,從提交系統中獲取作業的相關信息。通過該實驗,學生可以深入了解本系統的相關接口并編寫一套作業系統相關應用,及時了解本人在系統中提交作業的情況。
3)LBS應用實驗。
該實驗是針對智能手機的軟件開發實驗,要求學生首先從手機端獲取GPS定位情況,然后調用平臺LBS相關接口,把對應的經度、緯度數據保存到平臺中;也可以調用接口,獲取最后一次定位數據,和手機地圖應用結合在一起,把歷史位置顯示在手機地圖上。通過該實驗,學生能夠熟悉本系統的各種擴展模塊,了解手機端的LBS軟件開發。
4)云存儲應用實驗。
該實驗要求學生調用平臺的云存儲擴展相關接口,使用接口上傳、下載和查詢云端文件。本系統擴展為每位學生提供200 M永久免費的云存儲空間,并鼓勵學生在日常使用。該實驗可使學生構建基于實踐平臺的應用客戶端,熟悉并使用本系統的各種擴展模塊,通過校內免費空間依賴本實踐平臺。
5)綜合應用實驗。
該實驗要求使用實踐平臺提供的接口,自由組合,編寫一套應用。例如,在智能手機端開發時,在調用智能手機電話本API基礎上,通過接口獲取同班同學電話號碼,就可把全班同學的電話號碼同步更新到手機電話本中;調用智能手機的鬧鐘API,通過獲取作業提交時限,就可以在在作業提交時限前通過鬧鐘進行提醒。此外,學生通過該實驗還可以深入拓展云存儲應用,如編寫完整的云存儲客戶端或在線辦公空間、自動判斷和上傳新修改的文件、保持云端文件為最新版本、通過可視化界面對云存儲空間進行管理等。
通過該實驗的設計,學生調用相關接口就可以在短時間內實現復雜并且實用的應用程序,訓練系統設計能力,把精力放在實現軟件功能上。
4 平臺使用效果
系統首先在嵌入式軟件開發技術課程中推廣,本課程為選修課程,主要講授智能手機應用程序開發。在2013年,選修本門課程的學生共374人,其中iOS開發方向約占15%,Android開發方向約占53%,Windows Phone開發方向約占30%,其他方向(如Linux)約占2%。本平臺的接口在課程講授期間分批開放給學生,以實驗的方式讓學生完成以上應用開發。
經過一個學期的訓練,在學期末的課程調查中,約90%以上的學生認為通過平臺中的實驗掌握了智能手機軟件相關開發技術,通過平臺提供的接口快速搭建了有意義的智能手機端應用,可以把精力放在軟件功能的設計中。通過本平臺的應用,不少獨具匠心的應用程序也涌現出來,同時課程教學達到了良好的效果。
5 結語
我們構建了一套以在線實驗提交系統為核心的平臺,通過Web服務標準接口規范開放一系列接口,讓學生在此平臺上快速搭建有意義的應用。開放平臺一方面可為教師提供一套開發標準,使其在平臺中添加擴展應用,參與平臺建設;另一方面可使學生專注應用程序的業務邏輯開發和關鍵技術點實現,從而做出更有特色的程序。通過該開放實踐平臺,學生、教師及平臺開發者的角色互相融合,大家可以通過統一的標準共同使用和建設該平臺。