(访问大会官网)
厦门大学计算机科学系 林子雨 博士/助理教授
大数据专业作为典型的“新工科”专业,在课程体系建设方面还处于摸索阶段。厦门大学数据库实验室作为全国高校知名的大数据教学团队,在过去六年(2013年-2019年)集中精力建设了大数据入门课程及其配套教材《大数据技术原理与应用》、大数据进阶课程及其配套教材《Spark编程基础》、高校大数据实训课程系列案例教材以及大数据通识导论课程及其配套教材,初步形成了从入门到进阶再到实训课程的大数据课程和教材体系。
本文与大家分享厦门大学在大数据课程体系建设方面的成果和经验,具体包括高校大数据课程公共服务平台、厦门大学建设的大数据课程体系、导论课程《大数据技术原理与应用》、进阶课程《Spark编程基础》、大数据实训课程、文科大数据通识导论课程。
从2013年开始,厦门大学数据库实验室历时六年时间,投入100多万元经费,建设了服务于全国高校大数据教学的一站式平台——高校大数据课程公共服务平台,重点打造了11大子工程,成为全国高校大数据教学知名品牌,平台每年访问量超过200万次。
平台为全国高校提供大数据教学一站式“免费”服务,内容包括大数据专业建设方案、系列课程教材、讲义PPT、习题、实验、案例、教师备课指南、学生学习指南、授课视频、教师培训交流、大数据教学研讨会。
平台上提供的《大数据学习路线图》等教学资源,为全国高校顺利开展大数据教学工作提供了有益的帮助。目前,平台累计访问量已经超过500万次,已经在厦门大学累计举办2届全国高校大数据教学研讨会(第1届主页,第2届主页),累计举办10期大数据师资培训班,为全国200余所高校培养300余名师资(培训班报名主页),平台提供的大数据课程教师交流群(QQ群号:461510122)已经有来自全国800多所高校的1100多名教师加入。
图 第1届全国高校大数据教学研讨会合影
图 第10期大数据师资培训班合影
厦门大学数据库实验室团队从2013年至今,一直专注于大数据教学工作,建设了大数据入门课程及其配套教材《大数据技术原理与应用》、大数据进阶课程及其配套教材《Spark编程基础》、高校大数据实训课程系列案例教材以及大数据通识导论课程及其配套教材,初步形成了从入门到进阶再到实训课程的大数据课程和教材体系。
(1)导论课程《大数据技术原理与应用》及教材
课程定位:入门级课程,构建知识体系、阐明基本原理、引导初级实践、了解相关应用。 授课对象:计算机、软件工程、数据科学与大数据技术等理工科专业大学生(本科或高职) 课程教材:林子雨.大数据技术原理与应用(第2版),人民邮电出版社,2017年1月.(教材官网) 配套实验手册:林子雨.大数据基础编程编程、实验和案例教程,清华大学出版社,2017年8月.(教材官网)
(2)进阶课程《Spark编程基础》及教材
课程定位:进阶级课程,掌握Spark程序开发能力 授课对象:计算机、软件工程、数据科学与大数据技术等理工科专业大学生(本科或高职)和研究生 课程教材: 林子雨,赖永炫,陶继平.Spark编程基础(Scala版),人民邮电出版社,2018年7月.(教材官网) 林子雨,郑海山,赖永炫.Spark编程基础(Python版),人民邮电出版社,2019年8月.(即将出版)
(3)大数据实训课程及教材 课程定位:实训课程,掌握大数据技术综合运用能力 授课对象:计算机、软件工程、数据科学与大数据技术等理工科专业大学生(本科或高职) 课程教材: 林子雨.大数据实训案例之电信用户行为分析(Scala版),人民邮电出版社,2019年4月. 林子雨.大数据实训案例之电影推荐系统(Scala版),人民邮电出版社,2019年4月.
课程定位:紧紧围绕通识教育核心理念,努力培养学生的数据意识、数据思维、数据伦理和数据能力。 授课对象:非计算机专业大学生(尤其是文科专业) 课程教材:林子雨.文科大数据通识导论,高等教育出版社,2019年(即将出版).
1.课程定位
入门级课程,构建知识体系、阐明基本原理、引导初级实践、了解相关应用
授课对象:大学生(计算机、软件工程、数据科学与大数据技术等专业) 知识储备:编程、操作系统、数据库
2.课程教材
教材:林子雨.大数据技术原理与应用(第2版),人民邮电出版社,2017年1月.(教材官网)
配套实验手册:林子雨.大数据基础编程编程、实验和案例教程,清华大学出版社,2017年8月.(教材官网)
教材定位为大数据技术入门教材,为读者搭建起通向“大数据知识空间”的桥梁和纽带,为读者在大数据领域“深耕细作”奠定基础、指明方向。教材内容包括Hadoop、HDFS、Hbase、NoSQL、云数据库、MapReduce、流计算、图计算、数据可视化、Spark等。
3.学时安排
课程共16周,每周2学时,总计32学时(理论32学时,可以另外安排16个实验上机学时)。
4.实验内容
(1)章节实验
提供全套机房上机实验指南,包含题目和答案。用于入门级大数据课程的上机实验课,每个实验都需要连续4节上机课来完成。每个实验的设计,都充分考虑了学生的基础和能力,力求学生能够在连续4节课的上机时间内,顺利完成课程实验,提交实验报告。
实验一:熟悉常用的Linux操作和Hadoop操作 实验二:熟悉常用的HDFS操作 实验三:熟悉常用的Hbase操作 实验四:NoSQL和关系数据库的操作比较 实验五:MapReduce初级编程实践
(2)综合案例
大数据课程实验案例《网站用户购物行为分析》(案例主页)
采用2000万条用户购物数据集,案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hbase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用方法,案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。
5.课程视频
林子雨主讲《大数据技术原理与应用》授课视频,于2017年11月6日正式在中国大学MOOC平台上线,累计选修人数超过7万人,被评为“2018年国家精品在线开放课程”(观看视频)。
6.课程资源
(1)《大数据软件安装和编程实践指南》(查看)详细学习如何安装运行各种大数据软件以及如何进行初级编程实践,包括Hadoop、HDFS、Hbase、MapReduce、Spark、MongoDB等安装、操作、编程指南。
(2)《大数据技术原理与应用》备课指南(查看)详细说明了教师如何备课,包括教学大纲、讲义PPT、授课视频、课后习题、上机题目等。
1.课程定位
大数据技术进阶学习课程
授课对象:大学生、研究生(计算机、软件工程、数据科学与大数据技术等专业)
知识储备:Java编程、数据库、操作系统、Hadoop
先修课程:入门级大数据课程,比如:大数据技术原理与应用
2.课程教材
(1)选择编程语言
选择教材时,必须首先确定编程语言。Spark支持多种编程语言:Scala、Java、Python、R。Spark首选语言是Scala,其次可以把Python作为开发Spark的语言。
Spark这个软件本身就是使用Scala语言开发的,采用Scala语言编写Spark应用程序,可以获得最好的性能。关于采用哪种语言编写Spark应用程序,这里强调两点:
(a)Java代码太繁琐。在大数据应用场景中,不太适合使用Java,因为,完成同样的任务,Scala只需要一行代码,而Java则可能需要10行代码;而且,Scala语言可以支持交互式编程,大大提高了程序开发效率,而Java则不支持交互式执行,必须编译以后运行。
(b)Python语言并发性能不好。在并发性能方面,Scala要明显优于Python,而且,Scala是静态类型,可以在编译阶段就抛出错误,便于开发大型大数据项目,此外,Scala兼容Java,运行在JVM上,可以直接使用Java中的Hadoop API来和Hadoop进行交互,但是,Python与Hadoop之间的交互非常糟糕,通常都需要第三方库(比如hadoopy)。
(2)在线教程
Spark是当前最热门的大数据处理框架,林子雨编著《Spark入门教程(Scala版)》,让初学者零基础零障碍学习Spark。教程采用Scala语言编写Spark应用程序,因此,教程包括Scala入门和Spark入门两个部分的内容。林子雨编著《Spark入门教程(Python版)》,让初学者学习使用Python语言开发Spark应用程序。
(3)纸质教材
(a)厦门大学 林子雨,赖永炫,陶继平 编著 《Spark编程基础(Scala版)》(人民邮电出版社,2018年8月,ISBN:978-7-115-48816-9 )(官网)
披荆斩棘,在大数据丛林中开辟学习捷径 填沟削坎,为快速学习Spark技术铺平道路 深入浅出,有效降低Spark技术学习门槛 资源全面,构建全方位一站式在线服务体系
本书以Scala作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming、Spark MLlib等。本书每个章节都安排了入门级的编程实践操作,以便读者更好地学习和掌握Spark编程方法。本书官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。
本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的进阶级大数据课程教材,用于指导Spark编程实践,也可供相关技术人员参考。
(b)厦门大学 林子雨,郑海山,赖永炫 编著《Spark编程基础(Python版)》,人民邮电出版社,预计2019年8月上市销售。
3.课时安排
课程共16周,每周2学时,总计32学时理论课程。各高校可根据实际情况,再额外增加16学时实验上机。
4.交叉知识
本课程涵盖知识内容包括:操作系统(Linux)、分布式存储(HDFS、Hbase)、分布式计算(Spark Core)、流计算(Spark Streaming)、机器学习(Spark MLlib)、查询分析(Spark SQL)、日志采集(Flume)、消息分发(Kafka)、数据仓库(Hive)、关系数据库(MySQL)、机器学习/数据挖掘等知识。同时要掌握开发工具Eclipse、IntelliJ IDEA以及编译打包工具sbt和Maven等。
图 《Spark编程基础》教材中涉及的交叉知识
4.实验内容
(1)章节实验
实验1-Linux系统的安装和常用命令
实验2-Scala编程初级实践
实验3-Spark和Hadoop的安装
实验4-RDD编程初级实践
实验5-Spark SQL编程初级实践
实验6-Spark Streaming编程初级实践
实验7-Spark机器学习库MLlib编程实践
(2)综合案例
(a)案例1:Spark课程综合实验案例:淘宝双11数据分析与预测(查看)本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hive、Sqoop、Eclipse、ECharts、Spark等系统和软件的安装和使用方法。
(b)案例2:Spark课程综合实验案例:Spark+Kafka构建实时分析Dashboard案例(查看)由厦门大学数据库实验室团队开发,旨在满足全国高校大数据教学对实验案例的迫切需求。本案例涉及数据预处理、消息队列发送和接收消息、数据实时处理、数据实时推送和实时展示等数据处理全流程所涉及的各种典型操作,涵盖Linux、Spark、Kafka、Flask、Flask-SocketIO、Highcharts.js、sockert.io.js、PyCharm等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。
5.课程视频
林子雨主讲《Spark编程基础(Scala版)》课程视频于2019年3月11日在中国大学MOOC正式上线(观看视频)。
1.基本信息
*实训题目:基于协同过滤算法的电影推荐 *实训时间:2018年9月3日-28日 *实训学生:厦门理工学院计算机与信息工程学院软件工程专业2015级本科生(大四),44人 *实训类型:软件工程综合实践(大数据方向) *授课教师:厦门大学计算机科学系 林子雨 助理教授 *课程设计学时(周数):4周/84课时 *实训教材:林子雨编著《高校大数据实训课程系列案例——电影推荐系统》
*实训课程需要达到的专业工程认证毕业要求:
(1)指标点4.1:针对软件开发特定需求,了解信息学科发展动态;(2)指标点9.1:正确理解个人与团队的关系,理解团队合作的重要性,具备在多学科背景下团队合作的意识和能力;(3)指标点9.2:在多学科背景的团队下,理解团队成员的不同角色在团队中的作用,能够作为个体或团队成员完成所承担的任务;(4)指标点10.2:具有书面表达与沟通能力、科技论文与技术报告写作能力,能够撰写报告和设计文稿;(5)指标点11.2:了解市场、用户的需求变化以及技术发展,提出技术改造、系统更新、效能改进的方案。
(上图 实训课程课堂照片)
*实训教室:数字内容与信息智能处理实验室
实验室位于厦门理工学院精工园1号楼416教室,建于2008年6月,实验室面积约120平方米,设备总额约46万元。实验室配备具有较强的数据运算与图形图像处理能力的计算机,能满足图形图像处理、遥感图像处理、数据挖掘、大数据等课程的需求。
主要仪器设备:Dell OptiPlex7040 计算机61台,主要技术参数:CPU: Intel 酷睿i5-6500;内存:16GB;硬盘:1TB*2;显示器:23寸 LCD。
大数据环境搭建:本次实训课程没有采用任何厂商的大数据实验平台。实验室机房里面的电脑使用Windows7操作系统,在实训课程中,由学生自己在Windows7系统中安装虚拟机软件VirtualBox,然后,在VirtualBox软件中安装Linux虚拟机(Ubuntu16.04),再在Linux虚拟机中安装各种大数据软件,构建“伪分布式”的大数据实验环境。由于机器的内存有16GB,所以,整个实训过程,运行非常流畅。
*实训管理系统:本次实训课程采用“教学过程一体化管理平台”,对教学全过程进行高效的信息化管理。该系统具备课程资源管理、学生管理、授课过程管理、授课质量分析、成绩自动统计等功能。
*大数据课程公共服务平台:厦门大学建设的大数据课程公共服务平台(平台主页),为本次实训课程提供了强有力的支持。学生在实训课程全程可以在线自由免费访问平台上的大量大数据教学资源,解决实训课程的相关大数据技术难题。
(上图 实训课程课堂照片)
*实训成果文档:团队建设和奖惩制度、文献综述、项目开发计划、需求分析说明书、系统设计说明书、项目代码、项目答辩PPT、用户手册。
2.目的、任务和要求
1).课程设计目的
- 了解并掌握软件项目开发过程;
- 训练独立或协同实施软件项目开发各环节的能力;
- 培养良好的表达、沟通和团队协作能力;
- 培养自主学习能力,能够独立地分析问题和解决问题;
- 了解开发文档的作用及撰写规范,培养撰写文档的意识与能力;
- 了解并掌握企业化的编程规范;
- 积累一定的编码量,进一步提高编码能力;
- 了解大数据软件项目的架构;
- 了解大数据应用的开发需求,能够搭建及配置符合需求的开发平台与环境;
- 掌握关系数据库的原理和操作方法;
- 掌握Hadoop分布式文件系统HDFS的原理和编程操作方法;
- 掌握大数据处理架构Spark的原理和Spark MLlib程序编写方法;
- 掌握数据ETL工具Kettle的使用方法;
- 了解数据挖掘的步骤和挖掘方法,学会基于协同过滤算法的Spark程序编写;
- 掌握数据可视化的技术;
(上图 实训课程林子雨老师在上课)
2).课程设计任务与要求
本课程设计项目涉及数据的预处理、数据的存储、数据查看、算法编写、算法应用和大数据结果展现等全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Spark、SparkMlib、IntelliJ IDEA(简称IDEA)、Node.js等系统和软件的安装和使用方法。通过本项目,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。
本课程设计项目需要完成以下任务:
- 安装Ubuntu操作系统;
- 安装关系数据库MySQL;
- 安装大数据处理框架Hadoop;
- 对Hadoop进行伪分布式环境配置;
- 安装服务端语言js;
- 安装ETL工具Kettle;
- 对数据文件形式的原始数据集进行预处理;
- 把数据文件的数据集ETL到HDFS中;
- 使用Kettle将数据文件从Ubuntu本地文件导入HDFS;
- 应用IDEA工具开发Scala程序;
- 编写Spark程序实现电影推荐功能;
- 使用协同过滤算法实现电影的推荐;
- 使用js语言搭建Web动态网页获取推荐结果。
本课程设计任务遵循真实的企业标准开发流程,使学生了解和体会商业项目开发的过程与环境。指导其完成制定开发计划、分析系统需求、设计系统架构及功能,让学生通过团队合作,在预定周期内完成软件项目的开发,从而训练学生的编程开发、文档撰写、统筹规划、分工协作等技能及能力。
(上图 林子雨老师在解答学生问题)
3.课程设计内容
课程设计题目:基于Spark MLlib的电影推荐
设计一个基于协同过滤算法的电影推荐算法,采用Scala语言编写Spark MLlib程序实现该算法,利用已有的训练数据集对算法进行训练得到电影推荐模型,并用测试数据集进行电影推荐,最后,将推荐结果进行可视化展现。
基本需求包括:
(1)数据ETL:可以把保存在文本文件中的数据集,通过ETL工具,加载到分布式文件系统HDFS中。
(2)编写Spark程序实现电影推荐功能:采用Scala语言,编写Spark MLlib程序,对HDFS中的数据进行分析,实现电影推荐算法;
(3)可视化:采用可视化技术,把分析结果展现给用户。
(上图 不同团队之间在互相交流学习)
4.课程设计的教学方法
课程设计采用“技术教学 + 项目实践”的形式,以技术教学作为项目实践的准备和基础,以项目实践强化技术教学的效果,并训练学生的团队协作、交流沟通以及实施商业项目开发的能力。
技术教学环节采用的教学方法包括:
- 理论讲解:讲解技术原理与编程技巧;
- 案例实践:设计编程案例,让学生动手实现;
- 案例讲解与点评:讲解案例的实现方法,并针对学生在实现过程中产生的问题进行点评;
项目实践环节采用的教学方法包括:
- 方法讲解:讲解开发计划、需求分析和系统设计的实施以及文档撰写方法;
- 案例实践:让学生分组协作,完成项目案例的开发文档撰写;
- 反馈修改:对学生提交的开发文档进行评阅,并即时反馈问题和修改意见;
- 指导开发:指导学生针对设计方案进行项目开发。
(上图 项目答辩最佳团队获得林子雨老师赠书)
5.课程教材
林子雨编著《大数据案例之电影推荐系统》,人民邮电出版社,2019年4月.
6.授课过程
授课时间:2018年9月3日到28日,共84学时
7.实训成果文档
实训成果文档包括: 团队建设和奖惩制度 文献综述 项目开发计划 需求分析说明书 系统设计说明书 项目代码 项目答辩PPT 用户手册
(上图 实训课堂上学生团队在讨论解决问题)
8.教学管理平台
本次实训课程采用“教学过程一体化管理平台”,对教学全过程进行高效的信息化管理。该系统具备课程资源管理、学生管理、授课过程管理、授课质量分析、成绩自动统计等功能。
9.大数据课程公共服务平台
厦门大学数据库实验室建设的大数据课程公共服务平台,为本次实训课程提供了强有力的支持。学生在实训课程全程可以在线自由免费访问平台上的大量大数据教学资源,解决实训课程的相关大数据技术难题
10.学生作品
1.课程定位
紧紧围绕通识教育核心理念,努力培养学生的数据意识、数据思维、数据伦理和数据能力。 授课对象:非计算机专业大学生(尤其是文科专业)
2.培养目标
本课程旨在实现以下几个培养目标:
(1)引导学生步入大数据时代,积极投身大数据的变革浪潮之中
(2)了解大数据概念,培养大数据思维,养成数据安全意识
(3)认识大数据伦理,努力使自己的行为符合大数据伦理规范要求
(4)熟悉大数据应用,探寻大数据与自己专业的应用结合点
(5)激发学生基于大数据的创新创业热情
3.课程内容
大数据时代已经全面开启,带来了信息技术发展的巨大变革,并深刻影响着社会生产和人民生活的方方面面。了解大数据概念、具备大数据思维,是新时代对人才的新要求。 本课程高屋建瓴探讨大数据,内容深入浅出,简单易懂,适合非计算机专业(尤其是文科专业)学生学习。课程内容包括大数据概述,大数据与云计算、物联网和人工智能,大数据技术,大数据应用,大数据安全,大数据思维,大数据伦理,数据共享,数据开放,大数据交易和大数据治理等。
4.课程教材
林子雨.文科大数据通识导论,高等教育出版社,2019年(即将出版).
厦门大学数据库实验室在过去四年投入大量精力建设了丰富的大数据课程资源,总体而言,我们的课程建设模式如下:以大量教学实践推动课程和教材建设、以平台思维促进教学资源汇聚和共享、以迭代方法不断优化升级教学内容、自我造血为课程建设提供稳定资金保障。
附录:讲者介绍
林子雨,男,1978年出生,博士(毕业于北京大学),现为厦门大学计算机科学系助理教授(讲师),曾任厦门大学信息科学与技术学院院长助理、晋江市发展和改革局副局长。中国计算机学会数据库专业委员会委员,中国计算机学会信息系统专业委员会委员。国内高校首个“数字教师”提出者和建设者,厦门大学数据库实验室负责人,厦门大学云计算与大数据研究中心主要建设者和骨干成员,2013年度和2017年度厦门大学教学类奖教金获得者,荣获2017年福建省精品在线开放课程、2018年厦门大学高等教育成果特等奖、2018年福建省高等教育成果二等奖和2018年国家精品在线开放课程。主要研究方向为数据库、数据仓库、数据挖掘、大数据、云计算和物联网,并以第一作者身份在《软件学报》《计算机学报》和《计算机研究与发展》等国家重点期刊以及国际学术会议上发表多篇学术论文。作为项目负责人主持的科研项目包括1项国家自然科学青年基金项目(No.61303004)、1项福建省自然科学青年基金项目(No.2013J05099)和1项中央高校基本科研业务费项目(No.2011121049),主持的教改课题包括1项2016年福建省教改课题和1项2016年教育部产学协作育人项目,同时,作为课题负责人完成了国家发改委城市信息化重大课题、国家物联网重大应用示范工程区域试点泉州市工作方案、2015泉州市互联网经济调研等课题。中国高校首个“数字教师”提出者和建设者,2009年至今,“数字教师”大平台累计向网络免费发布超过500万字高价值的研究和教学资料,累计网络访问量超过500万次。打造了中国高校大数据教学知名品牌,编著出版了中国高校第一本系统介绍大数据知识的专业教材《大数据技术原理与应用》,并成为京东、当当网等网店畅销书籍;建设了国内高校首个大数据课程公共服务平台,为教师教学和学生学习大数据课程提供全方位、一站式服务,年访问量超过100万次。