APP下载

新工科背景下Matlab 在计算机专业数学教学中的应用

2021-10-17毕学慧刘华明李怀敏

关键词:兴趣小组数学课程工科

毕学慧,刘华明,李怀敏

(阜阳师范大学 计算机与信息工程学院,安徽 阜阳 236037)

从2017 年2 月开始,“‘新工科’建设复旦共识”“天大行动”和“北京指南”相继问世.与此同时,钟登华[1]、陆国栋[2]对“新工科”的建设意义、建设思路、建设探索等方面进行了详细的阐述.“新工科”建设对人才培养提出了新目标定位与需求,在该背景下,高等教育的改革应具有新理念、新结构、新模式、新质量、新体系[3].在技术革新和产业结构的变革中,为满足企业对新型高层次工程技术人才的需求,高校教育改革迫在眉睫.目前,“新工科”建设已成为高校研究的“新风向”,但“新工科”研究大多数还集中在一流高校,地方性本科院校对“新工科”建设的研究还不够,作为本科教育主力军的地方本科院校应紧跟国家步伐,加快对“新工科”建设的研究与探索.数学课程作为众多课程中的基础课程,更是改革中的重中之重.

计算机与数学联系十分紧密,在计算机科学中,数学的重要性尤为突出,计算机科学各个领域的方法与技术,都是基于一种甚至多种数学理论[4].高等数学、线性代数、概率论与数理统计、离散数学等数学课程是计算机专业的基础课程,在计算机专业人才培养中具有十分重要的地位和作用[5],是学生学习后续专业课程的重要工具,同时也是全国硕士研究生入学考试的一个重要组成部分.计算机专业中的算法类、图形图像类、程序设计类以及人工智能类课程与数学都有很大的联系.

计算机专业是新工科发展的重要学科之一,按照新工科教育的要求,计算机类专业的学生应该有很好的逻辑推理能力和实践创新能力,具有较好的数学基础和数学知识的应用能力[6].为培养适应社会需求的计算机专业人才,主要研究数学软件Matlab 在计算机专业数学教学中的应用,以进一步提高学生的创新、实践等能力.

1 大学数学的教学现状

作者结合十多年教学经验,通过实际调查和深入研究,发现高校计算机专业数学类课程的教学改革虽然取得了一定的成效,但并没有从根本上解决以下三方面问题:第一,数学课程内容与计算机专业课程内容脱离.教师只为上数学课而教数学,轻视数学课与计算机专业课之间的联系.教学内容陈旧,教师没有做到与时俱进,仅从数学的角度出发,注重学生对数学知识点的掌握,较少讲授数学知识的背景及应用,难以激发学生的学习兴趣,未考虑计算机专业学生的实际需求,使得数学课程的改革严重滞后计算机专业课程的改革.第二,理论与实际脱离.由于课时等多种因素的影响,教师在教授数学课程时一般只注重理论知识的传授,很少结合实际,忽视了理论与实际以及专业的衔接,学生很少有实践的机会,数学意识和数学思维得不到培养,违背了计算机专业应用型人才培养的定位.第三,考核方式落后.目前,国内绝大数高校的计算机专业的数学课程都是以笔试为主,考查学生对数学知识点的掌握,考核内容和专业很少有联系,很难考查计算机专业学生的数学应用能力和学习过程.

2 开展大学数学实验

大学数学实验教学主要是通过数学软件实验的方法,让学生掌握数学知识和解决实际问题.

2.1 必要性

随着计算机技术的飞速发展和大数据时代的到来,绝大多数领域都已普及计算机,作为培养新时代人才的大学,尤其是培养计算机人才,数学课程解题采用手工计算,很明显不合时宜.钱学森、吴文俊等众多科学家早已指出计算机在数学学习中的重要性,而且,科学计算能力的低下已成为我国高等教育落后于国外的一个瓶颈.

大学数学课的理论内容相对比较枯燥,有些内容晦涩难懂.由于课时的限制,教师若要按照大纲的要求,在规定时间内完成理论教学内容的授课,一般都比较匆忙,无暇顾及到学生学习中的困惑.学习内容抽象,学生有问题无法得到及时解决,从而导致学生学习兴趣低下,效果不佳.大学数学实验课程是理论课程的辅助,可以让计算机专业学生经历知识形成的过程,并通过自主分析、探究的形式得到数学结果,从而提升学生的实践能力、应用能力、自学能力和分析能力[7].

2.2 Matlab 软件简介

