楊玲 阮心玲
摘 要: 綜合分析GIS算法基礎課程的內容與特點,結合人才培養的需求和GIS算法基礎課程的教學經驗與體會,探討GIS算法課程的教學方法以及GIS算法教學過程中存在的一些問題,給出相應的解決辦法,以有效促進學生對知識的理解和應用,達到預期的教學效果。
關鍵詞: GIS算法基礎; 教學; 理論教學; 實踐
中圖分類號:P208;G42 文獻標志碼:A 文章編號:1006-8228(2016)03-53-03
Study on teaching of GIS algorithm fundamentals
Yang Ling, Ruan Xinling
(College of Environment and Planning, Henan University, Kaifeng, Henan 475004, China)
Abstract: Combined the personnel training demand and GIS algorithm fundamentals teaching experience, the teaching methods of GIS algorithm courses and the problems existing in GIS algorithm teaching process are discussed, and the corresponding solutions are given to effectively promote the students' understanding and application of knowledge, to achieve the expected teaching effect.
Key words: GIS algorithm fundamentals; teaching; theoretical teaching; practice
0 引言
地理信息系統(GIS)產生于20世紀60年代初期,經過近半個世紀的發展,GIS已經成為一門新興的學科,廣泛應用于國民經濟各個領域,并發揮著重要的作用,取得了良好的經濟效益和社會效益。為滿足市場需求,國內眾多高校紛紛開設GIS專業,每年都有數以萬計的畢業生走向人才市場。
在GIS專業的培養方案中,GIS算法基礎是一門銜接專業基礎課和專業方向課的極為重要的課程[1],該課程是整個地理信息科學的核心,不管是從基本的GIS空間數據結構到空間數據模型,還是從必需的GIS空間關系的表達與描述到各種各樣的空間拓撲關系,以及從高級的時態多維GIS到GIS空間數據挖掘與知識發現,GIS算法作為地理信息系統的基石當之無愧[2]。因此,GIS算法基礎是整個GIS專業課程中非常重要的一門課。GIS算法基礎通常包括理論教學和實踐教學,理論教學主要講解GIS相關算法的基本原理,實踐教學重點在于算法的實現,讓學生透徹理解算法的原理并進行系統的開發與實現,兩個環節缺一不可。GIS算法基礎的教學對增強學生的理解能力、實踐能力、提高學生系統開發能力發揮重要的作用。
1 現狀分析
1.1 GIS算法基礎課程特點
GIS算法基礎是一門融合算法原理與算法設計的課程,而且包含一些GIS空間數據的分析與處理運算,因此其既具有算法的共性,又有其鮮明的特點。
⑴ 內容復雜
GIS算法種類較多,內容復雜。GIS算法基礎課程包括計算機圖形學算法、計算幾何算法、空間數據組織算法、空間數據轉換算法、空間數據索引算法、空間數據內插算法、空間數據分析算法以及空間數據挖掘算法等。同時,由于GIS算法是用于解決地學領域中的問題,需處理海量的地理信息,涉及許多復雜的空間運算,故不僅僅是簡單的信息查詢與編輯。
⑵ 知識抽象
算法是完成一個任務所需要的基本步驟和方法。在解決問題時,可以使用抽象的數學語言、計算機語言來對算法進行描述。GIS算法基礎是對地理空間對象進行描述和處理的過程。地理空間對象自身有明顯的特征,即維數多樣性,有2維、2.5維、3維、4維等,而且有空間數據和屬性數據之分,這使得地理空間對象更難表達和處理,因此與普通的算法相比GIS算法更為抽象化。
⑶ 需要多學科知識作為基礎
地理信息科學作為一門綜合性學科,涵蓋了計算機科學、地理學與測繪學,GIS算法的實踐課程涉及多門課程的綜合運用,對學生的要求相對較高。既要求學生熟練掌握一門編程語言、掌握數據庫的相關知識、熟練的使用軟件開發平臺,還要求學生掌握相關的算法設計原理,掌握相關的GIS應用方面的知識為后期的專業應用奠定基礎。
1.2 教材建設不足
⑴ 理論課教材
GIS算法基礎作為一門專業基礎課,教材不足的問題非常突出?,F階段可供選擇的教材主要有科學出版社出版的《地理信息系統算法基礎》、《地理信息系統原理與算法》、《GIS數據結構與算法基礎》、《基于幾何代數的多維統一GIS:理論、算法與應用》等有限的幾本教材,教材選擇范圍較小。而且這些教材中有一部分內容還與GIS專業中其他課程教材重復。部分高校選擇使用計算機專業的算法教材作為該課程教材,這些計算機學科中常用的通用算法對于GIS中的應用而言,針對性不強,同樣不合適作為課程教材[3]。
⑵ 實踐課教材
實踐課沒有統一的教材,上課時由教師選擇理論課教材中的部分算法進行上機實現,這樣學生上機實現的算法可能與其他課程(如計算機圖形學)中的某些算法重復。有的高校選擇二次開發作為上機實踐內容,學生通過調用某個GIS軟件的類庫或接口來完成算法,而不是從底層寫算法,這樣只是模塊或接口的調用,不需要理解算法的細節,也不需要自己設計算法,容易導致“知其然而不知其所以然”。同時,在實驗課中,大部分算法是獨立的,學生即使完成了所有實驗內容,仍然很難建立起系統性觀念。
1.3 課時安排與學生基礎問題
各個高校對該課程安排的課時數不盡相同,以本校為例,每學期90課時,其中基礎理論課54學時,實踐課36學時。理論課的課時數稍多于實踐課。這種課時安排方式看似合理,但在實際執行過程中發現,實踐課的課時數嚴重不足,學生能夠上機實現的算法不足理論課所講的1/5。主要原因有:①GIS算法基礎課程中部分算法的實現需要學生有一定的程序設計基礎,但大部分學生缺乏此方面的知識,動手能力有限;②GIS算法基礎課程中有部分算法比較抽象,而且有一定難度,學生實現起來比較困難。這種理論與實踐脫節的情況導致學生對基本的GIS算法的理解停留在概念理解的層面上,一旦遇到深層次的應用問題,就束手無策。長期的實踐缺失會導致學生的動手能力較差,直接影響其學習能力與工作能力。
2 教學內容構建
2.1 理論課教學內容
理論課教學時,根據學生的基礎,選擇教材中難度適中的內容進行講解,舍棄部分較難的內容以及與其他課程中重復的內容。筆者以科學出版社出版的《地理信息系統算法基礎》作為教材,在理論課程教學時主要講解以下內容。
⑴ GIS算法的計算幾何基礎。主要介紹基礎的幾何問題的解決方案,這部分內容較為簡單,是GIS算法的基礎。
⑵ 空間數據的變換算法。介紹地理空間參考坐標系(包括平面坐標系與球面坐標系),坐標系的轉換以及地圖投影變換。
⑶ 空間數據的轉換。主要介紹矢量數據與柵格數據之間的相互轉換。
⑷ 空間數據組織算法。包括對數據進行合理抽稀,對矢量坐標數據進行編碼以減少存儲空間。
⑸ 空間度量算法。涉及空間計算中的常見算法。
⑹ 空間數據索引算法。包括空間數據索引的基本概念以及空間數據索引模型。
⑺ 空間數據內插算法。涉及不同類型的內插算法。
⑻ 空間分析算法。主要介紹空間分析三維相關算法和模型。
2.2 實驗課教學內容
實驗教學內容應與理論教學內容緊密結合,對理論教學內容中闡述的算法通過程序設計實現。將各個獨立的GIS算法組織起來,形成一個較為系統的工程。我們總結的GIS算法基礎課程的實驗系統包括了GIS算法基礎理論課程中的大部分算法,搭建系統平臺,實現算法并進行可視化顯示。該實驗系統主要有以下內容。
⑴ 計算幾何基礎。包含簡單的拓撲空間關系判斷以及二維和三維的空間度量計算。其中矢量叉積、折線拐向判斷、交點計算、多邊形與點(直線、折線、多邊形)的位置關系判斷、點線距離計算、三角形面積計算、多邊形面積計算等,這些都是GIS算法的基礎。
⑵ 坐標變換。包括二維、三維空間坐標的平移、旋轉、比例、錯切等運算以及地圖的投影變換。
⑶ 空間數據的轉換。主要包括矢量數據柵格化與柵格數據矢量化。
⑷ 空間數據的組織。主要包括矢量數據的壓縮算法(垂距法、偏角法、達格拉斯撲克法以及光欄法)與柵格數據的壓縮算法(鏈式編碼、游程長度編碼)以及拓撲關系的生成。
⑸ 空間數據的索引算法。主要包括四叉樹索引算法、B樹的構建、查詢、插入與刪除等。
⑹ 空間數據的插值。包括分段圓弧法、分段三次多項式等方法。
⑺ 空間數據分析。包括緩沖區分析、DEM分析等。
⑻ 可視化。利用可視化工具,對運算結果進項顯示以及部分圖形的繪制,這部分內容是比較直觀的顯示,也是上機實踐內容中必不可少的一步。
以上所列內容基本包括了理論教材中的大部分算法,在實際上機實踐中,由于時間有限,并沒要求學生完成所有的算法實踐,而是由老師根據學生基礎,在每一大類中選擇一兩種算法實現。
3 教學方法探索
3.1 理論課教學方法探索
GIS算法基礎課程既有基礎性的知識,又有面向應用的開發。因其數學方面內容較多,有些學生認為這門課程難度大、枯燥。筆者認為應該在理論課教學時以老師講授為主,同時積極引導學生進行思考,不僅讓學生理解算法的原理,而且了解此算法可以解決什么問題,此算法與其他算法相比優勢所在,鼓勵學生敢于對算法做出評價,敢于質疑,帶著問題去思考,最后通過實例分析、驗證算法的正確性以及與同類算法相比的優勢。
3.2 實踐課教學方法探索
實踐課不僅能讓學生更好的理解算法,而且能讓學生學會應用算法解決實際問題。由于大部分學生編程基礎較弱,上機實現算法的速度較慢,完成一個算法往往耗費較長時間,這樣就需要老師選擇合適的內容進行上機實驗,先實現簡單的算法,再實現復雜的算法;從教師帶領學生編程,逐漸過渡到由學生自己完成編程。實踐課前,應該加強準備工作,要求學生預習,設計實驗方案或者繪制流程圖,交由老師審核以保證學生對算法思想和步驟理解的正確性[4]。實踐過程中應及時總結,對上機過程中出現的共性問題進行分析,少走彎路。
另外,還應該加強其他輔助課程的建設,如編程語言課,這樣學生的編程能力和算法實現的效率會得到大幅提高。
4 結束語
地理信息系統是一個交叉性學科,其實踐性極強,既要有深厚的理論知識,又要有過硬的動手能力。本文針對GIS算法基礎課程的特點,結合實際教學,對理論課和實踐課的內容選擇、教學方法進行探討。在理論課中選擇合適的內容,引導學生思考,舉一反三,加強課堂的趣味性,提高學生學習的積極性,學生對GIS算法原理的理解以及GIS算法的應用能力得到明顯提高。實踐課中循序漸進,逐步加強學生的程序開發能力,提高學生對編程的興趣,實踐課的效率明顯得以提高。未來的教學內容選擇和教學方案設計上,還需要進一步探索,以達到因材施教的目的。
參考文獻(References):
[1] 劉民士,王春,何桂芳.GIS算法基礎實驗教學探索[J].測繪與
空間地理信息,2012:1672-5867
[2] 張宏,溫永寧,劉愛利.地理信息系統算法基礎[M].科學出版
社,2006.
[3] 周侗.高校本科GIS專業《GIS算法基礎》課程建設芻議[J].管
理觀察,2009:182-182
[4] 王麗.GIS算法課程教學探討[J].氣象教育與科技,2007:
32-35