摘要:针对传统c++程序设计与学科专业特点脱节的现象,重点讨论c++程序设计在遥感影像处理中的教学特点,提出从教学方法、教学内容和实践环节3个方面革新现有物联网工程专业c++课程教学体系,对提高课程的教学效果具有重要的指导和借鉴意义。
关键词:物联网工程;遥感影像处理;教学改革;c++程序设计
1、背景
物联网(the intemet ofthings)作为21世纪我国战略性新兴产业,有着广阔的应用领域和巨大的市场需求。《物联网“十二五”发展规划》圈定9大领域重点示范工程,包括智能工业、智能农业、智能物流、智能交通、智能电网、智能环保、智能安防、智能医疗、智能家居。作为培养物联网应用技术专业人才的学科,物联网工程专业在20:10年被教育部批准成立。物联网涉及的研究与应用领域非常广泛,如何在高校的教学实践环节中设置与高校特色相匹配的课程体系,成为我们必须考虑的首要问题。作为智慧地球应用可持续发展的技术保障,gnss(globalnavigation satellite system,卫星导航,地理信息,遥感)与物联网结合被用于多个专业领域。
遥感信息技术是空间信息科学技术的重要组成部分,也是物联网应用中的重要组成部分。近年来,随着空间技术、大测绘技术、计算机技术、软件技术、信息技术、数字图像处理技术等相关领域的进展,遥感技术得到了快速发展,全国众多高校先后开设了与遥感相关的专业和课程。在图像处理方面,由于c++代码执行效率高,有着丰富的类库可供程序直接调用,被广泛用于物联网工程的应用研究中。此外,vc++提供了各种功能强大的开发向导,使之成为遥感图像预处理、色彩增强和专题地类解译的最佳选择。图1所示为基于c++程序设计的遥感影像处理流程。众多科技工作者已经采用c++或vc与其他编程语言混合的模式开展遥感信息提取、影像处理等研究工作。针对传统c++语言的教学与改革,有教育工作者作了相应的研究,并对非计算机专业的c++教学工作进行了探索。然而,针对物联网工程专业中的遥感信息处理,如何将c++课程教学与本专业的应用领域相结合成为亟须解决的问题。
2、教学方法革新
良好的教学方法是提高教学质量的重要保障。传统的c++教学中,教师侧重于讲授,而学生则被动接受。当整个课程结束时,虽然教师已讲授了所有要点和关键点,但学生掌握的只是大量的离散知识点,无法系统学习到课程的体系结构和精髓,更不会自如地应用c++去解决实际问题。同时,学生对为什么要学习编程技术,学完有什么用并不明确,导致学习的主动性不高。因此,革新传统教学方法是提高本课程教学效果的前提。
2.1 编程兴趣培养
在遥感影像的处理和分析过程中,有许多现成的应用软件可供选择,如著名的erdas、envi、pci、arcgis等。学生在实际操作这些软件时,只是选取特定的集成模块,输入规定的参数后便可得到最终的处理结果,且容易被每一次影像处理后的效果所吸引,但并不明白具体的处理细节如何实现。教师可以根据学生普遍感兴趣的操作模块,选择其中有代表性的应用案例,讲明c++关键程序原理和具体实现流程,让学生自己动手去编程实现;并说明这些功能模块并不是最优,尚有很多改进空间,以此激发学生自己研究算法并编程实现。最终,让学生明白所学专业和编程语言之间的紧密关系,增强专业兴趣和编程兴趣,增加学习的积极性和主动性。
2.2 互动教学方法
现阶段,各高校都已经实现了多媒体辅助教学。教师通过ppt将所讲授内容展示给学生,节约了大量板书时间,提高了工作效率,增加了单位课时的信息量。但是,编程是一门循序渐进的课程,c++语言从语法上有对c语言的继承,但也有大量的变化。这些变化的部分可以通过ppt直观展现给学生,但要加深印象效果却不佳。在一些市场化的计算机软件培训中,培训师采取的是动手演示操作过程,让学员跟着模仿操作,进而学会实际操作步骤,加深流程的实现环节。同理,可以将这种教学方法引入到课堂教学中。教师讲授完一个知识点后,不要直接用ppt显示一个完整的实例程序段,而是直接打开c++编程环境,手工输入这个程序段,一边输入一边解释每一个变量是怎么定义的,每一个程序片段要实现哪些功能,其中涉及哪些语法和变量;最后,显示编程效果,验证程序段的可靠性。在整个互动的教学过程中,学生直观看到了一段程序的实现过程,理解了输入
数、运算过程和输出结果的相互关系,会加深其记忆和理解。同时,采用互动的方式,挑选学生到讲台上实现一个编程过程,并在敲打代码的时候给台下的学生讲解,加深知识点的掌握和记忆。经过这个锻炼过程,学生在编程时会不由自主地模仿编程细节,达到灵活掌握相应知识点,养成良好编程习惯的目的。
2.3 理论联系实际
传统教学中,受限于学时、教学条件等因素,教师无法将每一个知识点都与实际应用相联系,而是中规中矩地讲授语法知识,导致学生学完所有知识点后,不能将其组合起来实现一些基本功能,更别说解决复杂的实际问题。学习编程的目的是为了解决实际问题,而这种讲授方式显然违背了编程语言学习的初衷。因此,教师在讲解每一个知识点的过程中,应该与专业背景和实际应用联系起来。比如:对矩阵的处理是c++语言的一项基本操作,而遥感影像的数字化存储采取的就是矩阵存储方式;还有指针的操作,对影像数据的颜色操作就有基于指针的检索。通过这种理论联系实际的教学方式,学生自然而然就将所学的c++语言知识点与本专业知识联系起来,对提高编程水平和解决专业问题都很有帮助。
3、教学内容革新
3.1 基础语法教学革新
在c++教学中,因语法的继承性,很多教师花费了大量时间在重复讲授c语言的基础语法知识。从编程语言的集成和扩展方面,c语言让大家学会了程序设计的方法,而c++则提出了面向对象程序设计的新风格。因此,在c++程序设计课程教学中,教师应该只占用少量的时间去介绍c语言与c++语言的继承部分,而把大量时间投入c++面向对象程序设计的思想与语法教学中,如类与对象、重载与模版、继承与派生等。