基于数学建模背景下的数据结构教学探究
2013-04-30杨建辉
杨建辉
(周口师范学院 数学与信息科学系,河南 周口466001)
数学建模的基本思想方法是利用数学知识解决实际问题.而数据结构是数学与信息科学系信息与计算机科学专业的一门非常重要的专业基础课程,有大量抽象的数学概念和理论知识.在教学过程中,合理的融入数学建模的思想方法和思维模式,可以使学生将数值分析等数学方法用到数据结构课堂去思考和消化,用数学专业知识来处理数据逻辑关系,描述数据存储结构.这样,不但可以拓展学生素质,培养学生兴趣,增强学生动手能力,而且教与学相得益彰,教学效果明显.
1 在教学中融入数据建模思想的重要性
数学教育的根本任务是让学生掌握数学的思想、方法和技巧,并学以致用.在数据结构教学中融入数学建模思想方法是非常有必要的,主要体现在以下几个方面:
(1)弥补传统高等数学教材现代化解题手段的缺乏.如果教师能在实际教学中融入数学建模的思想和方法,就可以将 Matlab、Visual C++等软件的应用穿插于教学中,既可以弥补传统数学教材现代化解题手段的缺乏,又可以提高学生利用当代最新科技成果的意识,将数学和现代化技术有机地结合起来.
(2)弥补数学教学应用方面的不足.如果教师能在实际教学中融入数学建模的思想和方法,不仅能激发学生学习数学的兴趣,而且可以培养学生应用数学的意识,提高其解决实际问题的能力.
(3)促进任课教师的知识更新.要把数学建模的思想和方法融入到数据结构中去,数学教师不仅要具备渊博的数学专业知识,更需要具备丰富的实践经验和计算机编程及算法设计能力.这就迫使任课教师不断学习更多的新知识,促使知识的更新,从而提高教师的业务水平和科研能力.
2 教学中存在的问题
随着计算机技术日益发展,其应用方向和应用领域已经不再局限于数值运算和科学研究,而是渗透到各个领域,更多地涉及到问题分析、数据结构的设计和复杂的非数值处理和操作.数据结构课程具有一定的难度和抽象性,在教学中主要存在以下几个问题:
(1)先行课程的基础知识掌握不扎实.C语言程序设计是数据结构课程的前导课程之一,数据结构课程的教学效果直接与学生对其前导课程知识的掌握程度有关系.由于受课时数的限制,任课教师往往注重程序设计基本语法和程序结构的讲解,而对其精华的数据的数学逻辑特性讲解不够深入,这样学生只记住或了解了表现的东西,而没有深入理解其真正的数学特征.
(2)数据结构课程教学难度高.数据结构课程要求学生在理解数据逻辑结构、存储结构等基本概念的基础上建立算法,最终掌握对数据以及数据之间关系的处理方法,其理论性和抽象性使学生学起来很困难,加上学生对其前导课程指点理解不够透彻,使得该课程在教学过程中存在一定的难度.
(3)理论教学与数学思维脱节.数学思维是进行数据结构处理、算法实现的逻辑基础.而数据结构课程内容抽象、琐碎,涉及很多概念和数学方法,所有这些内容均自成体系,相互之间的衔接线索很少,没有一个整体的知识框架体系,这些内容在实际应用中又都很重要,但特征却不明显.这样,不少学生既没有深入理解数据结构的数学逻辑精髓,更没有体会到数学知识应用的乐趣.
3 课程改革探究
数据结构是计算机程序设计的重要理论技术基础[1].该课程不仅是软件工程的先导课,同时也是深入研究数学模型、数学算法的重要工具,有利于培养学生的数据抽象能力和程序设计能力.因此,该课程在教学中起着举足轻重的作用.针对该课程在教学过程中存在的问题,分别从以下几个方面对其进行改革探究.
3.1 教学指导思想的定位
数据结构课程教学的基本指导思想可以定位为:充分利用数学专业学生数学建模的思维,通过学习和掌握数学建模、算法设计、数据结构组织及程序实现等知识,逐步培养数学专业学生的抽象思维和逻辑推理能力以及分析问题和解决实际问题的能力,培养满足经济社会发展需要的应用型人才.经过数学建模训练的很多学生都会形成从问题描述推导出模型,再对模型进行分析修改,寻求出基本符合实际要求的答案.在实际解决一个问题时,通常采用如图1所示的求解步骤.将这种思想贯穿到课程教学中,有利于培养学生抽象思维和逻辑推理能力及解决实际问题的能力.
图1 实际问题求解步骤
为了改善传统教学模式存在的问题,使学生真正掌握数据结构课程,提高专业素质,经过多年的教学实践发现,在授课过程中采用数学知识情景和数学模型案例引导相结合的教学方法是比较适合的.
3.2 改革理论教学方法
3.2.1 数学知识情景教学方法
知识情景教学法是使学生处在创设的教学情境中,运用学生的无意识心理活动和情感,加强有意识的理性学习活动的教学方法[2].在教学过程中,可以将数据结构课程分为以下几部分:数据结构相关历史及其背景介绍、数据结构与数学思维方式的联系、具体数据结构(线性表、堆栈、对列、数组、树、图、网等)中的数学思维方法和思维模式.结合例子讨论数据结构内容对于数学学习的促进,特别是对于数值计算的实现和优化.在教学过程中,要以学生为主体,以教师为主导.在每个章节中都提出不同的数学问题,启发同学思考,以数学的思维模式进入该课程的学习.
比如在数组这一章节中,多维数组在内存中存储形式和元素的相对位置是教学的重点和难点.先和同学一块讨论二维数组的存储问题,通过引导学生回忆矩阵以及等差数列的相关性质,并结合课件或者黑板画图展示,使得学生形象直观地理解这一抽象问题,可以正确直观地得出二维数组的映像函数:
乘胜追击,带领学生共同总结一般意义上的n维数组的映像函数:
这种通过回忆数学知识情景、解决数据逻辑结构问题的例子很多.无一例外,通过这样的课堂设计,学生不但收获了数学和数据结构两个方面的知识,更重要的是体会到了数学的广泛用途和学习的乐趣,激发了学习的兴趣,提高了学习的效率,增强了自信和获得了作为数学系学生独有的成就感.
3.2.2 基于数学模型案例引导的教学方法
案例教学法是一种运用对实证的描述引入情景,引起分析、演绎、推断、归纳、解决实际问题的方法[3].基于数学模型案例引导的教学方法主要以培养学生的应用能力为主线,能够更好地激发学生的学习兴趣,提高分析问题和解决问题的能力.
高质量的案例是教学成功的保证.在讲授数据结构课程知识的过程中,结合教材和教学大纲,设计了一些反映各章节内容并蕴含一定数学思维方法的典型案例,来加深课程知识内容的理解,如表1所示.
表1 数据结构典型案例
3.3 加强课后实践环节
课后实践是数据结构教学过程的重要环节,结合课堂教案案例,布置数学相关的问题课后实践.比如,一元高次方程的求根问题在数学应用中是广泛存在的,根据伽罗华的群论理论证明知道,一元五次及其以上方程是没有求根公式的,也就是在一般情况下是得不到其精确解的.这个问题涉及到需要讨论数值根的存在性,以及如何控制所求数值根的精确度等数学理论知识.在这些数学理论知识的引领下,可以尝试写出迭代算法,编写程序来解决这个问题.在具体操作过程中,出现错误是难免的,鼓励他们相互讨论,群策群力修改完善.当经历一定的曲折过程得到最终想要的结果时,胜利的喜悦和成就感是巨大的.因为学生解决了一个自己以前想解决而不能解决的问题,而这样的教学实践效果是双倍的.总之,课后实践环节的加强,有助于学生数学思维能力的训练和数学建模思想的熏陶.
3.4 课程考核方式
课程考核是教学中的重要环节,是督促学生加强学习和了解教学效果的重要手段.根据专业的培养目标,结合数据结构课程的特点,本课程采用平时考核(占课程总成绩的30%)+期末考核(占课程总成绩的70%)的综合方式来评定学生的成绩.
平时考核成绩主要通过学生出勤率、书面作业成绩、实验成绩等方面综合体现.由于数据结构课程是一门实践性很强的课程,平时特别注重实验成绩的考核,根据学生所完成的实验效果,给以不同的成绩等级.这样可以激励学生的积极性和主动性,并将这种积极性和主动性贯穿于学习的始终.期末考核成绩主要是通过闭卷笔试成绩来评定.
4 结束语
总之,在数据结构课程的教学过程中融入数学建模思想方法,不仅搭建起数据结构知识与应用的桥梁,而且能够很好地引导学生在学习的过程中善于发现问题、提出问题及解决问题,为后续课程打下坚实的基础.
[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2005:4-20.
[2]沈玉春,卫铁林.现代教育理论[M].武汉:武汉大学出版社,2003:104-108.
[3]郑金洲.案例教学指南[M].上海:华东师范大学出版社,2000:27-33.