大数据专业课程教学改革探索
2021-11-28戴培山范敏
戴培山 范敏
摘要:R语言数据分析编程课程是数据科学与大数据技术专业的重要专业课程,大数据专业及其相关课程建设尚处于探索阶段。以《R语言数据分析编程》为例分析了大数据专业教学中存在的问题。并针对存在的问题,提出了相应的解决方案,包括建立完善的课程教学资源,突出实践环节在人才培养中的重要作用,利用竞赛提高学有余力同学的数据分析能力和综合素质。
关键词:大数据专业课程;课程教学资源;实践环节;数据分析竞赛
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2021)30-0191-03
开放科学(资源服务)标识码(OSID):
Exploration on Teaching Reform of Big Data Major—Data Analysis Programming With R
DAI Pei-shan1, FAN Min2*
(1. School of Computer Science and Engineering, Central South University, Changsha 410083, China; 2. School of Social Development and Management, Hunan Womens University, Changsha 410083, China)
Abstract: The course of data analysis programming with R is an important professional course for data science and big data technology major, and the construction of big data major and its related courses is still in the exploratory stage. This paper takes the course of data analysis programming with R as an example to analyze the existing problems in the teaching of big data major. In view of the existing problems, this paper puts forward the corresponding solutions, including the establishment of perfect teaching resources, highlighting the important role of practice in personnel training, and using the competition to improve the data analysis ability and comprehensive quality of the students who are willing to learn.
Key words: big data professional course; course teaching resources; practice link; data analysis competition
隨着数据获取技术的飞速发展,数据处理在国民经济和生产生活中起着越来越重要的作用。应运而生的数据科学与大数据技术专业旨在培养具有大数据思维、运用大数据思维及分析应用技术的高层次大数据人才[1-2]。中南大学是全国第一批开设数据科学与大数据技术专业的高校。该专业从2016年获批以来,教育教学和人才培养还处于探索阶段,对该专业相关课程的教育教学改革具有重要的意义。数据分析知识与技能是该专业的基本知识和能力要求,《R语言数据分析编程》课程是数据分析知识与技能训练的重要载体。据我们所知,我校《R语言数据分析编程》课程是全国唯一将R语言与数据分析编程结合起来的一门课程。该课程教学体系的建立需要不断进行探索和实践。数据分析技能的培养需要在实践中培养,实践环节和授课环节具有同等重要的作用。因此,探讨了《R语言数据分析编程》课程的教学实践新方法。
1 国内外研究现状
R是一个优秀的数据分析和制图的软件环境。R语言在国际和国内的发展现状差异非常大,国际上R语言已然是专业数据分析领域的标准,但在国内R语言的应用领域还比较小众[3-7]。造成这种情况的原因是多方面,这与版权意识,语言障碍,国际交流,知识普及等都有关。国外在R语言方面有大量的教学视频和教学书籍可供使用。经典书籍有《R语言实战》,《R语言编程艺术》,《数据挖掘与R语言》和《机器学习:实用案例解析》等。Coursera等慕课系统中也有许多R相关的在线课程。而国内高水平的教材和教学资源非常少,代表性的有薛毅的《统计建模与R软件》和《R语言实用教程》,其他R语言数据分析的视频主要源于收费不菲的线上或线下培训班。
2 教学方法的改革
从国内外R语言教学的发展现状来看主要存在两大问题:
(1)大多数的R语言课程以介绍R语言语法结构为主,与R语言的强大数据分析功能特点脱节。由于该课程开设在大二和大三年级,在学R语言类课程之前会学习C语言,C++和Java等编程语言课程,因此会造成学生在学R语言编程知识时兴趣缺乏。
(2)R语言教学以上课讲授为主,实践环节薄弱。从数据科学与大数据技术专业角度来看《R语言数据分析编程》应该是理论与实践紧密结合的一门课程。新知识和新技术的飞速发展,导致各个专业课程越来越多,一个结果是各门课程的课时大幅压缩。导致在课程教学中由于课时的限制,实践环节往往被压缩甚至忽略。R语言的学习曲线是比较陡峭的,入门难。仅凭课堂讲授很难融会贯通的将其应用于数据分析与处理。
针对以上的问题,采取了如下教学改革措施:
1)制作了完整的《R语言数据分析编程》课程教学课件,填补了该课程教学课件的空白。教学课件章节明确,层次清晰。数据科学与大数据技术专业的核心技能是数据分析技能。根据这一专业特点,在教学课件制作过程中始终将R语言语法知识与实际的数据处理问题紧密相连,做到理论与实践相结合。制作课件内容包括基本的数据集建立管理和图形绘制,还包括统计分析技术介绍,以及数据分析中常用的机器学习算法。
2)制作了针对各个章节内容的源代码资源。R语言集成开发环境RStudio有一个非常好的功能就是在代码区域,只要按一个按钮代码就可以自动执行一条语句,光标选中一个语句片段后,就可以直接运行该语句片段。这种功能非常适合课堂演示代码的运行过程。针对每一个章节的数据处理实例,制作各章节教学内容的源代码资源,供教学演示和学生课下实践使用。
3)在课程教学过程中,紧密结合大数据与数据科学专业的特点,始终围绕数据分析这个核心任务,将R语言的语法结构知识与数据分析案例相结合,增加教学案例。首先,将数据分析的各个环节按照先后次序进行模块化分析,将数据处理的整个过程分为数据采集和创建,数据集管理,数据的分析和数据可视化四个环节。教学过程紧扣数据处理的四个环节展开,教学过程中知识的讲授和数据处理的演示操作穿插进行,促进学生理论与实践的结合。
这里以R语言进行基本的数据可视化为例来说明案例教学的实施过程。之所以选择数据可视化(图形的绘制)为例是因为在数据分析和处理的过程中一图胜千言,而R语言具有非常强大的绘图和数据可视化功能。在介绍本部分的内容的时候,首先,介绍R语言中四种图形系统,分别介绍他们的发展历史,优缺点。使同学们对于R语言数据可视化有一个宏观的了解。然后,聚焦到基础图形的绘制,对图形的绘制离不开数据,要有一个使用的数据集,数据集的选取也要遵循:1)数据集要满足展示数据可视化知识的数据特性;2)数据集不能太大,容易获取;3)学生对数据集的信息比较熟悉。满足这样的基本条件才能使学习将主要的精力集中在数据可视化的方法上。这里选取R语言自带的数据集mtcars。该数据是从1974年美国汽车趋势杂志中提取的,包括燃油消耗和32辆汽车(1973-74型)的汽车设计和性能的11个指标。本次实验用的指标是:车身重量(wt)与油耗(mpg)。接下,来给同学们展示一幅包含本章节课程主要知识点的数据可视化的结果图片,启发同学们根据图片分析在数据可视化中包含的基本元素,主要有:点和线,坐标轴,题注,文本,图例和数学公式等。这些元素又有线条特征和颜色等参数。在分析完数据可视化的基本元素后,需要了解一下数据的结构和内容。可以在RStudio平台运行以下代码进行数据结构和内容的查看,以及绘制带连线的散点图。然而,这样绘制出来的线条是杂乱的,并不是我们预期的结果。接下来就可以引导学生思考出现这种情况的原因。
问题出在哪里?因为图中的第一个点可能并不在wt轴的最左边,如果第二个点的wt轴比第一个点的值大,那么就会出现线条由左往右画的情况,造成线条交叉。解决的办法是将mtcars数据框按照wt的值从小到大重新排序。代码如下:
mymtcars<-mtcars[order(mtcars[,6]),]
plot(mymtcars$wt, mymtcars$mpg, type="b")
后面再以以上的繪图为基础,进一步扩展。可以改变线条和点的类型和颜色,这样的代码在课堂上直接演示并实施观看运行结果,可以提高学生学习的兴趣,避免课程讲授模式与C语言,C++和Java等编程语言课程类似的教学模式造成的学生学习兴趣缺乏。改变上图绘制的折线颜色为彩虹色。首先,设置彩虹色的颜色数目为n= 6,调用rainbow(n)函数生成彩虹色。在绘制图像时,col=mycolors参数引入刚生成的彩虹色。其他设置不变(其线条类型为点线,宽度为默认宽度的5倍,点的符号为空心六边形,大小为默认符号大小的2倍)。
为提高学生的学习参与度,在授课的过程中要求学生分小组重复老师上课讲解示例的代码,加深体会。另外,在授课过程中还会穿插课堂测验,了解学生学习效果。在本章节的授课过程中,课堂测验的题目主要设计在图形上数学公式的显示和图形的组合函数layout()函数的用法。主要原因是这两个知识点比较抽象,通过实例和课堂测验的双重刺激加深学生对这两个知识点的理解,学会灵活运用。
4)建立实践教学云平台,使学生在学习了理论知识后,可以在实践平台上及时运用自己所学的知识解决数据分析问题,提高知识的掌握和运用。在线实验云平台解决了实验环境的限制,可以不用固定时间地点。实现实验批改自动化,可以实时反馈实验结果,存档查询方便,批改结果客观,减少教师重复劳动。构建的云平台实践教学系统对每一章节都设计了大量紧扣教学内容代码实践题目,题目做完后,系统会根据学生提交结果自动批改。
例如聚类分析这一章中对于生成的二维坐标数据和鸢尾花数据集分别进行了层次聚类和K-means聚类的实践教学。在生成二维坐标进行聚类中,利用引导和提示语句让学生逐步完成聚类的整个过程。这里仅以生成数据为例做一下说明。
生成数据点:这里生成12个二维点, 这12个点中前4个的距离较近,中间四个的聚类较近,最后4个的聚类较近. 并绘制出这12个点在二维平面的分布图。
在mycluster.R脚本里追加以下代码:
1.( )#生成数据点
2. ( )#设置图像边缘距离
3.( )#数据点的x轴由正态分布产生12个随机数,前四个数的均值为1,
#接下来四个数的均值为2,最后四个数的均值为3,方差都为0.2
4.( ) #数据点的y轴由正态分布产生12个随机数,前四个数的均值为1,
#接下来四个数的均值为2,最后四个数的均值为1,方差都为0.2
5.( )#绘制x与y关系的散点图
6.( )#给个点加上标号
检测条件: 检测在RStudio控制台是否有如下代码的输入:
1.( set.seed(1234) );2.(par(mar = c(2, 2, 2, 2)) );3.(x <- rnorm(12, mean = rep(1:3, each = 4), sd = 0.2) );4.(y <- rnorm(12, mean = rep(c(1, 2, 1), each = 4), sd = 0.2) ):5.( plot(x, y, col = "blue", pch = 19, cex = 2) );6.( text(x + 0.05, y + 0.05, labels = as.character(1:12)) )
5)精心设计课程实验。本课程有两个课程实验。其中之一为基于R语言机器学习算法的鸢尾花数据分析。实验对鸢尾花数据各个特征的相关性进行分析,接下来实验几种常用的机器学习算法对该数据进行分类的效果,最后选出分类效果较好的方法。通过该实验使学生理解观察和分析数据的过程,学会使用常见的机器学习方法(如线性判别分析(LDA),分类和回归树(CART),k-最近邻居(kNN),带有线性内核的支持向量机(SVM),随机森林(RF)和人工神经网络)进行鸢尾花数据的分类,并评判分类效果。
6) 对学有余力的同学,以竞赛带动学生创新精神。国内外已经有一些著名的数据分析竞赛平台,参与其中的竞赛可以极大的提高学生学时的积极性和主动性。国外著名的平台有Kaggle(https://www.kaggle.com/),阿里的天池大數据科研平台,数据城堡(DataCastle大数据竞赛平台)等。
大数据专业是新兴专业,在专业的发展过程中,需要不断地进行探索,鉴于该专业直接面向国民生产生活,学生专业技能的培养需要通过大量的数据处理训练完成。通过以上教学改革措施的实施,突出了课程实践环节的重要性,利用线上实验项目解决课时限制与实践环节需要加强之间的矛盾。因材施教,利用竞赛提高学有余力同学的数据分析能力和综合素质。
参考文献:
[1] 周黎鸣,林英豪,李征,等.新工科背景下大数据专业课程建设[J].计算机时代,2021(1):102-105.
[2] 王元卓,隋京言.应用型大数据人才培养[J].高等工程教育研究,2021(1):44-49.
[3] 阳红英.案例教学在《数据挖掘与R语言》课程教学中实践与思考[J].中国多媒体与网络教学学报(上旬刊),2020(8):106-107.
[4] 商豪.浅议本科教学中R语言的教学模式[J].理科爱好者(教育教学),2018(12):23,49.
[5] 柯朝甫.医学本科生R语言教学初探[J].教育现代化,2018,5(48):233-234,245.
[6] 巴音达拉.浅谈R语言在高等学校教学当中的重要性[J].教育教学论坛,2018(7):252-253.
[7] 郭念国.大数据时代R语言模拟在概率统计课程教学中的应用[J].河南教育(高教),2017(12):80-81.
【通联编辑:唐一东】