APP下载

基于数学思维的《数据结构》课程教学方法研究

2019-03-05谢爽吴彩云

现代计算机 2019年3期
关键词:粗糙集数据结构代数

谢爽,吴彩云

(西南林业大学数理学院,昆明650224)

0 引言

《数据结构》是计算机专业的一门专业核心课程,本课程具有高度的抽象性和应用的灵活性,内容主要包括线性表、数组、堆栈与队列、广义表、树与二叉树、图与网络分析、内排序等内容。作为一门核心基础课,能否学好《数据结构》对后续课程的学习也起着至关重要的作用[1]。

通过调查发现,学生普遍反映该课程概念抽象,知识点繁多,很难理解。如果提高学生的学习积极性和程序设计能力,为后续可视化程序设计、操作系统、数据库系统等课程打下良好的基础,真正提高学生利用所学知识解决实际问题的能力和实践动手能力,是课程教学的难点所在。

为切实提高《数据结构》课程的教学效果,加强对教材中定义和概念的理解,在实际教学过程中,将数学的理论和方法引入课堂教学,这样既可以培养学生的实际编程能力,又能够加强对数学的理解,教学效果十分明显[2]。

1 基于数学思维的课程教学探索

1.1 教材和教学学时安排

目前西南林业大学数理学院《数据结构》课程教学主要面向的是信息与计算科学专业,该专业有着扎实的数学基础,前期已经学过数学分析、高等代数、离散数学、复变函数等数学类课程,为了保证教学效果,针对严蔚敏教授的《数据结构》教材,内容详实,结构完整,但是概念非常抽象,对于基础和条件相对薄弱的高校而已,学习起来困难极大,在教材选用上选用了唐发根教授所编写的《数据结构》教程,教学效果良好[3]。

在学时安排上,为了能够更加详细地叙述教材内容,目前信息与计算科学专业的教学计划是理论学时64,实验学时18,实习学时32。通过大量的实验和实习学时,提高学生的实践动手能力。

1.2 多种形式丰富课堂教学

鉴于信息与计算科学专业有着扎实的数学基础,所以在课堂教学中的每一节内容都通过大量的数学实例去引导学生,加深学生对抽象概念的理解。例如在第一章绪论中关于算法的描述,教材中采用文字表述了如何求两个正整数M 与N 的最大公因子,要求学生去回忆高等代数中关于多项式的理论,在高等代数中曾有这样一个定理:对任意的f(x),g(x)∈P[x],若其带余除法为f(x)=q(x)g(x)+r(x),则两对多项式f(x),g(x)和g(x),r(x)有相同的公因式和最大公因式。通过类比发现此处关于正整数最大公因子的描述和高等代数教材中关于最大公因式的描述非常类似,通过这种对比和分析,学生马上就清楚了为什么求最大公因子的算法是这样描述的了。

与之类似的例子数不胜数,例如在第四章堆栈与队列这一章中关于递归的概念[4],在教材中关于递归的说明非常抽象很难理解,很多学生都感觉很困难,在实际教学过程中通过引入大量的数学实例去辅助学生对递归的理解。例如在数学分析中关于Fibonacci 序列的定义如下:F0=0,F1=1,Fn=Fn-1+Fn-2(n ≥2),要求学生通过编程实现求Fibonacci 数,又例如在高等代数中关于n 阶行列式按行展开中有:行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和,即:D=ai1Ai1+ai2Ai2+…+ainAin,要求学生使用递归实现对n 阶行列式的计算。通过数学与计算机两方面融合,既加深了对数学概念和递归概念的理解[5],也提高了实际编程能力。

1.3 加大实践教学环节

除了正常的课堂教学外,每次课后都布置一定量的习题要求学生必须完成。所布置的习题大部分都是与数学课程相关的,例如教材中给出了求最大公因式的算法,要求学生编程实现求最小公倍数的算法,并利用递归和非递归两种形式实现,又例如教材中讲述了一元多项式的运算,要求学生编程实现集合的交、并、补、差等运算。通过编程实现大量的数学实例[6],既可以进一步回顾曾经学过的数学内容,又可以和数据结构中的概念形成共鸣,提高对数据结构的理解和掌握,进一步提升实践动手能力。

2 课程教学效果的分析探讨

