1. 引言
近年来,随着数据科学和人工智能(ArtificialIntelligence, AI)技术的蓬勃发展,Python语言逐渐成为世界范围内最流行的编程语言。根据TIOBE编程社区指数,自2021年10月起,Python便取代了C和Java等,长期占据编程语言榜单第一名。因此,也有越来越多的高校将Python语言引入到教学中[1] [2]。在美国,综合排名前100的大学有超过70所在近三年开设了Python语言类课程。在国内,随着教育部高等学校大学计算机课程教学指导委员会2016年首次建议将Python语言作为首门程序设计课程的教学语言,各高校逐步开设了Python语言程序设计课程[3]。从课程开设的范围来看,最早大多是在理工类大学的计算机相关专业学习Python语言,面向数据分析、人工智能等专业领域。随着技术的发展和普及,课程也逐渐向更多的非计算机专业扩展,最终发展成为高校的通识类基础课程[4]。
Python语言类课程在高校中的流行始终离不开数据科学和人工智能技术的发展,这几乎影响着所有传统专业,地理科学类专业就是其中之一。地理信息科学(Geographic Information Science, GIS)作为地理科学类专业之一,致力于利用现代信息和测绘技术研究地理学问题。将数据科学和人工智能与地理科学相结合,形成的时空大数据分析和地理空间人工智能(GeoAI)等新兴领域已成为当下科学研究的热点。因此,Python语言也早已被列入各高校GIS专业培养方案,成为GIS本科生主修的专业课程[5]。
Python语言在GIS专业人才培养中主要用于提升学生在地理信息方面的数据处理分析水平[6]。如美国加州大学伯克利分校的课程培养学生用Python处理地理大数据,进行数据挖掘、统计分析等;日本东京大学、瑞士苏黎世联邦理工学院的课程会讲授多种地理数据格式的读写操作、实现不同坐标系统间的转换,并实现空间分析算法;美国佐治亚理工学院的课程用Python进行遥感影像的读取、预处理、分类等,涉及遥感影像的计算机视觉处理。国内也已经有部分高校的地理信息科学专业开设了Python语言类课程。从课程名称上来看,主要有两类,一类如浙江大学、中山大学等,直接使用“Python程序设计”作为课程名称;另一种是将Python与专业特点结合,如南京师范大学的“Python与空间信息处理”、北京大学的“Python程序设计与数据科学导论”。从课程类型上看,目前大部分高校的地理信息科学专业将Python语言作为选修课程,安排在第四学期到第六学期,总学时在36到64之间。也有少数高校,如浙江大学,在第二学期开设Python语言课程[7] [8]。
尽管已有不少国内高校的地理信息科学专业开设了Python语言课程,但是由于开设时间较短、教材和实验案例比较有限,课程尚处在开发和探索阶段,内容并不统一。教学过程中按照传统授课方式重视基础语法和经典案例的讲解,缺少与专业知识的练习,则枯燥乏味、效率低,没有达到培养学生解决GIS专业实际问题能力的目的。
BOPPPS是一种以教育目标为导向,以学生为中心的教学模型,由六个字母依次代表的六个特定的教学阶段构成。BOPPPS模型强调学生参与和反馈的闭环教学过程模型,目前已经在各学科教学中引入和应用[9],有利于混合式教学的开展。
基于此,为了解决GIS专业人才培养中Python语言教学内容与专业知识脱节、理论与实践脱节的问题,本文在分析Python语言教学与地理信息科学专业结合的重点和难点的基础上,基于BOPPPS模型提出一种面向GIS素养的混合式教学创新模式,通过搭建课程教学实践平台,构建具有专业特色的教学案例库,实现“教、学、练”一体化教学。
2. 面向GIS素养的Python语言教学分析
2.1. Python语言特点和GIS专业适用性
Python是一种解释型语言,即不需要编译就可以直接执行源代码。Python语言的特点是代码的可读性较强,语法结构清晰、简单明了。因此,Python语言对于初学者和非计算专业从业者相对友好。此外对于地理信息科学专业来说,Python语言还具备如下优势[10] [11]。
(1) 高级语言特性:如动态类型系统,变量不需要事先声明其数据类型;面向对象编程(OOP)范式,允许创建类和继承机制。能够方便地表达复杂的地理空间数据结构。
(2) 跨平台性:Python可以在包括Windows、macOS、Linux等多种操作系统上运行,且编写一次代码后无需修改即可在不同平台上执行。能够满足不同平台处理地理空间数据的要求。
(3) 丰富的标准库和第三方库:Python拥有庞大的标准库和强大的第三方库。能够满足几乎所有的应用场景,如Web开发、数据科学、机器学习等。
(4) 扩展性强:Python能够轻松地与其他语言结合使用,比如通过C/C++扩展性能瓶颈部分,或者调用Java、JavaScript等其他语言编写的代码。
(5) 自动化和脚本编写:Python非常适合用来编写自动化任务和脚本。方便在ArcGIS等GIS软件平台内运行。
基于以上语言特点和优势,Python在统计、科学计算和AI编程等领域均应用广泛。很多地理信息软件平台,如ArcGIS系列、超图系列、GoogleEarthEngine等,都将Python作为支持的开发语言。
2.2. GIS专业教学中存在的问题
近年来,Python语言课程已经在地理信息科学专业人才培养中逐渐开展,对学生数据分析能力提高和思维培养起到一定效果。但是,通过对教学过程的总结和反思,发现现有教学内容和模式上还存在一些问题。
(1) 内容与专业脱节
目前,Python语言课程内容大多以讲授基础语法知识为主,过于重视语法细节的讲解,缺少与专业知识的联动,教学内容比较抽象。讲解案例主要是经典的数理问题和算法,较为枯燥,学生学习兴趣不高。加之缺少地理空间数据处理相关背景的教材、案例库等教学资源,因此在教学过程中很容易导致与专业脱节,没有培养学生解决GIS专业实际问题的能力。
(2) 理论与实践脱节
Python语言的学习不仅涉及语法和概念的理解,更重要的是应用到实际问题解决中去。尽管在现有教学中也设计了实践环节,但是由于教学实验案例匮乏等原因,导致实践教学效果不显著。另一方面,为了让学生更好地掌握Python在GIS中的应用,通常需要配置特定的软件环境。但这些环境的安装和配置往往比较复杂,容易出现问题,也一定程度上影响了实践教学的开展。
3. 基于BOPPPS模型的Python语言混合式教学模式创新与实践
为了解决地理信息科学专业当前Python语言教学中存在的问题,本文引入BOPPPS模型,针对性地设计了一种混合式教学模式。课前导入并设定与专业知识相关的学习目标,学生首先通过线上资源完成相关Python语言基础语法的学习,随后通过线下课堂进行GIS专业相关案例讲解和实践教学,最后进行课后练习,完成目标达成度分析和总结。通过创建课前、课堂、实践和课后四位一体的教学模式提高学生利用Python语言解决GIS专业问题的能力。
3.1. BOPPPS教学过程设计模型
BOPPPS是一种以学生为中心的、结构化的教学设计模型,旨在通过系统化的方式增强课堂教学的有效性。BOPPPS是由六个步骤组成的缩写词,每个字母代表一个特定的教学阶段。
(1) Bridge-in (导入)
导入部分的主要目的是吸引学生的注意力,并激发他们对即将学习的主题的兴趣。教师可以采用提问、讲述故事、展示有趣的事实或现象等方式来引发学生的好奇心和求知欲。例如,在地理信息科学专业的Python课程中,可以通过介绍一个实际案例,说明如何利用Python解决复杂的地理数据分析问题。
(2) Objective or Outcome (目标)
明确地向学生阐述本节课的学习目标或预期成果。这些目标应该是具体、可测量的,并且与课程的整体目标相一致。例如,“在本节课结束时,你将能够使用Python编写一个简单的脚本来处理地理坐标数据”。
(3) Pre-assessment (前测)
评估学生现有的知识水平和技能基础,以便调整教学内容和方法以满足不同层次学生的需求。这可以通过简短的小测验、讨论或问卷调查等形式进行。了解学生对Python编程以及地理信息系统的基础知识掌握情况有助于制定个性化的教学计划。
(4) Participatory Learning (参与式学习)
这是核心的教学环节,强调通过互动活动促进学生的积极参与。教师可以组织小组讨论、项目实践、角色扮演等活动,使学生在实践中学习新知识。对于Python课程来说,可以让学生分组完成一个小项目,如开发一个基于地图的应用程序,从而加深对所学概念的理解。
(5) Post-assessment (后测)
在课程结束时对学生的学习效果进行评估,检查是否达到了预定的学习目标。后测的形式可以是测试、作业或者课堂演示等。它不仅帮助教师了解教学效果,也为学生提供了反馈,让他们知道自己掌握了哪些知识,还需要在哪些方面继续努力。
(6) Summary (总结)
最后一步是对整堂课的内容进行回顾和总结,重申关键点并解答学生的疑问。教师还可以鼓励学生分享他们的学习体会,并对未来的学习提出建议。比如,在总结Python编程技巧的同时,引导学生思考如何将这些技术应用于其他地理信息相关的任务中。
通过遵循BOPPPS模型的设计原则,教师能够创建出更加高效和互动的课堂环境,提高学生的学习兴趣和参与度,同时确保教学目标得以实现。因此,这种方法特别适用于需要动手实践和技术应用的学科领域。
3.2. 基于BOPPPS模型的Python语言教学过程设计
下面以Python语言中的“列表”为例,简要介绍如何基于BOPPPS模型进行教学过程设计。
(1) 专业问题导入
展示一幅遥感图像,包含多个波段的像素值,提出问题:遥感图像处理中经常需要处理大量的数据,如图像的波段信息、像素值等,这些数据在Python中是通过什么方式存储和操作的?
(2) 课程学习目标
掌握Python列表的基本操作方法和在遥感图像处理中的应用实例,重点是Python列表的基本操作,如创建、索引、切片、添加、删除等,以及Python列表在遥感图像处理中的应用,如图像的裁剪、拼接、波段提取、计算等。
(3) 课前学习及测试
课前学生通过线上资源自学Python列表的概念和操作方法。通过前测了解学生对列表基础知识的掌握情况,为后续教学提供参考。
(4) 参与式学习
讲解Python列表的定义、特点(如有序、可变、可包含多种数据类型等)和基本操作(如索引和切片、添加和删除方法等);讲解如何使用列表表示遥感图像,并进行提取和分析。分小组分别将一幅遥感图像转换成Python列表形式,并进行图像的裁剪和波段计算等操作。
(5) 课后作业及总结
通过课后作业巩固学习内容,比如如何利用列表运算完成两幅遥感图像的上下拼接和左右拼接。同时,引导学生思考能否将列表应用于其它地理信息数据的表达,如点坐标、属性信息等。
3.3. 基于BOPPPS模型的Python语言教学实践
通过上述设计将BOPPPS模型与Python语言教学深度融合,建立了计算机编程语言和地理信息科学专业知识之间的联系,增强了学生对专业知识的理解和实践能力。因此,围绕该教学模式开展Python语言教学实践。
(1) 教学资源库、数据库和案例库建设
将传统Python语言教学内容录制成课程视频,打造线上课程资源供学生课前学习。同时,结合地理信息科学专业基础知识,基于Jupyter等集成开发环境,整合并重构教学资源,构建电子教学资源库。从地理学视角收集地理时空矢量或栅格数据,逐步形成数据库,并紧密联系的具体工程案例,形成经典案例库。
(2) 实践教学平台开发
基于JupyterHub开发和搭建了面向Python语言及时空大数据分析教学的课程实践教学平台。其中,JupyterHub是一个开源的多用户中心共享计算平台,它可以生成、管理和代理多个单用户Jupyter环境,适用于学生班级、企业数据科学小组或科学研究小组。该平台集成了Python教学资源库、数据库和案例库等,形成“教、学、练”一体化的教学平台。
4. 结束语
本文通过分析Python语言的特点及其与地理信息科学专业融合的痛点,提出了一种基于BOPPPS模型的混合式教学创新模式。该模式能够建立Python语言课程和地理信息科学专业知识之间的联系,解决了教学内容与专业脱节的问题。同时,通过开发课程实践教学平台,构建具有专业特色的教学资源库和案例库,实现了“教、学、练”一体化教学,解决了课程教学与实践脱节的问题。实践表明,在该教学模式指导下的Python语言程序设计课程显著提高了学生的专业学习兴趣及专业素养,取得了良好的教学效果,为学生更好地适应时空大数据和地理空间人工智能等技术奠定了基础。同时,该模式也为其它面向专业的通识课提供教学范例。
基金项目
感谢辽宁师范大学2024年度本科教学改革研究项目的支持,项目编号:lsbkjg202425。