馮永玖 高峰 劉瑜 李陽東
【摘 要】地理信息系統(GIS)開發課程群是高等教育中遙感GIS類的核心課程,對培養學生的空間思維、數據處理能力、解決空間問題的能力起到至關重要的作用。本課程群包括《地理信息系統》、《可視化程序設計》、《GIS開發與應用》、《WebGIS原理與開發》和《GIS綜合應用實習》等5門理論與實踐課程。在課程群改革之前,各門開發課程采用的編程語言不一致,經過課程的銜接改革統一使用C#語言,課程群的整體性得到了極大的提升,同時也極大地激發了學生的興趣、培養了他們的實踐創新能力。
【關鍵詞】地理信息系統開發與設計;計算機編程;課程群;教學改革;創新實踐
0 引言
地理信息系統(GIS)是集空間數據采集、輸入、存儲、查詢、分析和顯示的計算機系統,近十余年來備受各界關注。由于GIS處理的數據具有空間位置特征,它幾乎與全世界80%的數據有關系或關聯。因此,在高等教育中許多院校均開設了GIS相關的課程,海洋類高校如上海海洋大學就是其中典型例子。GIS在海洋及海岸帶領域,不僅能夠采集、處理和顯示野外獲取的數據、遙感影像等空間數據,也能夠進行海洋資源環境數據的深度分析,以揭示這些信息的空間分布、運動和時間變動特征。
GIS相關的課程除了理論與算法,更重要的是通過計算機程序實現這些理論與算法,這就是GIS設計、開發與實現。GIS開發涉及方方面面的知識與技術,包括獨立主機程序和萬維網GIS程序,涉及的語言包括C++、C#、VB.NET、JavaScript等。上海海洋大學將GIS開發能力的培養作為海洋技術專業本科生的必備技能。是開發與利用海洋資源和能源、拓展人類生存空間的技術。因此,對GIS開發課程群進行必要的梳理、改革和創新,是實現培養優秀學生的前提條件。
1 GIS開發課程群與關系
GIS開發課程群首先包括基礎理論部分,即《地理信息系統理論與方法》,采用國家級規劃教材;同時包括計算機程序語言基礎《可視化程序設計》,用C#語言進行講授。“可視化程序設計”與大學生在第一年級學習的C++語言有所不同,它更加注重應用而非基礎語言,同時為后續GIS開發課程打下堅實的基礎。《GIS開發與應用》和《WebGIS原理與開發》是海洋技術專業中分別針對獨立主機程序和網絡程序的兩門GIS開發課程,是GIS開發課程群的核心部分。在經過上述鍛煉之后,學生通過《GIS綜合應用實習》進行GIS開發與應用的深度實踐。
在GIS開發中,涉及的主要內容有:(1)GIS應用與開發概論、基礎、應用特點;(2)GIS系統分析、需求分析、以及ArcGIS開發系列軟件;(3)GIS總體設計、功能設計和數據庫設計;(4)GIS實施與維護、測試與評價;(5)應用型GIS程序實例編寫。
2 課程群教學改革成效
2.1 可視化程序設計實現了GIS編程的基礎夯實
在2013年之前,GIS開發類課程使用了不同的語言,如《可視化程序設計》使用Visual C++語言和平臺,這是微軟在全球范圍應用非常廣的平臺。學生在大一期間雖然已經學習過《C++程序設計》,但是主要以講授語法為主,不涉及可視化程序設計,缺乏GIS開發相關的實踐經驗。此外,早期GIS獨立主機開發的標準語言是Visual Basic語言,所以后續GIS獨立主機程序設計均采用VB.NET。這造成了前期基礎課程使用的程序語言與后續GIS開發課程并不一致,學生在語言轉換上需要花費很多課時,并且最終的掌握程度并不理想。
近4年,基于ArcGIS的獨立主機開發在首選語言已經定為C#,原VB.NET則成為第二建議語言。因此,為了夯實海洋技術專業學生的語言基礎,并且為今后更高難度的GIS開發課程打下基礎,經過課程群多次研討,統一GIS獨立主機程序開發的標準語言為C#,實現了課程之間的承繼和無縫銜接。
通過程序語言的改革和統一,實現了各課程之間的整體性,同時夯實了與GIS相關的可視化程序設計的主要技術基礎,包括:界面設計、數據庫建立、記錄修改和刪除、計算機繪圖、通過程序語言操作表格、空間數據顯示與處理等,它們密切地與后續學習的課程內容相關。
2.2 GIS獨立主機程序設計改革提高了學生開發與應用實踐能力
《GIS開發與應用》一直是海洋技術專業的核心課程,在本專業2007年開設之始就是其中一門重要課程。但是,我們之前一直使用VB或VB.NET進行教學(因為當時VB是GIS獨立主機開發的首選程序語言),但是隨著GIS技術的發展,ArcGIS已經將首選語言定為C#,我們的改革勢在必行。然而,在課程群開展承繼改革之前,學生沒有C#相關的開發經驗,勢必要對C#語言的基礎進行講授,浪費了一定的課時量。
2014年,《GIS開發與應用》作為市教委重點建設課程,改革的內容就是將開發語言變為C#,這涉及到教師教案和各種教學程序的重寫,目前我們已經圓滿完成這項工作。我們將重點課程建設的成果應用于實際教學中,取得了良好的效果,包括學生能夠使用已經熟悉的C#程序語言編寫GIS獨立主機程序、實現從GIS的矢量數據、柵格數據到3D數據的顯示、處理、分析和輸出。經過程序設計和開發的實踐,80%的學生能夠編寫比較完整的GIS獨立主機程序。
課程的承繼改革實現了教學的整體性,增強了學生對編程的自信心,實現了GIS開發能力的培養和實質性提高,為后續網絡GIS程序編寫、綜合實踐創新、并進入相關公司工作打下了良好的基礎。
2.3 WebGIS開發擴寬了GIS開發的范疇和應用領域
WebGIS是目前GIS應用的趨勢,也是GIS的核心技術之一,WebGIS不僅能夠方便用戶訪問,而且能夠獲得可觀的商業利益,比如Google地圖和Baidu地圖等。
WebGIS是可視化程序設計與獨立主機GIS的高級階段。學生在系統地學習了C#和GIS獨立主機開發之后,對利用高級程序語言進行開發已經有比較好的認識,能夠在較短時間內理解和融會貫通基于Web的程序語言,前期課程所學能夠在后期課程中較好地得到應用,充分體現課程群的延續性和承繼性。WebGIS課程利用ArcGIS API for Javascript,教授學生熟練運用HTML、ArcGIS、CSS、JavaScript、DOM、BOM等技術,編寫網絡GIS應用程序。endprint
在講授過程內容中,課程群不僅涉及專業領域WebGIS的編寫,而且初步介紹了基于IOS和Android的網絡應用的編寫。讓學生實現GIS開發能力的升華,從而拓展專業技能,為順利進入綜合實習階段和職業生涯奠定堅實的基礎。
2.4 大創、實習和畢業設計實現了GIS開發能力的全方位鍛煉
在掌握了GIS開發從基礎到高階的技術之后,根據教學計劃的安排,學生會在大創和《GIS綜合應用實習》中得到進一步的綜合性、全方位的鍛煉。學生可以選擇處理遙感與GIS等空間數據,也可以選擇利用高級程序語言編寫一個相對完整的GIS系統。編寫GIS程序是一個難度較大的任務,但是學生有比較好的基礎,并且當自己編寫的程序能夠良好地運行時,能夠獲得巨大的成就感。這一階段是綜合性的鍛煉和實踐,課程群不再指定學生作業的應用范圍和領域,讓他們充分發揮主觀能動性和創新思維,教師組適時進行針對性的指導,實現自身能力的提高升華。同樣,在畢業論文階段,有關GIS的技術還會再一次得到加強和鍛煉,大部分學生在進行GIS的開發項目時能夠完成具有充分創新性的成果。
3 結論
GIS課程群是上海海洋大學海洋技術專業的核心課程,對培養學生的空間思維、數據處理能力、實踐實干能力,解決空間問題的能力起到至關重要的作用。在課程群改革之前,各門開發課程采用的編程語言不一致(如C++、C#和VB.NET等),經過課程的銜接改革統一使用C#語言,課程群的整體性得到了極大的提升,學生在接受相關知識和技能時能夠變得不那么困難,掌握程度也更加牢靠,同時也極大地激發了他們的興趣、培養了他們的實踐創新能力。
【參考文獻】
[1]湯國安.地理信息系統教程[M].高等教育出版社,2007.
[2]吳信才.地理信息系統設計與實現[M].電子工業出版社,2002.
[3]吳信才.基于JavaScript的WebGIS開發[M].電子工業出版社,2013.
[4]Kang-tsungChang,張康聰,陳健飛.地理信息系統導論[M].清華大學出版社,2009.
[5]張豐.GIS程序設計教程[M].浙江大學出版社,2012.
[6]劉培林,林熒中.C#可視化程序設計案例教程[M].機械工業出版社,2015.endprint