袁小華 王令群 王振華 張書臺 張?zhí)祢?/p>
摘要:基于開源技術(shù)的地理信息系統(tǒng)(GIS)開發(fā)能力,是“空間信息與數(shù)字技術(shù)專業(yè)”(空間專業(yè))本科學生的重要就業(yè)能力。文章以培養(yǎng)空間專業(yè)學生開源GIS編程基礎(chǔ)為目標,利用該專業(yè)Java課程的實踐教學環(huán)節(jié),對基于Java的開源GIS編程教學進行了初步探索,其中設(shè)計的教學案例、任務(wù)和項目,搭建的開源實踐教學平臺,以及采用的過程化考核,可為相關(guān)教學提供參考。
關(guān)鍵詞:Java程序設(shè)計;開源GIS編程;實踐教學;教學探索
中圖分類號:G642.41? ? ?文獻標志碼:A? ? ?文章編號:1674-9324(2019)40-0269-04
一、引言
本科計算機大類下的空間專業(yè)培養(yǎng)計算機技術(shù)和空間信息技術(shù)復(fù)合人才。隨著GIS行業(yè)技術(shù)的進步,GIS開發(fā)能力已成為空間專業(yè)畢業(yè)學生的重要就業(yè)能力,這需要空間專業(yè)有效開展開源GIS編程的教學。針對面向培養(yǎng)目標的程序設(shè)計教學,文獻[1]探討了Java教學中如何面向?qū)I(yè)需求調(diào)整教學內(nèi)容,文獻[2]建議在Java理論教學中設(shè)計貫穿全課程的GIS開發(fā)實例,并提出了B/S架構(gòu)下基于AWT、Applet和Servlet技術(shù)的GIS編程教學方案,為空間專業(yè)開展GIS編程教學提供了方向。
目前,數(shù)據(jù)開源、工具開源和平臺開源逐漸成為GIS行業(yè)發(fā)展的一個重要趨勢[3,4];與B/S架構(gòu)下的GIS開發(fā)相比,C/S架構(gòu)下可實現(xiàn)更多GIS應(yīng)用功能[5],涉及更多方法和技術(shù);在開源GIS開發(fā)中,以GeoServer和GeoTools為主的開發(fā)平臺性能穩(wěn)定,功能豐富,已占據(jù)主流地位[6,7];相比于其他語言,Java為開源軟件的開發(fā)提供完美支持[8];我??臻g專業(yè)的Java相關(guān)課程實驗學時充足。綜合考慮各因素,在本校空間專業(yè)的Java課程中,基于GeoServer和GeoTools的開源實踐教學平臺,我們對如何開展C/S架構(gòu)下的GIS編程實踐教學進行了初步探索,內(nèi)容包括根據(jù)行業(yè)需求設(shè)定教學目標,確定以實踐為主的教學內(nèi)容和教學模式,搭建開源實踐教學平臺,設(shè)計和實施相關(guān)教學案例、實踐任務(wù)和項目,并對各個教學環(huán)節(jié)進行過程化考核。本文介紹了相關(guān)探索結(jié)果。
二、教學過程
(一)教學目標與教學內(nèi)容
針對行業(yè)的開源GIS開發(fā)人才需求,我們將本專業(yè)的GIS編程教學目標設(shè)定為:通過理論和實踐教學,培養(yǎng)學生的開源GIS編程基礎(chǔ),從而為進入行業(yè)早做準備。該教學目標決定了本專業(yè)GIS編程教學:內(nèi)容應(yīng)以相關(guān)基礎(chǔ)知識和主流開源GIS技術(shù)為主,形式應(yīng)以實踐教學為主,實踐平臺須采用主流開源軟件搭建,須以Java課程為主要支撐課程,考核方式應(yīng)以檢查實踐任務(wù)和項目的完成情況為主。本專業(yè)的“Java程序設(shè)計基礎(chǔ)”和“Java課程設(shè)計”為配套課程,相繼在大二下期和其后的小學期內(nèi)開設(shè),兩課共含52個實踐學時,此外,在“Java程序設(shè)計基礎(chǔ)”課程的后期,學生也已掌握了Java的GUI編程和數(shù)據(jù)庫連接編程基礎(chǔ),因此在本專業(yè)Java課程中開展以實踐為主的GIS編程教學,具備有利條件。依據(jù)課程目標和相關(guān),我們設(shè)定了四項GIS編程教學內(nèi)容,前三項安排在“Java程序設(shè)計基礎(chǔ)”的后3周,第四項安排在“Java課程設(shè)計”中。各教學內(nèi)容的教學任務(wù)是:教學內(nèi)容1介紹GIS系統(tǒng)開發(fā)的理論基礎(chǔ);教學內(nèi)容2和3對空間數(shù)據(jù)管理、數(shù)據(jù)服務(wù)發(fā)布等進行實踐;教學內(nèi)容4是對GIS編程(C/S模式)的綜合實踐,是教學重點。各教學內(nèi)容的具體設(shè)計見下表1。
為從“Java課程設(shè)計”中騰出實踐課時,該課程中原有的三類實踐項目僅保留GUI編程實踐部分,其余的WWW與Web Service網(wǎng)絡(luò)編程實踐,以及數(shù)據(jù)庫連接實踐,因分別會在“網(wǎng)絡(luò)綜合實訓(xùn)”課程(大三小學期,64課時)和“數(shù)據(jù)庫實踐”課程(與“Java課程設(shè)計”同期且同課時)中重點開設(shè),所以都不再保留。
(二)教學模式與教學方法
依據(jù)教學內(nèi)容和學生基礎(chǔ)而采取合適的教學模式與教學方法,可提高教學效率[9-11]。GIS編程教學以實踐教學為主,在其中我們針對具體教學內(nèi)容,分別采用了案例驅(qū)動教學法[6]、任務(wù)驅(qū)動教學法[10]和項目教學法[10,11]。具體為:在教學內(nèi)容1中,基于案例介紹基于Java的開源GIS開發(fā)流程、主流GIS服務(wù)器和GIS開發(fā)插件;在教學內(nèi)容2中,先示范開源數(shù)據(jù)庫中空間數(shù)據(jù)的建立和管理,然后讓學生完成相關(guān)實踐任務(wù);在教學內(nèi)容3中,先結(jié)合案例介紹基于開源GIS服務(wù)器和開源插件的空間數(shù)據(jù)管理和訪問方法,并分析關(guān)鍵代碼,然后讓學生完成相關(guān)的實踐任務(wù),為小學期中的GIS編程綜合實踐做準備;在教學內(nèi)容4中,學生以分組形式完成開源GIS編程綜合實踐項目。
(三)案例、任務(wù)與項目設(shè)計
在GIS編程教學的案例、任務(wù)和項目的設(shè)計中,我們注意了案例的整體性、任務(wù)的目的性和項目的設(shè)計性[9]。具體為:案例1是對我國陸界的展示,在教學內(nèi)容1和3中使用。其中:在教學內(nèi)容1中著重演示我國陸界空間數(shù)據(jù)的存儲和發(fā)布;在教學內(nèi)容3中著重演示陸界空間數(shù)據(jù)展示中對開源GIS插件的依賴管理,以及本地和GIS服務(wù)器空間數(shù)據(jù)的訪問和展示過程。任務(wù)1是空間數(shù)據(jù)庫建立實踐。該任務(wù)要求學生在應(yīng)用開源數(shù)據(jù)庫的空間數(shù)據(jù)擴展功能,對點、線和面空間數(shù)據(jù)進行生成和管理。任務(wù)2是空間數(shù)據(jù)訪問實踐。教師在演示案例1中GIS服務(wù)器的空間數(shù)據(jù)管理和發(fā)布,以及開源GIS插件的空間數(shù)據(jù)訪問后,該任務(wù)要求學生搭建實踐平臺,并完成對本地和GIS服務(wù)器空間數(shù)據(jù)的訪問。項目1是C/S架構(gòu)下的GIS編程綜合實踐。該項目要求學生以分組形式,選定一個空間數(shù)據(jù)專題,進行GIS開發(fā)的功能設(shè)計、空間數(shù)據(jù)的準備、GIS服務(wù)器的數(shù)據(jù)存儲與發(fā)布,以及在C/S架構(gòu)下的空間數(shù)據(jù)訪問實現(xiàn)。
(四)實踐教學平臺
在GIS編程的實踐教學中,我們依據(jù)行業(yè)主流和相互兼容的原則,采用合適的GIS服務(wù)器來定實踐平臺的整體架構(gòu),選擇與GIS服務(wù)器良好兼容的軟件搭建實踐平臺。具體為:在開源GIS服務(wù)器中,由于GeoServer擁有:是對OpenGIS規(guī)范的J2EE實現(xiàn);允許Java程序通過調(diào)用GeoTools插件中的包,和以WCS、WMS、WFS等地理參考信息模型,對服務(wù)器上的空間數(shù)據(jù)進行查、增、刪和改;支持幾乎全部高級數(shù)據(jù)庫和上百種投影;能將空間數(shù)據(jù)輸出為多種圖形格式等突出優(yōu)勢,因此我們選擇GeoServer(版本2.12.2)作為空間數(shù)據(jù)發(fā)布的服務(wù)器。
配合GeoServer服務(wù)器,我們采用JDK(版本1.8.0.6)作為實踐平臺的運行環(huán)境;選用Eclipse(版本為Kepler Service Release 1)作為IDE;采用MySQL(版本5.7)管理屬性和點線等空間數(shù)據(jù);在Eclipse中分別加載JDBC插件(具體為mysql-connector-java-5.1.41)支持對MySQL的訪問,加載GeoTools(版本為18-SNAPSHOT)支持對GeoServer的訪問,加載Maven(版本4.4)管理程序?qū)eoTools中具體的包的依賴關(guān)系。
下面圖1顯示了GIS教學平臺中的軟件與插件的支撐關(guān)系,圖2顯示啟動GeoServer服務(wù)后的DOS界面,圖3顯示了在Eclipse中采用JMapFrame訪問并展示服務(wù)器上圖層時,通過Maven管理的6個GeoTools依賴包。
(五)考核方式
表1中的GIS編程教學內(nèi)容前后相關(guān)聯(lián),其中最后的實踐項目才是教學的核心,因此在教學中我們需要及時把握學生的學習情況,采用過程化考核方式,由階段有效性來保證教學整體的有效。具體為:GIS實踐任務(wù)的考核放在“Java程序設(shè)計基礎(chǔ)”中進行,形式是教師檢查學生提交的任務(wù)結(jié)果并按完成情況評分,每個任務(wù)滿分5分,計入“Java程序設(shè)計基礎(chǔ)”的上機成績。兩次GIS實踐任務(wù)的得分,還作為后面項目1中調(diào)整學生分組和選題的依據(jù)。項目1的考核放在“Java課程設(shè)計”結(jié)束時進行,形式是對分組項目(包括一個Java的GUI項目和項目1,各占總成績的60%和40%)組織一次集中答辯。各項目組都需要向全班匯報本組對項目所進行的問題分析、數(shù)據(jù)和功能設(shè)計、分工協(xié)作、代碼與運行等,并回答其他組和教師的提問,其他分組則對匯報組所述內(nèi)容逐項評分,各組評分的平均分和教師對答辯組紙質(zhì)報告的評分,以9∶1的比例匯總后,成為答辯組組長的項目得分,組內(nèi)其他成員的項目得分,由其在分組中的排序逐次以5分遞減。
三、教學效果
在本院“空間專業(yè)”的兩門Java課程中,我們已實施了一輪上述GIS編程教學設(shè)計,教學內(nèi)容全部安排在機房集中完成,課任教師全程指導(dǎo)實踐任務(wù)和項目。我們發(fā)現(xiàn):學生對GIS編程學習積極主動,大多能完成實踐項目和任務(wù),尤其是在項目1的完成中,各組基本上全天在一起討論、設(shè)計和編程;此外,學生還十分重視最后的集中答辯,各分組都能精心準備PPT和紙質(zhì)報告,并由組內(nèi)表達能力較強的同學進行匯報,從而保證了GIS編程教學設(shè)計的完成。下面圖4為案例1中展示的我國陸界,圖5到圖7是相關(guān)任務(wù)和項目的部分結(jié)果示例。
上面各圖的空間數(shù)據(jù)中,圖4中的來自GADM[12],圖6及圖7中(b)和(c)中的來自GeoServer[13],圖7中(a)的來自中國科學院資源環(huán)境數(shù)據(jù)中心[14]。
四、結(jié)論
在探討如何在“空間專業(yè)”開展基于Java的開源GIS編程教學中,我們整合了該專業(yè)兩門Java課程中的實踐課時,在其中添加了以實踐為主的開源GIS編程教學內(nèi)容,設(shè)計和應(yīng)用了GIS編程的相關(guān)案例、任務(wù)和項目,圍繞GeoServer搭建了開源的教學平臺,并對教學效果采用了過程化的考核,完成了培養(yǎng)學生開源GIS編程基礎(chǔ)的教學目標。目前我們對GIS編程的教學還限于C/S架構(gòu)下空間數(shù)據(jù)的獲取和展示等基礎(chǔ)部分,在此基礎(chǔ)上,今后教學中還將繼續(xù)整合“空間專業(yè)”相關(guān)課程的實踐課時,以便能進一步結(jié)合GeoAPI,添加C/S架構(gòu)下圖層的管理、要素處理和B/S架構(gòu)下空間數(shù)據(jù)展示等更多內(nèi)容,以及將MySQL替換為對空間坐標體系支持更好的PostgreSQL,以加強對學生開源GIS編程能力的培養(yǎng)。
參考文獻:
[1]唐光義,李繼革,張宏國.以專業(yè)方向為導(dǎo)向的JAVA教學方法探索[J].大學教育,2014,(14):117-118.
[2]黎華,張曉盼,龔珍.GIS專業(yè)的Java程序設(shè)計教學改革初探[J].測繪通報,2017,(4):145-148.
[3]李曉暉,博客園.GIS項目中數(shù)據(jù)開源、工具開源、開發(fā)開源的解決方案[EB/OL].https://www.cnblogs.com/naaoveGIS/p/4766728.html.
[4]GISEarth.開源GIS淺談[EB/OL].https://blog.csdn.net/happyduoduo1/article/category/6287948.
[5]張曉清,代興偉.B/S+C/S混合架構(gòu)的環(huán)境地理信息系統(tǒng)的研究[J].蘭州工業(yè)高等??茖W校學報,2010,17(4):5-8.
[6]郭鵬程,李廣宇.基于Geo Server的地學數(shù)據(jù)共享系統(tǒng)設(shè)計與實現(xiàn)[J].工程建設(shè)與設(shè)計,2017,(15),142-145.
[7]基于GeoTools的地圖服務(wù)快速發(fā)布系統(tǒng)研究[J].測繪與空間地理信息,2017,40(7):137-139,142.
[8]蔡文文,王少華,鐘耳順,胡辰璞,劉曉妮.跨平臺開源桌面GIS軟件的設(shè)計與實現(xiàn)[J].測控通報,2017,(1).
[9]索望,昌燕,何林波.CDIO模式下Java程序設(shè)計課程教學改革探索[J].計算機教育,2016,(9):111-114.
[10]李潔.基于任務(wù)驅(qū)動和項目引領(lǐng)的小組協(xié)作Java教學模式研究[J].柳州師專學報,2015,30(3):121-123.
[11]王飛雪.基于項目式的《Java程序設(shè)計》課程改革實踐[J].電腦與電信,2015,(10):38-39.
[12]GADM.Download GADM data[EB/Ol].https://www.gadm.org/download_country_v3.html,2018-4-12.
[13]中國科學院資源環(huán)境數(shù)據(jù)中心.雄安新區(qū)[EB/OL].http://www.resdc.cn/download.aspx?FileID=1066,2018-4-12.
[14]GeoServer.Downloads page[EB/OL].http://docs.geoserver.org/latest/en/user/_downloads/,2018-4-12.