地理信息工程本科专业计算机程序设计课程改革

2022-05-19 08:14王丽娜阎晓东王志坚刘帅康
地理信息世界 2022年2期
关键词:信息工程程序设计编程

李 响,王丽娜,李 翔,阎晓东,王志坚,刘帅康

1.信息工程大学 地理空间信息学院,河南 郑州 450052;

2.郑州轻工业大学 计算机与通信工程学院,河南 郑州 450001

0 引 言

我国的地理信息系统(GIS)高等教育从20世纪80年代末起步,并迅速发展。2000年以后,GIS教育已步入发展快车道,截至2016年,我国已有超过170家高校及科研院所开设了GIS专业,每年培养GIS人才近万人[1]。信息工程大学地理空间信息学院位于河南省郑州市,20世纪90年代中期开设地理信息工程本科专业,是国内最早开设该专业的院校之一,拥有地图制图学与地理信息工程、地图学与地理信息系统两个学科博士学位授权点[2]。专业一级学科——测绘科学与技术在全国第三轮学科评估中排名第二,在全国第四轮学科评估中获评A+。

计算机科学与技术是GIS重要的理论和技术基础,因此计算机类课程在地理信息工程本科专业教育中具有重要地位。而程序设计语言作为计算机类课程中重要的专业基础课程,同时也是GIS专业的必修课程之一,教学水平高低直接影响到学生的基本技能掌握,进而影响人才培养质量。该课程也是地理信息工程本科专业教育上水平、上台阶的重要推动力。纵观地理信息系统的发展,从桌面GIS、组件式GIS、到WebGIS,再到云GIS以及现在的人工智能、大数据、物联网等,GIS发展每一阶段的前沿问题都离不开现代计算机技术的支持。但是长期以来,课程作为公共基础课由大学基础部面向全校学生统一授课。因此,地理信息工程本科专业大一、大二学生在学习专业课之前,仅学习过一门《C语言编程基础》,缺乏面向对象的语言、数据结构、Windows编程模型和应用程序框架等计算机基础知识。以往采取的方法是由各专业课授课教师根据各自课程的实际需求,拿出部分学时为学生补充程序设计语言基础内容。这在一定程度上能够弥补学生基础的不足,但存在程序设计语言不一致、内容部分重复脱节、教学资源浪费以及学生难以系统学习等问题。

针对上述问题,信息工程大学地理空间信息学院地理信息工程教研室开设了一门专业基础课——地理信息工程本科专业计算机程序设计,作为连接公共计算机基础课和专业课之间的重要纽带,将两者有机结合,在专业课程体系中的地位和作用如图1所示。课程旨在系统讲授与地理信息工程本科专业紧密相关的程序设计基础,让学生在正式接触专业课学习前,能够完全掌握计算机编程这样一门工具,因此课程可作为地理信息工程本科专业的专业基础课。本文对课程的初步改革和探索进行了总结和思考,以期推动课程的教学改革和计算机类课程设置的进一步完善。

图1 地理信息工程本科专业计算机程序设计在专业课程体系中的地位和作用Fig.1 The position and function of the computer programming design for GIS in the course system

1 课程改革基本原则

针对专业程序语言设计类课程,国内外高校都开展了相关的教学方法和课程内容改革。谢志龙等[3]以财经专业程序设计为例,从学科专业、学生性别、逻辑思考能力等方面全面论述了特定工作岗位下程序设计课程的教学策略。李海军[4]根据课程的网络调研结果和实验教学现状,提出了过程管理和自我管理相结合的程序设计实验教学方法。张力等[5]以经典案例作为知识脉络的中轴,采用案例教学方法培养学生分析问题、解决问题的能力,提高学生对课程的兴趣。赵莎莎等[6]以程序设计大赛作为依托,以专业竞赛案例作为学生学习的任务牵引,有效提高学生的实践能力。艾斯木比提.阿布力特甫[7]用明确的任务驱动来主导学生的实践操作,将实际应用贯穿于整个设计、授课、实践和评价闭环过程中。郭银章[8]和李沙[9]以项目任务驱动为切入点,从基本理论、教学策略和实施方法等方面论述了课程改革的重要意义。陈玉成[10]、兰聪花等[11]结合热门的混合式教学方法,将现代化教学手段(雨课堂、MOOC、移动手机端编程等)运用到课堂中,进一步加强学生的学习兴趣。