Matlab 是美国MathWorks 公司推出的一套高性能的数值计算和可视化科学计算软件,是目前国内外高校和研究部门进行科学研究的重要工具,主要由主程序和提供各种功能的工具箱组成,其中主程序部分是Matlab 的核心,包含数百个内部核心函数,工具箱是扩展部分,是用Matlab 的基本语句编成的各种子程序集,用于解决某一方面的专门问题或实现某一类的新算法[8].

在国际学术界,Matlab 已经被确认为是准确、可靠的科学计算标准软件,在国外Matlab 已成为线性代数等多门课程的基本教学工具,在国内更是全国大学生数学建模竞赛的首选计算工具软件[6].

鉴于Matlab 强大的数学功能和计算机专业学生的特点,选用Matlab 作为计算机专业数学教学中的学习工具.

3 Matlab 在计算机专业数学教学中的应用

下面介绍利用Matlab 解决高等数学、线性代数、概率统计、离散数学以及与计算机专业相关的一些数学问题.

3.1 在高等数学中的应用

在高等数学的教学中,借助Matlab 辅助教学,可以帮助学生更直观地理解极限、导数、微分、积分和中值定理等抽象的概念和定理,从而更好地体会其中的内涵.计算机中的软件开发、程序设计等都需要用高等数学的方法来解决.

例1求

在Matlab 的命令窗口输入

x=-400∶0.01∶400;

comet(x,atan(x)./x);

可视化显示如图1 所示.

图1 极限过程可视化显示图

例2用Sobel 算子检测图像边缘.

边缘检测常用的一种方法是以一阶导数为基础的检测算子,如Sobel 算子、Roberts 算子等,用g(x,y)表示图像,可求得在点(x,y)处的梯度为式(1),幅度大小为式(2)或式(3)[9].

下面用Sobel 算子求图2(a)中土星的边缘,结果如图2(b)所示.

图2 Sobel 算子检测边界结果图

在Matlab 的命令窗口输入

3.2 在线性代数中的应用

线性代数中的计算和化简的步骤很多,过程繁琐,学生在求解的过程中,必须步步小心,教师在教学中也是重计算、轻应用.一般来说,教材中的例题都是比较简单和理想的,教师若想与实际问题相结合,当面对庞大的数据、繁琐的步骤,若采取手算的方式是很难实现的,将Matlab 适时适量地引入到线性代数的教学中,例如求行列式、矩阵运算、求解方程组、求矩阵的特征值和特征向量、求向量组的极大无关组等问题,可以增强课程的工程背景,强化学生的应用意识,调动学生的学习积极性[10].计算机数据结构、密码学、算法、计算机图形学、最优化等技术都是以线性代数为基础的.

例3设向量组a1=(1,0,0)T,a2=(1,1,1)T,a3=(2,1,1)T,a4=(4,2,2)T,求该向量组的秩及其一个极大线性无关组.

在Matlab 的命令窗口输入

求得R(A)=2,小于向量的个数4,因此向量组是线性相关的.求向量组的极大无关组可以通过命令rref(A)求解.在Matlab 窗口中输入命令如下:

可以取a1,a2为向量组a1,a2,a3,a4的一个极大线性无关组.

例4获取图像的前景和背景图像.

图3(a)是一副灰度图像,应用线性代数中的矩阵减法求硬币所在的前景图像和背景图像.程序的大致思路:把图像看做矩阵,对图像进行滤波以去除噪声点,通过闭操作填补细小的断点,再求取阈值得到二值化图像.前景图像就是二值化图像覆盖下的图像beforeimg,语句中backimg=I0 -beforeimg;得到前景图像后,用原始图像I0 减去前景图像beforeimg(如图3(c)),得到背景图像(如图3(b)) .

图3 图像的原始、前景和背景示意图

在Matlab 的命令窗口输入

3.3 在概率统计中的应用

概率论与数理统计是一门应用性很强的学科,在人工智能、信息安全等方面都有重要的应用.但在传统教学中,教师一般都是先教授定义、定理、例题,再让学生套用公式解题,导致学生缺乏一定的分析能力、应用能力和实践能力.通过Matlab 辅助概率统计教学,可以使一些抽象的内容直观化,易于学生理解,还可以解决区间估计、假设检验中的复杂计算问题,激发了学生的学习兴趣,使学生达到学以致用的目的[11-12].

例5判别图4 中物体的种类.

目前在人工智能中较为活跃的研究领域是深度学习的应用,采用GoogLeNet 对图像进行分类.GoogLeNet 已经对超过一百万个图像进行了训练,可以将图像分为1 000 个对象类别(例如猫、铅笔、键盘等).

Matlab 主要代码如下:

