地理信息科学专业GIS 开发课程的学习难点及教学对策研究

2022-10-30 02:02杜景龙张委伟
高教学刊 2022年30期
关键词:开源编程科学

奚 旭,杜景龙,张委伟

(苏州科技大学 地理科学与测绘工程学院,江苏 苏州 215009)

在当前信息化时代,地理信息科学(Geographic Information Science)专业,即GIS 专业,是深度对接人工智能、智慧城市、大数据及元宇宙等新发展概念的紧密专业。上述方向需要依托程序设计与开发、数据分析与挖掘、建模及可视化等基础工作,因此,社会对高校地理信息科学专业的学生在GIS 开发方面有了更高的要求。

GIS 开发课程是对所有地理信息专业所要学习的编程类课程的统称,主要包括基础编程语言(C 语言、Python、Java、C#等)、基于ArcGIS Engine 的二次开发、WebGIS 开发(JavaScrript、HTML、CSS 等)、后端开发(Java)及科学数据处理(R 语言、Python、Matlab 等)。要成为一名优秀的GIS 从业人员,应掌握GIS 的基础理论、掌握1~3 门GIS 的专业软件(ArcGIS、ENVI 等),以及学会使用至少一种计算机编程语言进行GIS 开发。根据作者及团队的多年教学经验,地理信息科学专业的学生在大学期间基本都能较好地掌握GIS 理论课程和专业软件的使用,这是因为以地理信息系统概论为代表的GIS 专业课程与ArcGIS 等专业软件在理论与功能上形成了相互支持与验证。通过对ArcGIS 软件的练习,不仅能够熟练掌握软件,也能加深对地理信息科学理论与方法的理解。ArcGIS 软件虽然能实现一些基础性地理数据处理与空间分析功能,但应用到其他领域或平台时,一些特定的功能需要结合实际情况使用,这就需要GIS 开发来实现。由于GIS 开发基本都是基于ArcObjects 构建的,初学者一般都从基于C#的ArcGIS Engine开始学起,在掌握了C#语言和Arc Engine 的开发思路之后,将会很容易进一步过渡到WebGIS 和移动端GIS的开发上。在以往的教学经历中,很多学生不仅连进阶阶段的WebGIS 和移动GIS 掌握的不理想,而且较为基础的Arc Engine 二次开发也难以达到可独立开发应用的地步。因此,地理信息科学专业毕业的学生真正从事GIS 开发工作的人数较少,难以适应或满足社会高质量发展的需求。在当前数字经济引领的时代发展潮流下,GIS 开发工作充满了机遇与挑战,社会迫切需要可从事中高端GIS 开发的新鲜“血液”,这对高校教师在GIS 开发课程教育方面提出了更高的要求。

本研究在调查分析学生在学习GIS 开发课程存在问题的基础上,从教学方式和实践创新方面积极探索该课程的教学策略,以期学生能更好地掌握该类课程。

一、学生视角下GIS 开发类课程学习的学习难点

本教学团队分别在GIS 组件式开发、Java Web 开发及Web GIS 等课程的期末考试卷上,以题目的形式调研学生对该类课程学习存在的困难和问题。经过整理,多数学生主要存在以下几点问题。

(一)专业课程繁杂,疲于应对考试

专业涉及到的课程过多,内容繁多,疲于应对作业与考试,导致GIS 开发课程缺少足够的实践时间。地理信息科学是一门交叉性非常强的专业,地理信息科学专业的定义就是借助计算机技术对地理空间的实物要素或者现象进行数字化表征、存储、建模、模拟与分析等。专业涉及的范围非常广,既涉及到自然地理中的地球圈层、水文、地质、大气和洋流等,也与城乡规划、交通、旅游、美食、碳排放及作物生长等人文地理的课题息息相关。很多高校将自然地理、人文地理、遥感、测绘和编程类的课程作为专业必修课,而随着新时代的发展需求,很多高校更是将机器学习、深度学习、大数据处理等作为限选课。伴随所学内容越来越多,大量课后作业与考试占据了大部分时间,导致GIS 开发课程的学习只停留在理论层面,难以真正掌握。

(二)关联课程众多,基础不易打牢

多门课程与GIS 开发互相关联,且很多关联课程都是GIS 开发的基础课程,掌握程度的深浅容易决定GIS开发能力的上限。学习GIS 开发不仅仅是要求掌握一门编程语言,还要对计算机、数据、网页及软件的构建体系有较深的理解,因此还要系统学习数据结构、前后端的框架和数据库等相关内容。这些课程通常逻辑性很强,特有的专业名词很多,很多学生在广度和深度上难以兼顾,导致前期学习的基础没有打牢靠,在后面学习GIS开发时困难重重。此外,国内大部分地理信息科学专业的学生,都要先从C 语言或者C++开始打编程基础,然后开始学习C# 和ArcGIS Engine、基于Python 或者Matlab 的地理数据处理,后续进阶阶段还需要学习Java进行后端编程、JavaScript 的前端开发及至少一门框架(如Vue、Angular 或者React 等)。虽然不同编程语言在语句和写法上非常相似,但都有自己的逻辑特色,尤其是学习到中后期时,高深的语法各不相同。很多学生在依次接触不同语言时,前期语法的相似性容易迷惑学习状态,而导致后面高深的语法理解困难。除了语法,不同的开发工具,如二次开发里面的ArcGIS Engine、Web 开发里面的网页工具等都有很多很多的接口,虽然关联,功能却各不相同,繁杂的知识体系和专业名词容易打击学生的学习积极性,从而使创造性很强的GIS 开发课沦为应试教育课。

(三)学习方式不当,缺少足够实践

理论上的专业知识充分理解,但仍然无法独立开发一个简单的项目。很多学生在课堂上听讲很认真,在课前预习和课后复习都做了充足工作,为了考试刷了很多题目。甚至为了加强理解,课后会从网络上找相关教学资源进行自主学习。在这种学习模式下,会在期末考试得到卷面高分,但仍然无法进行开发工作,就是因此缺少足够的代码实践量。本科生刚经历了高考,充分的刷题是一种行之有效的学习方式,这种定势的学习模式对学习GIS 开发带来了负面影响。因为GIS 开发是一门必须大量代码实践才能学好的课程,要求理论结合实际,并学以致用,只有自己动手编程才能真正掌握开发。在编写代码尝试运行的过程中,可以真正理解书本中的知识点,某个函数、方法或者接口的实现效果是怎么样的。此外,写代码实践的过程中,会接触到各种各样的错误,调试的过程也是试错的过程,是课堂或课本上难以传授的经验知识,可以为以后的GIS 开发之路积累丰富的经验。

(四)地学结合较差,创新意识薄弱

很多学生在接触大量编程课程之后,反而学习目标越来越模糊,难以与地理学接壤,不能根据实际需求进行创新性工作。GIS 开发是结合各行业的实际需求,进行软件开发的创新性工作。随着信息技术与社会发展的日新月异,涌现出了很多新理念与新需求,立足于地理信息科学的理论知识体系,以编程开发为实现手段,进行创新性研发工作是GIS 开发的重要基础。地理信息科学专业的学生,在学习内容和未来工作方面与计算机专业确实存在很多交集,但地理信息科学是建立在空间数据之上的交叉学科,需要将可见的物理世界与不可见性的空间现象通过计算机模拟的方式进行定量表征、可视化分析与深层规律挖掘。因此,地理信息科学专业的学生不仅需要打好编程基础,也需要对地理学及地理信息科学的基本知识和理论知识体系有较深理解,从而在学习GIS 开发的过程中能与地理现象紧密结合。

二、学习—思维—应用—探索链式教学对策

在有限师资力量基础上,针对同学们的学习难点,从学习—思维—应用—探索等链式步骤下提出相应的教学对策,并逐步应用于教学工作中。具体包括以下几点。

(一)翻转教学课堂,以教学促学习

根据美国学者Edgar Dale 提出的“学习金字塔”(图1)理论,传统的教学模式,即老师在课堂上讲,学生在下面听讲,是效果最低的教学方式。在GIS 开发课程领域,代码演示与视频讲解等方式都属于学习金字塔里面的被动学习部分,在较长时间的学习内容留存率不足30%,学习效果较差。本教学团队以学习金字塔为理论教学指导,在相关课程开始之初成立3~4 人为单位的学习小组,通过小组讨论、小组项目实践及小组成员轮流上台讲学的方式翻转教学课堂。目前,在小组讨论和小组项目实践部分已取得较为良好的效果,主要体现在小组成员在彼此讨论过程中能加强对知识盲点的理解;在课后作业中,通过团体协作可高效率完成GIS 开发任务,模式与实际社会生产项目的执行过程相似,增强了学生的实际动手能力与团队协作能力。在翻转课堂方面,有“教学”任务的学生做了充足工作,通过预习与备课工作,加强了对知识点的理解与记忆,也提升了个人演讲能力。但受限于知识面与讲解经验,听课学生的知识获得感较低,教师作为听众在恰当的时机进行点评与讲解十分重要。通过课堂翻转,能够有效地提升学生的学习积极性,在打好编程基础方面非常有效。

图1 学习金字塔

(二)借助开源平台,学习编程思维

开源平台是自学编程的重要资源,也是学生提升GIS 开发能力的重要工具。以全球最大的开发者社区GitHub 为例,目前已经超过4 000 万人在线进行交流与学习。平台会根据所学习的语言和开发方向的不同,建立对应的开放社区,来自全球的开发人员、科研人员、教学专家乃至某编程语言的创始人会针对不同阶段的学习者提供学习建议、学习教程及练习项目。当出现自己难以解决的难题或遇到瓶颈,几乎都能通过社区交流找到解决路径。本教学团队注重编程的写作思维,在课后作业中常以开源平台中的高分项目作为学生必要的学习资料,要求学生阅读高分项目代码并对关键步骤写注释,最后复现代码,从而能够快速吸收优秀的开发经验。借助开源平台,部分学生激发了开发工作的学习热情,掌握了当前的前沿技术,本教学团队的学生在相关背景下,近年来参加“美国大学生数学建模大赛”“全国高校GIS 技能大赛”“GIS 创新创业大赛”等比赛中获得灵感与技术突破,并获得良好的成绩。

(三)参与生产项目,提升技术实战

根据实际需求进行开发能够很快提升学生的实际GIS 开发能力。学院非常重视校企合作,目前本单位分别与苏州市测绘院有限公司、苏州市数字城市工程研究中心有限公司等20 余家企业建立了产学研实践基地。依托相关平台,本教学团队每年都会选拔部分地理信息科学专业的学生参与到学院及教师承接的社会生产项目中,如“智慧环保系统”“智慧水质监测系统”“测绘数据管理系统”等。通过校企合作的模式,学生有机会得到锻炼,也为企业储备了人才,部分优秀学生也在实习过程中获得了理想中的就业岗位。目前,校企合作项目受限于项目类型与数量,互惠互利的局限性等,合作方式不稳定。学院正积极拓宽实践渠道,深化企业合作模式,在获得一定经费和项目支持下,将给予学生更多的实践机会。

(四)增设开源课程,深度融合GIS

商用GIS 软件为使用者解决空间分析、决策、二次开发提供了便捷,但涉及商业机密,不会公布底层代码与软件架构,导致学生在学习GIS 开发的过程中对理论知识掌握不扎实,不仅难以与地学深度结合,也不容易出原创性的科研成果。为了培养创新性人才,本教学团队面向开源GIS 积极探索新的地理信息科学专业培养方案,增设开源GIS 课程。目前,不同方向的开源GIS 软件平台很多,见表1,统计了一些比较常见的开源GIS平台,在第二列中加粗的部分是适合本教学团队的教学开源GIS 平台。目前,开源GIS 没有系统的教材及资源,且一下子增设太多课程不切实际。本教学团队在严格把关教材的基础上,循序渐进增设GIS 开源课程,但仍需更多的实验论证与师资力量投入。

表1 GIS 开源平台

三、结束语

当前社会飞速发展,不断涌现出新的技术与发展理念,地理信息科学专业的学生需要学好GIS 开发类课程,才能更好地胜任创新性工作,从而融入到新时代的技术浪潮中。繁重的专业课程、应试式的学习及缺少足够实践等成为大部分学生难以真正掌握该类课程的主要因素,本教学团队从教学方式、科学平台、项目实践及教学改革等方面提出了教学对策,能够为学生打好编程基础、了解GIS 底层架构、掌握优秀开发思维及提升实际开发能力等提供途径。目前,部分方案经过实践已取得良好效果,后续将进一步完善并用于实际教学,以期进一步提升地理信息科学专业学生的GIS 开发能力。

猜你喜欢
开源编程科学
校园武术“学、练、赛”一体化实践探索
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
点击科学
五毛钱能买多少头牛
2019(第十四届)开源中国开源世界
2019开源杰出贡献奖
科学大爆炸
编程屋完成数百元万天使轮融资
学编程,先画画