本文根据西南林业大学数理学院信息与计算科学15 级《数据结构》课程考试成绩和已经取得的数学分析、高等代数、离散数学、概率论与数理统计课程成绩进行对比,从而说明数学基础对《数据结构》课程教学起着至关重要的作用[7],为简便起见,随机抽取了班上10 名学生的成绩,具体数据如表1 所示。

表1 学生成绩表

通过上述表格我们容易看到,数学成绩较好的学生期末考试《数据结构》考试成绩也比较理想。下面我们通过多元线性回归分析进一步看到数学基础和《数据结构》是正相关的。这里设《数据结构》成绩为因变量y,自变量为:数学分析x1,高等代数x2,离散数学x3,概率论与数理统计x4,利用SPSS 软件建立线性回归方程,其回归方程为:

y=-13.8596+0.4989x1+0.267x2+0.1841x3+0.2698x4

其中:R2=0.9318,P=0.0040,通过P 值和R2结果看到,线性关系显著,且成正相关关系。由此可见,数学基础对《数据结构》课程的学习及其重要,大学期间应加强数学基础,切实提高学生分析问题和解决问题的能力。

3 基于粗糙集理论的学生综合成绩评价分析

学生综合成绩评价是反映教学成果的一个非常重要的环节,学生成绩也是学生对课程知识掌握程度的直接体现。本节运用粗糙集理论建立学生成绩评价模型,为简单起见,仍然采用上节五门课程进行分析。

3.1 对学生成绩进行离散化处理

为方便起见,这里采用等宽度离散化处理方法进行粗糙集处理,为此做如下设置:

属性值1 表示《数据结构》成绩为63~74 分,属性值2 表示《数据结构》成绩为74~85 分,属性值3 表示《数据结构》成绩大于85 分;

剩余四门课程成绩与属性对应关系使用表格汇总如表2 所示。

表2 课程成绩与属性

表3 离散化后的决策表

属性1,2,3 分别表示优、中、差。于是得到如表3所示的离散化后的决策表。

3.2 计算权重的重要性

这里约定用a,b,c,d,e 分别代表数据结构、数学分析、高等代数、离散数学、概率论与数理统计。根据属性的依赖性,属性的重要性,约简与核,对上表进行如下计算:

由此可得:

通过权重系数可以看到,影响学生综合成绩因素较大的是数学分析和概率论与数理统计,而在上节中的线性回归方程中,也容易观察到,对《数据结构》课程成绩影响较大的也是数学分析和概率论与数理统计课程成绩。由此可见,在专业课程安排上,我们可以适当增加数学分析和概率论与数理统计的教学课时,加大师资力量投入,既可以提高其他课程成绩,也能够很大程度上提高学生综合素质。

3.3 计算学生综合成绩

根据上节分析得到的权重系数,可根据如下公式计算学生综合成绩:

将通过上述公式计算所得综合成绩结果与平均值计算结果进行比较,比较结果如表4 所示。

表4 综合成绩结果与平均值计算结果

通过表格可以看到,通过粗糙集确定课程权重算出综合成绩排名和通过简单的平均计算综合成绩排名完全一样,但是粗糙集分析方法可以有所侧重,而不是将所有课程完全等同,所以更能体现学生的综合成绩。通过粗糙计算排名和《数据结构》成绩排名进行比较可以发现,《数据结构》成绩排名和粗糙集分析得到的综合成绩排名几乎一样,由此可见,《数据结构》课程的学习效果对学生综合素质的提高起着至关重要的作用[8]。

4 结语

《数据结构》是计算机很多后续课程的基础,在很多学科中都起着承上启下的作用,如何提升学生对数据结构概念的理解,进一步提升个人动手能力,教师在实际教学过程中,还应积极思考,寻求教学方法,更新教学理念,从而充分调动学生的学习积极性,切实提高个人实践动手能力。本文利用数学思想的灌输,在实际教学过程中起到了较好的效果,但是对于数学基础较差的学生考虑还不够周全,在以后的教学中还应进一步解放思想,争取取得更加满意的教学效果。

猜你喜欢

粗糙集数据结构代数
基于隶属函数的模糊覆盖粗糙集新模型
巧用代数法求圆锥曲线中最值问题
局部双量化模糊粗糙集
数据结构线上线下混合教学模式探讨
3-李-Rinehart代数的结构
重典型应用,明结构关系
基于粗集决策规则性质的研究
一种基于改进的层次分析法的教师教学质量评价模型
一个新发现的优美代数不等式及其若干推论
数据结构与算法课程设计教学模式的探讨