输出结果:Probability=95.51%

图4 给出了可视化的图像结果,图4(a)是待识别的图像.为了能够说明概率的分值,只列出了1 000 类中前五个概率较高的名称:分别为:‘bell pepper’,‘cucumber’,‘Granny Smith’,‘butternut squash’,‘candle’;其概率值分别为:0.955 1,0.020 4,0.006 9,0.002 5,0.002 4,如图4(b)所示.从这个概率值可以看出,分值最高的类别最有可能是该物体所属的类别.因此对应95.51%的概率值,认为该物体属于“bell pepper”类别.例子的程序见网页:https://github.com/LIUHUAMING888999/matlab_function/blob/master/pepper_classify.m.

图4 概率在图像分类中的应用

3.4 在离散数学中的应用

离散数学是一门应用性很强的数学课程,是计算机专业的核心课程之一,在该门课程的教学中,紧密结合实际,紧跟计算机发展的主流技术,才能有效地对离散数学与其他计算机应用类专业课程进行衔接和整合[13].例如数理逻辑、集合论、代数结构、图论分别在人工智能、信息检索、信息安全、网络结构等领域都有广泛的应用,借助Matlab 辅助教学,可以提高学生的学习积极性和课程的趣味性.

例6计算图5 中顶点V0到V7的最短路径和最短距离[14].

图5 例6 图示

Matlab 程序:

因此可以看出求得的最短路径为:V0→V1→V4→V7,最短距离为11.函数f_path 见网址:https://github.com/LIUHUAMING888999/matlab_function/blob/master/f_path.m.

3.5 在专业问题和实际问题中的应用

在学习完数学课程和Matlab 的相关基本理论后,教师应适当选取一些和计算机专业相关的案例,让学生动手去做,这样可以激发学生的学习兴趣,感受数学知识和软件的强大功能,而不会让学生认为数学是很枯燥的知识,和他们的专业没什么关系.例如,在学习完矩阵的乘法和逆矩阵之后,教师可以提出“密码破译”问题[10].另外,学生也可以对一些实际问题自己分析求解,例如“流行病”等问题.

4 实施方法和成效

受课时限制,国内大多数高校的计算机专业的数学课程都只开设理论课,缺少实验课.作者通过组建兴趣小组的形式,指导兴趣小组成员课下验证一些定理、例题,编程解决一些专业问题和实际问题.学生参加兴趣小组后,学习兴趣得到了很大提高,分析、实践和创新等能力进一步得到提升.对作者近3 年所带的阜阳师范大学的6 个班(2016 级、2017 级、2018 级计算机科学与技术专业)进行研究,其中每年均有1 个班的学生参加兴趣小组,1 个班的学生未参加兴趣小组,发现参加兴趣小组的同学的高等数学期末考试平均成绩比未参加兴趣小组的同学的成绩一般高3~5 分,如表1 所示.此外,在数学建模、蓝桥杯、互联网“+”等各种竞赛中,参加兴趣小组学生的获奖项数也比未参加兴趣小组的学生多,如表2 所示.

表1 阜阳师范大学2016—2018 级计算机科学与技术专业高等数学平均成绩统计表

表2 阜阳师范大学2016—2018 级计算机科学与技术专业学生获奖项数统计表

5 小结

新工科的提出,使得高等教育的改革刻不容缓.在新工科背景下,要求计算机专业人才需要具备实践和创新能力,这不仅体现在计算机专业课程的学习中,更应该在高等数学、线性代数、概率论与数理统计、离散数学这些基础数学课程的学习中打好基础.长期以来,传统数学教学一般只注重理论教学,作者提出借助Matlab 辅助教学,将理论与实践结合,基础数学知识和专业课程知识结合,学生通过参与一些基础性、应用性、研究性、创新性实验,可以激发学生的学习兴趣,进一步提升学生分析和应用能力,从而成为合格的新工科计算机人才.借助Matlab 辅助教学,在计算机专业大学数学教学中已初见成效,但还存在一些问题,例如如何选择合适的案例,实验教学和理论教学的课时如何合理分配,这些都将是进一步研究的方向.

猜你喜欢

兴趣小组数学课程工科
中粮工科机械技术(无锡)有限公司
“新工科”和OBE模式下的车辆工程实践课改革
基于在线教育技术下的大学数学课程预习
新工科下创新型人才培养的探索
大学数学课程思政教学的探索
新工科背景下项目推动式教学模式的探索
让钟表发展史走进数学课程思政课堂
艺术教育类课程与兴趣小组有效结合的策略
周末加油站(V)
浅谈高中数学课程资源的开发