大学计算机基础类数据科学课程的探索与实践
2019-09-26刘晓强王洪亚
宋 晖,刘晓强,杜 明,王洪亚
(东华大学 计算机科学与技术学院,上海 201620)
0 引言
近年来计算机技术经历了新一轮发展,大数据、移动平台改变了人们的生活、生产方式,国务院《促进大数据发展行动纲要》[1]中指出运用大数据推动经济发展、完善社会治理、提升政府服务和监管能力正成为趋势,“数据为王”时代对大学生的知识技能提出了新的要求。从2010年开始,国内外高等学校纷纷开始创立数据科学专业和大数据学院,我国高等教育本科也从2016年开始设置数据科学与大数据专业(080910T)[2],培养具有专业素养的数据科学人才。
作为人类社会新型的生产要素,数据产生于各行各业、服务于各行各业,掌握先进的数据科学思想方法和技术是每个领域高级从业者应具备的基本素养。国家行动计划对大学生的知识技能培养提出了新的目标,探索如何面向大面积本科生开展数据科学教学已成为高校计算机基础教学的改革重点和方向。目前,国内高校在此方面还基本处于起步阶段,还未形成较明确的教学目标和教学要求,探索可行的通识课程教学方案成为教学研究的热点。
1 通识类数据科学的教学现状
数据科学专业通常包括6~8门专业课,还需要配合相关的基础课程,涵盖数学、统计学、计算机科学等理论知识[3]。2016年开始各校陆续开设数据科学导论类课程,主要是面向特定专业学生,如计算机、经管、金融等专业[4],这些学生已具备了基础的计算机、数学专业知识。MOOC、Coursera等平台也上线了多门数据科学相关课程,主要为从数据分析工具角度实现数据分析的专项课程[5]。
近年来国内高校已认识到面向大面积本科生开展数据科学教学的重要性,纷纷开展了试点教学工作,探索合适的教学内容和方法。例如南京大学针对非计算机专业学生开设了相关课程,但教学内容为电子表格Excel提供的简单分析处理。部分学校也采用可视化工具开展了数据分析的教学工作,如R语言、SQL Server等可视化工具等,但都缺乏针对数据科学知识和方法较系统的教学。面向大面积本科生开展数据科学教学主要面临以下几方面的挑战。
(1)目前国内外高校开设的数据科学相关课程,要求学生具备较强的数学、计算机基础和相关工具的使用能力,直接套用这些教学内容面向非计算机专业学生进行教学,难以实施。学校必须充分了解高校本科生已具备的背景知识,设置合理的课程内容,规划教学模块和实例,使学生能够在计算机基础教学有限的教学学时内,学有所得,学有所用。
(2)面向大面积本科生的数据科学教育还处于起步探索阶段,目前各校根据本校专业需求、学生层次尝试开设相关课程,还未形成具有较强实用性的教材和实验案例。市面上相关书籍多为技术手册类、案例实战类[6],缺乏基础知识讲解,案例背景复杂,编程难度大;少数高校编写的教材,理论性较强[7],缺乏循序渐进的练习,不满足计算机通识教学的需求。
(3)人工智能特别是机器学习方法已成为数据科学分析处理数据最重要的技术之一,如何深入浅出地介绍相关技术的基本思想,使学生理解数据建模分析的作用,通过实践案例的教学让学生掌握从数据准备、建模分析、性能比较和结果解读等关键步骤和主要方法,是很大的挑战。
2 课程知识结构
面向大面积本科生的数据科学通识课程,目标是为学生灌输数据即生产力的意识,使其能够在专业领域中主动采用数据科学的方法,从数据中获取价值。课程重点介绍数据科学的工作流程,包括数据采集、数据整理和探索、数据可视化和数据建模预测等思想方法和实现技术,并通过文本、图像、语音等前沿应用,引入人工智能技术在数据科学领域应用的最新成果,帮助学生在学习工作中运用最先进的智能技术提高效率。
2.1 教学内容组织
课程内容按照数据科学的工作流程组织教学内容,围绕问题描述、数据准备、数据探索、预测建模和结果可视化5个方面进行数据分析的过程和关键技术讲解。
1)问题描述。
数据科学不是因为有了数据,就针对数据进行分析,而是有需要解决的问题,才对应地搜集数据、分析数据。基于专业背景,界定问题,明确数据分析的目标和需求是数据分析项目成败的关键所在。
2)数据准备。
数据准备包括数据获取、清洗、标准化,最终转化为可供分析的数据。面向问题需求,可以从多种渠道采集到相关数据,如互联网爬取、业务系统生成、检测设备记录等,然后按照业务逻辑将这些形式各异的数据组织为格式化的数据,去掉其中的冗余数据、无效数据,填补缺失数据。
3)数据探索。
数据探索主要采用统计或图形化的形式来考察数据,观察数据的统计特性和数据成员之间的关联、模式等。可视化的方法能够提供数据概览,从而找到有意义的模式。
4)预测建模。
根据分析目标,通过机器学习或统计方法,从数据中建立问题描述模型,选择何种方法主要取决于是分类预测问题,还是描述性问题或是关联性分析问题。
5)结果可视化。
结果可视化整理分析结果,展示并将分析结果保存在应用系统中。展示的形式有多种,如报表、二维图、仪盘或信息图等。这些结果被粘贴到各种报告中,或发布到Web 应用系统、移动应用的页面上,形成数据产品。
围绕数据科学的主要步骤,课程知识点架构设计见图1。
图1 课程知识架构
根据课程的知识点,需设计大量的教学案例循序渐进、由浅入深地引入数据分析的技术和方法。每个案例都应依据数据科学的工作流程,介绍问题来源、分析目标,然后再介绍分析方法,解释分析结果。
2.2 课程内涵与外延
1)大数据分析。
大数据分析需要学生具备更多的计算机专业背景知识,包括分布式系统、分布式数据存储、并行算法等。为了避免艰深的专业知识,又能使学生对大数据处理有一定的认识,可以选择在机器学习方法中通过深度神经网络及其在图像处理领域的应用进行介绍。
教学中可以首先引入神经网络的感知器等基本概念,进一步介绍全连接的前馈神经网络,再引入深度神经网络,阐述大数据对人工智能、深度学习方法实现的重要性。通过一个高度集成的Keras框架,简化编程实现过程,帮助学生了解如何构建大数据分析模型,通过图片分类应用,使学生能够切实理解大数据分析,训练数据准备和分析处理等关键技术和方法。
2)人工智能与数据分析。
人工智能与数据科学密切相关,数据的可用性增强了人工智能和认知,另一方面人工智能方法是数据分析的关键技术,大数据推动人工智能技术的发展。
数据分析需要学生具备应用人工智能方法(特别是机器学习技术)处理数据的能力,基础教学的重点在于对机器学习建模方法应用的理解,阐述监督学习和非监督学习适合解决的问题类型,使学生能够根据实际应用的需求,将数据分析目标转换为合适的机器学习任务,进一步选择有效的算法求解问题。教学应结合实际案例,围绕数据分析过程如何使用人工智能技术展开,从数据准备、适用数据集分析、模型使用、性能比较、分析结果解读等方面阐述数据工作的思想和模式。
根据大面积本科生的数学背景,对于机器学习方法的介绍需要有所选择。线性回归分析、决策树、SVM、神经网络分类、K-means聚类等模型能够找到直观、形象的方式说明其基本思想,适合在教学中引入,便于学生对人工智能的本质有较深入的认识;而贝叶斯方法、PCA特征分解等算法由于需要较强的概率统计和线性代数背景知识,则可忽略。
3 教学组织和实践
3.1 教学方法
数据科学是应用性的科学,所有的方法和技术都需要结合数据背景来理解和掌握。在教学中,应围绕需求,提出解决思路,选择合适的方法设计分析流程加以实现,最后需要对分析得到结果进行解读,谈论分析结果的价值。下面以课程中“统计分析方法”部分的知识点教学为例,介绍课程教学思路。
“统计分析”部分目标是掌握将实际背景领域的数据组织为DataFrame的结构,根据分析目标,采用统计函数实现。每个知识点的教学环节,首先需要给出数据产生的背景,统计分析实例中采用的数据来源于学生基本信息和课程学习相关的问卷调查,调查结果被整理到Excel文件中;第二步针对收集的调查数据,提出相应分析目标,如学生兴趣、地域来源与成绩的相关性等;针对每个分析目标描述采用的分析方法和技术,列出实现步骤;第4步给出基于Python科学计算方法库的编程代码;最后对分析结果进行说明,根据数据的背景解读结果的显示意义,判断结果的有效性等。
教学过程注重阐述解决问题的思路和方法,具体的实现可以选择不同的语言和工具。
3.2 实践教学环境与方式
数据科学课程的内容是围绕案例展开的,简便易掌握的实践环境是教学效果的重要保障。选择Python语言开展数据分析教学具有以下优点。
(1)Python通过多个开源的第三方工具包实现数据分析,能够紧跟新技术发展,已成为数据科学的首选工具。只要具备任何一门编程语言的基础就能快速使用。
(2)与统计分析专业工具R语言和矩阵计算专业工具MATLAB相比,Python包含了数据分析过程需要的所有方法和工具,具有速度优势,能够支持大数据处理。
(3)基于Python的教学环境,使用者重点关注分析的技术和方法,无须耗费大量精力掌握复杂的软件编程技术,代码量少,适用于初学者,也适用于专家。
Python首选的科学计算环境是Anaconda(开源),集成了常用的NumPy、SciPy、pandas、Matplotlib、scikit-learn、NLTK等方法库,满足数据分析的基本需求,如需进行深度学习,可安装Tensorflow、Keras等框架。
如果教学主要面向文科、医学等专业,也可以采用集成的可视化工具软件开展数据科学教学,避免程序代码的编写。
3.3 实践练习与考核
数据科学的知识和技能,单纯通过知识点讲解很难掌握,需要通过大量的实践案例来体会、理解,再到实际应用。课程中的练习应分3个层次。
(1)模仿类,延续教学案例中的数据集,提出类似的新分析目标,帮助学生掌握分析数据的基本数据组织方法和处理技术。
(2)应用类,给出新应用背景的数据案例,要求学生采用章节学习的分析方法实现分析目标。
(3)开放项目,要求收集与学生本专业相关的实验、生产或经营等数据,基于专业知识,制订合理的分析目标,综合运用各种分析方法和技术处理数据,绘制分析图表,解读分析结果,撰写分析报告。
课程考试可以全部采用实践考核的方式,题型可分为两大类:①基础题,多个小问题卡和单一的分析方法;②综合应用题,1~2道大题考核综合分析能力。由于分析实现需要通过Python编程调用各种分析库函数实现,因此在考试中应给出库函数帮助文件,避免学生陷入编程记忆的怪圈,将考核重点集中在分析方法的正确应用上。
3.4 教学实践效果
东华大学于2016年起开始在本科生计算机基础教学的课程体系中加入数据科学课程,目前已有约300人选修了该课程。学生来自全校不同专业,均选修过一门编程语言,但并不限于Python语言。大部分学生能够掌握数据科学处理的基本方法,大约1/4的学生能够较好地完成开放项目,在学科专业或自己学习生活中感兴趣的领域中,收集数据、处理分析数据,获得有价值的分析报告,如材料学院、环境学院和管理学院的学生提交了水环境与水污染治理分析、金属材料水中腐蚀性分析和景区酒店房价与入住率分析等项目报告。
东华大学课程组在4个学期的教学探索后,总结经验编写了《数据科学技术与应用》教材,获得上海市以及全国多所高校的认可,未来上海多所高校将借鉴此教材开展教学。
4 结语
大数据时代,处理数据的能力已成为当代大学生的基本素养,但目前各高校通识类的数据科学教学还处于探索阶段。在综合本科生知识背景以及梳理数据科学专业知识体系的基础上,笔者设计了面向各学科大面积本科生的数据科学课程结构,围绕数据科学工作流程各步骤的核心问题,介绍从数据中获取知识的思维方法和技术,在传统的统计分析方法基础上,增加了基于人工智能机器学习的建模分析方法,通过图像、文本、语音等典型人工智能数据应用领域实例,将数据科学的前沿技术引入计算机基础教学,为大学生打开数据时代的创新之门。