陈芸 李长伟
摘要:结合教育部对于地方高校转型为应用型大学的精神,根据地方院校实际教学情况,按照数学软件主要功能,针对不同专业,结合专业所学数学课程内容以及各专业学科研究特点,对各专业开设相关数学软件类课程如何设置进行了探讨。
关键词:应用型;数学软件;大学数学;課程设置
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2019)20-0107-02
开放科学(资源服务)标识码(OSID):
1 引言
在如今高速发展的信息时代,随着个人计算机以及智能手机、平板电脑等硬件的普及;以及互联网的高速发展,相关的数学类软件、编程语言等不再仅仅是理工科专业的专属。随着各种数学软件、编程语言的易用性提高和广泛普及,以及对课程教学积极的促进作用,其他专业对开设相关课程也提出了迫切需求,用以更加方便、科学高效的解决其专业问题。本文的目的是结合各种数学软件、编程语言和各专业的特色,对如何开设合适的课程进行探讨,以此促进教学内容以及课程体系的改革,达到学以致用的应用型人才培养目标。
2 数学软件课程教育的现状
现阶段在基础类数学课程如《高等数学》《线性代数》和《概率论与数理统计》等课程中加入各种数学软件的使用和讲解,已经有很多高校教师进行了诸多有益的尝试并取得了较好的效果,为促进教学和增强学生动手实践能力提供了很多经验,例如文献[1]。随着社会的发展,在生产实践中越来越多的实际问题必须通过数学知识、数学建模和现代数学软件,三者相互结合才能得以解决。[2] 在一些和统计学相关的专业课程中,如《生物统计学》《医学统计学》《管理统计学》《环境统计学》等课程中,因为实际问题计算量和规模较大,大多不便于手工求解,更加需要通过统计软件来解决。
但如果无后续的进阶学习,学生对于相关软件掌握不牢,知识体系不够完善,在面对实际问题中可能会遇到问题棘手、数据量大、缺失数据较多、数据格式不统一、数据需要进行预处理等一系列问题,不能像教科书中那样易于处理,遇到此类问题时如何寻求解决方案需要给学生指明方向。同时授课对象是面向理工、文管等不同学科、不同专业的学生,不宜采用同样的软件或解决方案,需要结合各自专业特色进行相关软件的讲授。
3 相关数学软件课程设置建议
3.1 符号运算与数值计算等科学计算类软件
在很多高校开设的《数学建模》或《数学实验》课程中,为锻炼学生使用数学软件求解数学模型解决实际问题的能力,都会涉及很多数学软件。其中由美国MathWorks公司出品的商业数学软件Matlab因为众多的工具箱以及丰富的帮助文档可以帮助用户解决很多专业问题,可谓是多面手。对于机械设计及制造、自动化、通信等工科专业中开设该课程是非常适用的,例如其强大的Simulink仿真模块在以后的学习或工作中可以继续研究和使用。但是面对功能强大、种类繁多的各种工具箱,初学者在安装时不好取舍,也容易造成体积庞大而臃肿。除Matlab软件之外其他专业在《高等数学》或者《微积分》《线性代数》《概率论与数理统计》等通识教育课程中可结合实际选用Mathematica、Maple、MathCAD等软件。同时沃尔夫勒姆公司开发的wolframalpha.com网站可以快速地实现绘图、极限求解、求导、积分、矩阵和向量计算以及概率和统计相关计算等功能,除此之外作为计算知识引擎,可以根据用户所提出的各种问题给出答案,而非像百度、Google等搜索引擎根据用户的相关搜索而返回网页链接等信息。该网站使用十分便利,并不需要特意去安装软件,只需一个可以访问互联网的终端设备,通过浏览器即可使用。在文献[3]中采用移动端开源数学软件SageMath在实践教学中取得了良好的教学效果。但是由于Matlab、Mathematica、Maple、MathCAD等软件需要付费,可以选Octave、Scilab等免费软件替代,并且安装体积较小。其中Octave是GNU项目下的开源科学计算软件,Scilab软件是由法国国家信息、自动化研究院开发的开源软件。值得说明的是Octave其编程风格类似于Matlab软件,熟悉Matlab的用户学习Octave语言非常容易。与此同时来自麻省理工学院开发的Julia语言俨然成为科学计算领域一颗冉冉升起的新星,集众家之所长,并且拥有高性能。Julia可望成为科学和工程计算的新一代主流编程语言。[4]
3.2 统计类软件
在大数据时代,各个高校越来越重视统计分析类软件的应用。首当其冲的是功能强大的SAS,它在诸多学科被广泛应用,被誉为统计分析领域的标准软件。但是对于初学者来说,因为要学习其编程语法,不容易入门,而且其体积庞大。目前,免费开源的R、Python等语言也越来越受到重视,体积小巧,程序简洁易读以及来自世界各地开发者贡献的功能包来满足使用者的需求。并且结合RStudio、Sublime、PyCharm、Jupyter等优秀的IDE进行高效的学习和深入研究。对于统计学、数据挖掘、机器学习、生物信息学等研究方向建议开设。对于社会科学、管理科学、医学统计等研究方向建议开设SPSS课程,因SPSS具有友好的图形菜单用户界面,使用非常方便,容易掌握。也可以通过编程满足个性化要求,实现更多自己需要的功能。类似的也有EViews、Stata 、Weka等软件,其中EViews和Stata对于计量经济学等相关方向结合较为紧密,而Weka更侧重于数据挖掘方向,较为方便地实现数据预处理、回归、聚类和分类、实现关联规则和数据可视化等。质量管理统计软件Minitab,对于质量改进以及试验设计等方面有需求的可以了解学习该软件。在社会科学领域,尤其是结构方程模型中经常使用Amos或者Mplus软件。科学计算和统计类软件种类繁多可针对不同专业或研究方向结合教学实际挑选合适的软件进行讲解。
3.3 数据挖掘类软件
信息时代数据的爆炸增长对数据挖掘提出了更高的要求,其中Python语言以其高效、免费、易学易用等特点受到了极大的关注,它是一种解释型、面向对象、动态数据类型的高级程序设计语言。结合Anaconda环境管理软件,使得Python语言更加容易安装和配置。使用Jupyter、Visual Studio Code 、PyCharm等优秀的IDE,以及丰富的工具包资源,可以实现Web开发、科学计算、统计与分析、数据可视化、数据挖掘、机器学习等诸多功能。同时免费的R语言和Weka等软件也有类似的功能和广泛的用户群。同时商业数据挖掘软件SPSS Modeler也有不俗的表现。
3.4可视化类软件
随着大数据时代的到来,数据可视化的应用越来越广泛,无论在商业领域还是经济、科学等领域为了便于将数据分析的结果更加直观地呈现出来,并进行人机交互,帮助用户更加容易地查看和了解信息,从而快速、准确的做出决策,这些都对数据可视化提出了迫切的需求。其中Tableau、PowerBI等商业智能软件在此领域有着广泛的用武之地。通过用户的组合和修改,可以实现诸多的可视化效果,建议经管类专业开设相关课程。同时D3.js以及来自百度公司的ECharts,都是利用JavaScript实现的开源可视化库,可进行高度个性化定制。建议有较强编程能力的专业如计算机等开设此类课程。在R语言中使用ggplot2等软件包,Python语言结合matplotlib等软件包在可视化方面也有广泛的应用。除此之外,在R语言和Python语言中还有更多的可视化相关软件包值得学习和尝试。
3.5优化类软件
虽然功能强大的Matlab可以很好地解决优化类问题,但是Lingo软件相比Matlab软件体积更加小巧,在求解线性、非线性和整数最优化模型时更快,更有效率,并且Lingo软件的建模语言,可简便的求解大规模优化问题。对于开设运筹学等优化类课程的专业建议开设此软件。同时Matlab除了自己本身的优化工具箱外,还可以结合Cplex、YAMLIP实现求解优化问题等。值得注意的是,有关使用Julia进行优化模型求解的研究也与日俱增。
3.6论文排版软件
科技论文写作能力是大学生急需提高的方面。在编写数学公式时可使用Microsoft word软件结合MathType进行数学公式撰写,简单易用,在文献[5]中表明采用MathType软件的教学效果远优于传统讲授,学生能够在很短的时间内即可掌握。但是在科学研究领域,如发表论文,撰写报告等有时需要使用LaTeX软件进行排版与写作,与Microsoft word软件所见即所得不同的是LaTeX的设计思想是所见即所思。掌握LaTeX需要花费一点时间熟悉其写作方式,但是使用LaTeX写出的数学论文非常美观。而且ShareLaTeX、Overleaf等网站(目前ShareLaTeX、Overleaf两个网站已经合并)支持在线写作LaTeX文档。也有另一个可进行高效写作的标记语言Markdown,通过简单易用的语法就可以使文本拥有一定的格式,让用户专注于写作。最惊喜的是可以实现LaTeX数学公式的效果。支持Markdown语法的编辑软件有Typora、MarkdownPad等,它们相比LaTeX的相关软件更加小巧,也易于安装和配置。R、Python语言结合相关IDE也支持Markdown语法,如使用R Markdown包可以撰写和发布精美的文档或报告。在论文写作或报告中,也有使用Origin、SigmaPlot软件进行科学绘图。动态数学软件GeoGebra在制作各类数学动画方面十分方便,如果专业方向有此需求也可根据实际情况开设课程讲解。
4 结束语
在授课过程中,往往受到课时的限制。一方面要完成相关理论的讲解和学习,一方面要介绍相关的软件操作或者编程等知识,二者此消彼长,在有限的课时内想达到两全其美的效果往往不尽如人意。可指导学生自主学习,积极探索。鼓励优秀学生参加相关比赛来熟练应用软件,提高利用所学理论知识解决实际问题的能力。例如可参加数学建模相关比赛,如中国大学生数学建模比赛,全国大学生电工数学建模竞赛等。统计类比赛有全国大学生统计建模大赛等。数据可视化比赛有数据可视分析挑战赛,Tableau可视化分析争霸赛等。数据挖掘比赛有泰迪杯数据挖掘挑战赛等。同时Kaggle、阿里天池、DataCastle、科赛等平台提供了更多的数据挖掘、数据分析、机器学习等各种类型的比赛,也有来自公司直接组织的比赛如腾讯广告算法大赛等。这些比赛的题目很多都是来自生产实践,或者业界亟待解决的问题。通过参赛可极大的锻炼选手的动手实践能力,甚至有的还可以获得丰厚的物质奖励。
实现应用型人才培养与创新教育任重道远,加强理论与实际应用的联系是每一位教育工作者一直孜孜以求的。在高校数学相关教学中,理论联系实际的需求十分迫切,而相关的软件可以将理论与实践有机地结合在一起,起到桥梁作用。由于市场上的软件种类繁多,可实现的功能大多有交集,有的时候无法说清孰优孰劣,并且更新迭代快速,与此同时新软件、新语言层出不穷,有时会造成选择困难,在课程设置中应注意到这一问题,可让学习者结合实际熟悉其中一种后,触类旁通,再接触其他软件,进行学习、对比,最后选择适合自己的。
参考文献:
[1] 彭司萍, 杨萍. 探索大学数学教育中数学软件应用能力培养的新方法[J]. 大學数学, 2010, 26(s1):115-117.
[2] 王海英. 数学知识、数学建模、现代数学软件关系与结合途经的探讨[J]. 中国地质教育, 2011, 20(1):95-97.
[3] 王叔洋, 杨艺. 移动端开源数学软件在电子实践教学中的应用[J]. 高教学刊, 2018, No.88(16):106-108+111.
[4] 王宏琳. 新一代编程语言Julia[J]. 石油工业计算机应用, 2016(2):8-11.
[5] 曹海鹏, 何珊, 邵露,等. 运用数学软件开展高校数学基础课程改革初探[J]. 教育教学论坛, 2017(44).
【通联编辑:王力】