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