课程组在参考借鉴国内外教学改革案例的基础上,针对地理信息工程本科专业计算机程序设计课程存在的问题和不足,提出了教学改革的4项基本原则。

紧扣专业。地理信息工程本科专业计算机程序设计课程不同于一般的程序设计课程,重点在于将程序设计和地理信息工程本科专业的特点和要求相结合,特别是教学目标和课程设计要满足GIS各专业课的实际需求。

强化基础。基础不牢,地动山摇。因此在语言的选择上,放弃较为容易掌握的C#、Java、Python等流行编程语言,选择更接近计算机底层,能够直接操作计算机内存的C和C++作为启蒙语言,讲授基本语法和基础知识。另外,为了便于学生们更好地理解Windows编程模型,保留了MFC程序框架。

兴趣牵引。程序设计是一门逻辑性较强的课程,尤其C++、MFC等比较复杂,容易让学生畏难,感到枯燥无味。唯有激发学生的强烈兴趣,才能使课堂生动有趣,引导学生主动思考,有所收获。

目标考核。程序设计是一门实践性很强的课程,闭卷考试难以全面考察学生所掌握的知识体系和实践能力。因此,整个课程以项目为主线,教师将项目分解成若干问题到课程各个环节,学生拟定目标和计划,最终通过成果展示和项目完成度来检核是否达到课程的预定目标。

2 课程改革实施方案

2.1 课程目标

地理信息工程本科专业计算机程序设计课程,要求学生掌握C语言基础知识,以C、C++语言以及MFC为载体,了解计算机程序结构、设计和开发的概念,理解面向对象的编程概念(对象、类、继承、多态、封装等)和Windows编程模型,熟练使用以MFC为代表的应用程序框架编写计算机程序,进行算法设计与实现,并最终完成地理数据读取、显示、放大、缩小和漫游等基本操作的地理信息数据处理程序。根据紧扣专业原则,以一个地理信息数据处理程序贯穿课程始终,将程序的各知识点分解到课程的不同环节,学生通过课程的学习,能够最终独立完成该程序。这对培养学生的逻辑思维、GIS专业思维和通过编程解决专业问题的能力有不可替代的作用。

2.2 课程内容

为实现课程目标,课程内容整体设计为6大单元(表1):程序设计基础,C语言复习和回顾,C++语言基础,Windows编程模型,应用程序框架,地理信息数据处理程序设计。根据强化基础原则,在内容上特别注重一些原理性的知识讲述,如程序的编译与运行原理、字符编码基础、窗口编程模型等。其中2~6单元均安排了相应的实验,前4个实验是完成实验5(项目作业)的基础,实验之间是有机联系和前后贯穿的。

表1 地理信息工程本科专业计算机程序设计课程内容和学时安排Tab.1 The content and schedule arrangement of the basic courses related to computer programming design for those who are majored in GIS

2.3 教学方法

由于课程仅为40学时,为解决课程内容多和学时少的矛盾,教师需在授课前向学生强调1∶3学习比例法则,即课堂讲授和课下练习的时间需要保持在1∶3左右,才可能完成预期目标。同时为了保证学生在课堂上充分投入,课下能够自主预习和实践,以达到预期教学效果,要求授课教师按照兴趣牵引、目标考核为原则设计教学方法和课程考核计划。

2.3.1 激发兴趣、真心换真情

根据兴趣牵引原则,教师用同学喜闻乐见的武侠来类比程序学习,收到了很好的教学效果,教师以金庸武侠小说中的梅超风和全真教的武学修炼来对比程序学习策略,具体的教学步骤如下:

1)故事引入。教师先以比较生动的语言,也可以结合图片或者视频片段,简略介绍两种不同的武功修炼方式,然后抛出一个问题:为什么梅超风看起来武功非常凌厉,但是在两次华山论剑的时候,都是全真教的高手技高一筹?

鉴于冲击风的剖面形态是其区别于常规边界层风场的最典型特征,本文在文献[11]的基础上,改进并优化了雷暴冲击风模拟装置,在常规边界层风洞中成功模拟出两类适用于输电塔结构的大比例雷暴冲击风剖面,并分析了冲击风下输电塔的风振位移响应特性。

2)绘图总结。教师会给同学一段思考和讨论的时间,同时会给出全真教和梅超风不同的学习曲线图。绘制完毕后,教师会对照图,加以简单的解释。梅超风通过所得的《九阴真经》残缺本,学会了九阴白骨爪这样的快速功夫,但后期由于缺少内功的修为,武功始终处在二流,难以有所精进。她的学习曲线先快而后慢,最后很难再有增长;而全真教初期重视内功修为,看似缓慢,实际循序渐进,先慢后快(图2)。

