楊元維 譚美淋 劉少華
(1.長江大學地球科學學院,湖北 武漢 430100;2.內蒙古自治區(qū)測繪地理信息中心,內蒙古 呼和浩特 010050)
組件式GIS應用軟件開發(fā)是一門本科專業(yè)地理信息科學(Geography Information Science,GIS)第六學期開設的必修課。在制定該課程教學大綱時,充分顧及專業(yè)特色、技術發(fā)展趨勢,運用理論與實踐并重培養(yǎng)模式,要求學生熟練掌握某一GIS開發(fā)組件庫,對培養(yǎng)和鍛煉學生桌面端GIS開發(fā)實踐能力具有重要的價值與意義[1,2],同時也奠定掌握全棧開發(fā)的基礎。
本課程的先修課程包括C程序設計、數據結構、C#程序設計、數據庫原理與方法和地理信息系統原理等一系列計算機與GIS相關課程[3-6]。本課程設置48個總學時,結合課程特點突出實踐教學的重要地位[7],將該課程的理論與實踐教學占比調整為2:1,其中理論32學時與實踐16學時。本課程選用李崇貴等所著的《ArcGIS Engine組件式開發(fā)及應用(第二版)》作為教材[8],ArcGIS Engine基于微軟COM技術構建成21個GIS開發(fā)組件庫,在.NET開發(fā)環(huán)境下,這些組件庫被組織到不同的命名空間中。
(1)GIS組件庫龐大,組織結構復雜
本課程中所涉及的GIS組件庫龐大,不同的組件庫功能各異,且組織結構復雜,學習與熟悉這些組件庫比較困難[9]。如何使學生掌握這些組件庫及之間的關聯關系,并且能運用常見的組件完成GIS二次開發(fā)工作,是一個亟待解決的問題。
(2)面向對象基礎薄弱,知識點層次性難以建立
由于授課對象是GIS專業(yè)學生,并未類似于計算機科學與技術專業(yè)的學生那樣接受完整的面向對象程序設計課程,僅在C#程序設計課程中包含基本的面向對象知識點的引入與介紹[10,11]。因此,在本課程教學中,以面型對象思想構建的COM組件庫,在調用庫中的類、接口等時,需要較強面向對象基礎支撐。此外,組件庫存在大量的類與類之間的多層級繼承關系,如形狀(Geometry)父類,該類派生出多個子類如曲線(Curve)、矩形(Rectangle)、點(Point)、多點(MultiPoint)等。然后曲線(Curve)父類可以分為線段(Segment)與路徑(Path)、多義線(PolyCurve)等子類。如何使學生有效掌握各組件類之間的層級性,是另一個亟待解決的問題。
(3)考核方式較為單一,無法有效促進學生掌握知識點
以往本課程采取開卷考試的形式考核學生對知識點的掌握情況,該形式考察存在著整體區(qū)分性差、考察力度不夠的問題,且學生無法重視與掌握課程大綱中的知識點。如何改進考核方式,促進學生對本課程知識點的深刻理解與運用,是一個值得研究和討論的問題。
在教學中需要梳理每個章節(jié)每個知識點的主線,厘清每章的教學任務與重點內容,重新梳理本課程教學安排,使教學內容完全達到教學所要求的各項目標任務,如表1所示。
表1 本課程教學內容設計
可以看出,本課程的教學內容完全覆蓋組件式GIS二次開發(fā)的所有知識點,學時安排方面重點突出,對于重點知識點的闡述有重要篇幅,并安排對應的上機實訓,通過上機作業(yè)檢測學生掌握的情況。根據理論教學與實踐教學結合完成教學目標。
針對組件庫之間關系復雜的問題,重新編繪了21個組件庫之間的對象模型圖(Object Model Diagram,OMD),如圖1所示。
圖1 組件庫之間的關系圖
面向對象思想是貫穿計算機程序設計的一種重要思想。面向對象程序設計具有封裝、繼承、多態(tài)三大特征[6]。面向對象作為組件式GIS應用開發(fā)課程的重點基礎內容,需要在授課時,重拾這部分知識點,類、抽象類、字段、屬性、方法、靜態(tài)成員、構造函數、方法重載、方法覆蓋、接口、事件與委托等基礎內容。因此在講授該部分內容時,就需要將此部分內容進行強化。引入面向對象的思想至組件類知識點的講解中,以Geometry類為例,首先構建該類的所有子類信息,如圖2所示。
圖2 形狀相關對象結構圖
通過圖2可以看出,Line類、CircularArc類、EllipticArc類、BezierCurve類均繼承于Segments類(圖中的有向箭頭表示子類指向父類),Rings類至Geometry類存在著5層繼承關系。如表2所示為圖2中涉及的類的定義。通過這樣的結構圖與表可以使學生更好地掌握組件類之間的層級關系。
表2 Geometry類及相關對象定義
對以往本課程成績?yōu)槠綍r成績(20%)與開卷考試成績(80%)相加進行改進,提高平時成績的占比,采取平時成績(50%)與考試成績(50%)的課程考核方法,具體措施如下:
(1)讓學生主動參與到教學過程中,充分利用現代教學手段和工具,借助雨課堂的輔助教學功能,每章設計若干難易適中的習題進行在線練習,及時了解學生對相關知識點的掌握情況,從而對教學過程和方法調整;
(2)設計兩次課堂測驗,階段性了解學生學習效果,評定相應成績,設置課堂測試2次,每次占總成績10%;
(3)重點培養(yǎng)學生上機實踐編程能力,每次上機編寫若干編程題,提升學生對理論知識的運用能力,設置上機考試2次,每次占總成績10%;
(4)降低期末考試占總成績的比例,加大平時成績占總成績的比例。
針對組件式GIS應用軟件開發(fā)課程教學中存在組件庫龐大、組織結構復雜、學生面向對象基礎薄弱、知識點層級性難以建立和考核方式單一等問題,構建GIS組件庫知識點結構關聯關系,并采用面向對象的思想,對組件類知識點進行梳理,重新組織教學思路與結構,重構組件類知識點之間的層級關系。對考核方式進行改革,加大平時成績及上機占比,取得良好的教學效果。