面向地理学专业的程序设计教学改革与课程建设
2021-07-09杜国明
[摘 要] 传统程序设计语言C、Java等对计算机理论知识要求高、入门难,对地理学专业学生而言,在学習过程中会出现大量的语法错误,导致学生编程学习兴趣不浓。Python作为一门易学、易用的编程语言,与地理学专业学习有机结合,具有明显优势并深受学生欢迎。针对教学过程中出现的问题,可运用科学合理的教学方法、注重基础性与前沿性相结合、加强案例教学、鼓励学生积极参加地理学相关知识竞赛、充分利用网络教学以及强化学生上机实验能力的培养等,并在本科教学中起到良好的效果。
[关键词] Python语言;地理学专业;程序设计;教学改革
[基金项目] 2020年度广东省高等教育教学改革项目“在线教学效果评测与质量保障”(粤教高函〔2020〕20号);2018年01月—2020年12月国家重点研发计划项目“深圳市洪涝实时调度决策支持平台及示范”(2017YFC1502706);2019年01月—2021年12月中山大学本科教学质量工程类项目“面向地学专业的程序设计核心通识课程建设”(37000-18832606)
[作者简介] 杜国明(1971—),男,山东安丘人,博士,中山大学地理科学与规划学院副教授,主要从事地学专业教学研究。
[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2021)20-0049-04 [收稿日期] 2021-01-12
一、引言
地理学是研究地理要素和地理综合体的空间分异规律、时间演变过程及区域特征的学科,具有综合性、交叉性的特点,其研究内容是地球表层人与环境相互作用的机理,研究过程需要耦合自然要素和人文要素,是一门“探索自然规律,昭示人文精华”的学科[1]。作为一种综合性学科,地理学的应用范围非常广泛,常常需要处理和分析复杂地物,程序设计往往能起到事半功倍的作用。正如苹果公司的CEO库克说过:学习编程要比学习英语更重要。因此,程序设计是地理学专业中的一门重要课程。常见的程序设计语言有Java、C、Python等。由于Python语言功能强大且语法简洁、易读及可扩展性,是目前美国大学最受欢迎的程序设计语言,如麻省理工学院的计算机科学及编程导论课程就使用Python语言授课[2]。又如,斯坦福大学从2009年开设Python语言程序设计类课程,替换了之前的Java和C语言课程[3]。因此,我们面向地理学专业选用Python语言作为本科生程序设计的教学语言。
二、面向地理学专业程序设计的教学改革与课程规划
(一)传统程序设计语言在地理学专业教学中存在的问题
目前,针对我国地理学专业开设的程序设计语言大多为C、C++、C#、JAVA等。这些编程语言语法复杂,对计算机理论知识要求高、入门难[5]。例如,C与C++语言要求变量在使用前先定义,严格区分大小写,每行语句以分号结尾,数组在使用前要先定义大小(易造成数据冗余或不足),指针和链表难学难用……对于编程基础薄弱的地理学专业学生来说,程序代码晦涩难懂,出现错误的时候又难以区分是运行错误还是逻辑错误,很容易挫伤学生学习程序设计的积极性。C#对计算机的配置要求较高,造成应用上的局限性。Java语言主要针对对象方法展开教学,教学内容主要是类、对象、封装、继承、多态、接口、多线程等,运行效率不及C或C++语言,易学性不及Python,所以与Python相比,实际教学价值不大。
上述程序设计语言都存在复杂的语法结构,对地理学专业学生而言,由于缺少计算机体系结构的相关知识,在学习程序设计过程中会出现大量的语法错误,因此无法与地理学专业学习有机结合起来,学生也难以得到系统的培养。学生虽然学习了编程语言,但并不能应用于实际的编程工作中,导致地理学专业学生编程学习兴趣不浓,仅为了考试而学,“考完即忘”的现象普遍存在。
Python作为一种轻语法的程序设计语言,具有易学、易用的特点,降低了学生学习的难度,可以弥补上述程序设计语言的不足,非常适合地理学专业程序设计课程。
(二)Python语言用于地理学教学的优势
Python是一门高级程序设计语言,由吉多·范罗苏姆(Guido van Rossum)于1989年底发明,是开源、免费的,简单、易学[4],比Matlab等商业软件具有先天优势,不会出现因授权而被“卡脖子”。Python的代码书写规则、语法简洁,不需要在使用变量前定义。同样输出一段文字,三种语言分别如下所示。
C语言需要4行代码,如下所示:
#include
int main()
{
printf("学好程序设计!");
return 0;
}
Java语言要定义一个类Main,代码如下:
public Class Main(){
public static void main(String[] args){
System.out.println("学好程序设计!");
}
}
python语言仅需要一行即可,如下:
print("学好程序设计!")
Python的优势显而易见。另外,它还能够与地理信息科学最常用的商业软件ArcGIS有机结合在一起,为解决复杂的地理问题提供有力支持。这是因为,ArcGIS开发语言默认安装Python,为地理学专业学生学习程序二次开发提供了极大的便利,非常适合地理学专业程序设计课程。Python的科学计算功能强大,方便数字图像处理,提供高效的数据组织与处理功能、多种数值计算、种类丰富的图形绘制功能。