GIS专业Visual Basic程序设计课程实验教学探讨
2015-12-07王培法王丽
王培法 王丽
王培法(1980-)、男,汉族,山东长清人,讲师,博士,研究方向为高分辨率遥感信息提取,15996225557,wangpeifa1980@163.com
项目:2014年度大学生实践创新训练计划项目(省级重点),项目编号:201410300017Z
摘要:程序设计课程是地理信息科学专业重要的基础课程,是学生掌握地理信息系统开发技能的必修课,因此课程的实验教学尤为重要。本文从程序设计课程实验教学内容设计原则、实验内容和实验教学方法三方面进行探讨:认为实验教学内容应基于为课堂教学服务的原则、实用导向的原则和贴合专业的原则进行设计,并示例了实验教学内容;实验教学应该采用以学生為教学主体,教师辅助引导的教学模式,综合运用启发式教学法、案例教学法和问题讨论教学法进行教学。
关键词:程序设计;地理信息系统;Visual Basic;实验教学
中图分类号:G642.0 文献标识码:A 文章编号:1674-098X(2015)09(c)-0000-00
地理信息系统是管理和分析空间数据的科学技术,是集地理学、计算机科学、测绘学、空间科学、信息科学和管理科学等学科为一体的新兴边缘学科[1]。地理信息系统专业自1998年我国设立以来得到了蓬勃发展,并于2012年教育部改名为地理信息科学(Geographic Information Science,GIS)专业。计算机类课程是地理信息科学专业课程体系的重要基础和组成部分,在地理信息科学专业教学中具有极其重要的地位[2]。而程序设计课程是计算机类课程中的重要基础课程[3],是后续GIS课程(如《GIS二次开发课程》)的专业基础课,因而在地理信息科学专业教学中具有十分重要的地位[4]。
程序设计课程是一门实践性很强的课程,重点在于让学生掌握程序设计的思想,培养学生利用编程思想解决实际问题的能力,因此课程实验教学显得尤为重要,有必要对实验教学工作进行探讨研究。以下将结合自身教学,从程序设计课程实验教学内容设计原则、实验内容和实验教学方法三方面进行探讨。
1 实验教学内容设计原则
笔者所在的南京信息工程大学地理与遥感学院开设的程序设计课程为《GIS可视化开发语言》,开课学期为第三学期,是GIS二次开发等后续课程的基础课。考虑到程序设计语言学习的难度、《GIS二次开发》等后续课程教学的方便性,选择Visual Basic作为教学语言,课程总共48学时,其中理论课32学时,上机实验课16课时。显然在课时有限的情况下完成教学内容的实践,需要对实验内容审慎确定,为此在内容设计时确定了以下原则。
(1) 为课堂教学服务的原则。课堂教学是程序设计基础知识讲解的主要平台,而学生由于只是课堂学习而没有实践,始终处于“眼高手低”的状态,结合讲课内容来设计实验内容,能够让学生更进一步的掌握教学内容,也能够让学生学到如何动手编程解决问题。
(2) 实用导向的原则。实验教学内容设计不能是简单的课本知识的验证性试验,课本例题或习题虽然也可以巩固教学内容,但学生会觉得没意思,没挑战性,学生的学习激情不高,教学效果较差。每次实验课应该根据教学内容设计一个有实际应用的实验内容,能解决一个实际问题,学生会觉得能够用自己所学编写一个有用的程序是十分具有挑战性的任务,会大大激发学生的编程热情。学生完成任务后也会有自豪感和对下次实习的期待,能够有效的提高学生学习热情和自学的动力。
(3) 贴合专业的原则。程序设计课程实验内容可以只是编程相关内容,但会让学生觉得课程和专业脱节,学生会问这门课和专业的关系?作为老师可以很好的解答这个问题,但与其去解释,不如把专业相关内容尽量融合到实验内容中去,把一些简单的,容易理解的专业知识放到实验中,让学生编程解决简单的专业问题。
2实验教学内容
根据以上原则确定的实验教学内容如表1所示,根据教学需求实验内容包括验证性、综合性和设计性三种实验类型。验证性实验主要目的是使学生通过实验实践课堂知识,掌握基本的编程技能。综合性实验难度稍大,需要学生综合运用所学知识解决问题。设计性实验难度最大,要求学生按照实验要求,综合运用所学知识独立完成一个功能完整的程序。
表1 实验内容表
序号 实验项目名称 实验类型 学时数 实验目的
1 简单计算器 验证性 2 掌握按钮控件、数据类型、变量、表达式和函数的使用
2 经纬度格式转换 验证性 2 掌握字符串函数、表达式和条件语句的使用
3 文字查找和替换 综合性 2 掌握文本、标签、命令按钮控件、字符串函数和循环语句的使用
4 表项的选择和交换 验证性 2 掌握列表框和组合框、属性为数组属性的使用,循环语句的使用
5 遥感图像信息统计及边缘提取 综合性 2 掌握for循环和数组的使用,了解和实践算法的编程实现过程
6 月均气温计算 验证性 2 掌握子程序过程和函数过程的编写和调用
7 画点线面程序 综合性 2 掌握平台的坐标系统,笛卡尔坐标系统的建立、鼠标事件,点线面的画法
8 记事本程序 设计性 2 掌握常用控件、菜单、通用对话框控件的使用和文件读写操作
(1)简单计算器实验。计算器在日常生活中常用,此实验要求实现简单的整数加减乘除功能,学生根据功能要求自由设计计算器界面。功能实现时会涉及变量的作用域这一重要知识点,学生通过编程能够加深对变量作用域的认识,从而掌握变量的声明及使用。第一次实验难度适中,学生能够获得成功的自豪感,学生心理上不会产生抵触情绪,同时会提出诸如小数点如何处理,如何通过键盘只输入数字等问题,老师给予指导,可调动学生学习的积极性和自学能力的培养。
(2)经纬度格式转换实验。经纬度是常用的地理坐标信息,在专业软件中可用经纬度信息建立点数据文件,但通常要求以度为单位记录的经纬度信息。本实验就是要求学生编写经纬度转换程序,将以度分秒表达的经纬度(如114°26′14.83″E)转换为以度记录的经纬度信息(如114.437453°E),主要目的是让学生掌握函数和条件语句的使用方法。在学生完成的基础上,带领学生将源代码移植到Excel中,编写转换函数,实现Ecxel的经纬度转换,并将数据输入到专业软件中建立点数据文件。实验和基础的专业知识结合,在学生实践编程的同时解决一个小的实际问题,并将其引入到Excel的VBA开发中,最终在专业软件中建立空间数据点文件,学生会认识到编程的作用,也会体会到编程的快乐。
(3)文字查找和替换实验。文字查找和替换是常用功能,此实验要求学生在熟悉文本控件SelLength、SelStart和SelText属性,字符串函数和循环语句的基础上编程实现。由于一次性完成具有一定难度,因此可分步实现。首先实现一次查找,一次替换,然后再实现全部替换,程序界面学生可参考Word的查找和替换对话框来设计。
(4)表项的选择和交换实验。在常见的文本编辑软件字体对话框中有字体、字形和字号的选择设定,在专业软件中有图层、字段、比例尺等的选择,这都可由列表框和组合框实现。本次实验主要对列表框和组合框控件进行实习,让学生掌握控件属性为数组的属性的使用,实验分成两个小实验,一是模拟Word软件中的字体对话框,一是模拟ArcGIS中的栅格统计对话框,实现列表间项目的移动。
(5)遥感图像信息统计及边缘提取实验。图像信息统计是遥感专业软件的基础功能,本实验通过对遥感图像处理来实习数组和循环语句,让学生实践编程实现给定算法。实验内容包括一幅单波段遥感图像像元均值、最大值和最小值的统计,基于Prewitt算子的边缘提取。为突出实验内容,遥感图像信息的读取和显示由教师编写好程序,学生完成图像信息统计和边缘提取实验内容。图像信息统计编程难度不大,边缘提取实验需由教师讲解原理,展示边缘提取结果,由学生实现实验内容。
(6)月均气温计算实验。气温是学生熟悉的气象要素,本实验通过让学生分别编写月均气温计算的子程序过程和函数过程,来实习过程的编写和调用。实验中的气温记录数据由教师编写程序读取,学生完成月均气温过程的编写、调用和计算结果的显示。月均气温计算中需要计算日平均气温,日均气温程序计算是放在月均气温计算程序里还是单独编写一个过程,由学生思考讨论两种方式的区别,教师给予点评。
(7)画点线面程序实验。空间数据是地理信息系统重要的组成部分,本实验要求学生编程实现通过鼠标画出点线面,并可以修改所画数据区域坐标范围。此实验模拟的是专业软件中的简单数字化功能,让学生通过编程实现一方面是实践讲授的坐标系统、鼠标事件和画点线方法,另一方面是让学生了解专业软件中点线面是如何画的。学生完成后教师可抛砖引玉的简单说明画出点线面后涉及的数据存储问题,激发学生兴趣,让学生自己去查找資料了解空间数据的主流存储格式及发展史。
(8)记事本程序实验。Windows操作系统中记事本是小巧便捷的文本编辑程序,本实验要求学生参照记事本或自己设计文本编辑软件实现相应功能。实验中要求学生熟悉菜单、通用对话框控件和文件的读写操作,学生最终能完成一个小的文本编辑软件。
3实验教学方法
程序设计课程实验教学的目的是让学生巩固课堂所学知识,提高学生的动手能力,这就决定了实验教学方法和课堂教学方法注定不同。实验教学不能采用课堂的教学模式,也不能采用教师先演示学生再模仿的方式,应该采用以学生为教学主体,教师辅助引导的教学模式进行程序设计课程的实验教学。在实验教学中,可根据实验内容选择以下教学方法:
(1)启发式教学法。实验教学中教师花较少时间把实验目的、实验内容和要求给学生讲解清楚,然后下面的时间都交给学生,让学生去自由思考,教师给予指导。教师在指导学生过程中,采用启发式的指导方法,不是直接告知学生哪儿错了,为什么错了,而是和学生一起,教师引导学生思考问题出在哪儿,怎么调试解决,这样学生是主动思考、主动学习的过程,而不是被动接受知识的过程。学生把问题解决后,一方面可以提高其编程调试技巧,一方面增强其思考问题和解决问题的能力,学生学习的自信心和成功感也得到了增强。教学指导过程中对学生遇到的共性问题应该给学生说明,并引导学生思考解决问题。
(2)案例教学法。实验内容若是基于常用软件或专业软件的某个功能确定,可采用案例教学法。教师在实验教学时不讲解实验相关细节,直接演示相关软件功能,让学生实现相似功能,界面设计由学生自由发挥,教师给予指导。如文字查找替换实验可演示Word软件和ArcGIS中的功能,画点线面实验可演示ArcGIS中的功能。
(3)问题讨论教学法。在实验教学中,有些问题可采用讨论教学法,以提高教学效果。如在月均气温计算实验中,到底是把日均气温计算程序编写在月均气温计算程序中,还是单独编写一个日均气温计算程序过程,可让学生充分讨论,教师给予点评。在实验教学中,学生也可通过相互交流解决编程问题,提高协作能力的同时,也可提高学生的学习兴趣。
4 结语
程序设计课程是GIS专业的重要基础课程,是后续GIS软件开发课程的基础。程序设计课程强调学生的实践能力,本文从程序设计课程实验教学内容设计原则、实验内容和实验教学方法三方面对实验教学进行了探讨,以教学效果为出发点的内容设计原则和实验内容,以学生为主体的实验教学方法,在本校取得了良好的教学效果,可为相关教学人员提供参考。
参考文献:
[1] 黄杏元,马劲松. 高校GIS专业人才培养若干问题的探讨[J]. 国土资源遥感,2002,3:5-8.
[2] 杜培军,闫志刚. 对地理信息系统专业计算机类课程设置的探讨[J]. 测绘通报,2005(1): 63-66.
[3] 张驰,王英利. 面向GIS专业的C语言程序设计教学研究[J]. 长春理工大学学报,2013,8(2):211-212.
[4] 赵冠伟,夏丽华,陈颖彪等. 地理信息系统专业学生编程能力培养研究[J]. 大学教育,2014,11: 25-27.