图2 全真教和梅超风的学习曲线图Fig.2 The learning curves of Quanzhen and MEI Chaofeng

3)对照思考。教师会进一步解释程序学习中的心法就是数据结构、指针内存模型、算法等看似枯燥、强调逻辑思考、偏底层的技术,而九阴白骨爪则是可视化拖拽型等快速搭建应用的编程技术。全真教修炼路线对多数学生而言,拐点前无疑是巨大的挑战,尤其是当其他同学选择了梅超风路线快速前进的时候,更会倍感焦虑,可能会在拐点到来之前放弃,只有坚持不懈,才能学有所成。当然,教师最后也会引导学生,不是说每位同学都适合走“全真教”路线,取决于自己对程序设计的兴趣以及未来的职业规划,当你只是需要使用某个技术去快速解决问题时,不妨使用九阴白骨爪一招制敌。

除了兴趣牵引原则,实际教学中,教师的真心投入也能够换取学生努力学习的回报。在教师节时,学生们精心准备了一张节日卡,巧妙地以C语言的形式,写了一首包含教师姓氏的五言绝句。教师则通过从全班20个同学名字中随机抽取一个字,生成一首五言绝句回送给学生。并且,在讲授窗口编程模型时,将这一程序进一步升级成可视化的程序。这种作业不但激发了学生的学习兴趣,也增进了师生情谊。

2.3.2 目标考核、学长传帮带

在第一堂课上,教师会明确给出课程需要完成的项目作业(占整个考核成绩的35%),让学生明确学习目标,在后面的学习过程中,明白所学何用。但由于项目作业跨度较长,部分学生难以长期保持热情高涨的学习兴趣,难免懈怠。因此,在整个教学过程中,教师会不断通过课堂作业来锻炼和激发学生的学习动力。同时,教师会邀请上一届的学生作为课程的课外辅导员,负责课下答疑,检查作业和指导实验,这样既能让上一届学生回顾和总结原来所学,同时课下教学也能够得到充分保障。

2.4 课程考核

与多数课程主要依靠最终一次考核的方式不同,计算机课程的考核贯穿全程。考核形式也会根据每个班级情况做出灵活调整,课程考核包括3大部分。

项目作业(35%)。作业要求个人在学习完课程后,通过所学知识,独立完成作业。

课堂作业(35%)。每一个单元结束后,都会布置课堂作业,课堂作业的形式有纸质和程序两种,要求独立完成。

图3 以小组为单位的学术海报Fig.3 Examples of posters designed by each group

3 结 论

地理信息工程本科专业计算机程序设计课程历经8年的艰辛探索和建设,中间有3届教学班次按照上述改革方案进行了实践,取得了良好的效果,根据对学生的调研反馈,以及后续专业课的学习情况跟踪,形成如下结论。

1)课程将计算机基础课和专业课有效衔接起来,为学生打下了良好的面向本专业的程序设计基础。虽然该课程没有引进大数据、云计算、人工智能等新兴技术,但是由于强调基础,坚持采用C++语言,而没有采用更高级的面向对象的语言,如Java,C#,Python等,能够让学生很好地去理解内存、Windows窗口的基础原理等,提高了学生的底层开发能力和编程计算能力等。

2)由于采取了较好的教学方法,教师投入了大量时间和精力,学生上课的积极性很高,鲜有人会上课睡觉,课下也能够按照1∶3的比例,保证必要的时间投入预习和实践。

3)由于全过程管理和目标考核完全杜绝了学生上课不听,考试前突击的现象。学生在学习过程中付出很多,连续3年都是全体通过,极少出现成绩非常糟糕的学生。一个有意义的现象是在这种考核方式下,能够让动手实践能力强的同学崭露头角,而不是传统意义上成绩最好的学生获得较高的评价,也从另外一个层面说明了课程注重学生动手实践能力培养的特点。

下一步仍需对课程进行完善,对教师而言还需全身心投入才能让课程获得更多学生的好评,让学生更加受益。

猜你喜欢
信息工程程序设计编程
医学专业“Python程序设计”课程教学改革总结与思考
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
电子信息工程综合实践中信号处理系统的应用
从细节入手,谈PLC程序设计技巧
电子信息工程的现代化技术探讨
探讨电子信息工程设计的自动化技术实践