林子雨:厦门大学大数据课程与教材体系建设经验分享(全文版)

厦门大学计算机科学系林子雨博士/助理教授

大数据专业作为典型的“新工科”专业,在课程体系建设方面还处于摸索阶段。厦门大学数据库实验室作为全国高校知名的大数据教学团队,在过去六年(2013年-2019年)集中精力建设了大数据入门课程及其配套教材《大数据技术原理与应用》、大数据进阶课程及其配套教材《Spark编程基础》、高校大数据实训课程系列案例教材以及大数据通识导论课程及其配套教材,初步形成了从入门到进阶再到实训课程的大数据课程和教材体系。

平台为全国高校提供大数据教学一站式“免费”服务,内容包括大数据专业建设方案、系列课程教材、讲义PPT、习题、实验、案例、教师备课指南、学生学习指南、授课视频、教师培训交流、大数据教学研讨会。

图第1届全国高校大数据教学研讨会合影

图第10期大数据师资培训班合影

厦门大学数据库实验室团队从2013年至今,一直专注于大数据教学工作,建设了大数据入门课程及其配套教材《大数据技术原理与应用》、大数据进阶课程及其配套教材《Spark编程基础》、高校大数据实训课程系列案例教材以及大数据通识导论课程及其配套教材,初步形成了从入门到进阶再到实训课程的大数据课程和教材体系。

(1)导论课程《大数据技术原理与应用》及教材

(2)进阶课程《Spark编程基础》及教材

(3)大数据实训课程及教材课程定位:实训课程,掌握大数据技术综合运用能力授课对象:计算机、软件工程、数据科学与大数据技术等理工科专业大学生(本科或高职)课程教材:林子雨.大数据实训案例之电信用户行为分析(Scala版),人民邮电出版社,2019年4月.林子雨.大数据实训案例之电影推荐系统(Scala版),人民邮电出版社,2019年4月.

课程定位:紧紧围绕通识教育核心理念,努力培养学生的数据意识、数据思维、数据伦理和数据能力。授课对象:非计算机专业大学生(尤其是文科专业)课程教材:林子雨.文科大数据通识导论,高等教育出版社,2019年(即将出版).

1.课程定位

授课对象:大学生(计算机、软件工程、数据科学与大数据技术等专业)知识储备:编程、操作系统、数据库

2.课程教材

教材定位为大数据技术入门教材,为读者搭建起通向“大数据知识空间”的桥梁和纽带,为读者在大数据领域“深耕细作”奠定基础、指明方向。教材内容包括Hadoop、HDFS、HBase、NoSQL、云数据库、MapReduce、流计算、图计算、数据可视化、Spark等。

3.学时安排

课程共16周,每周2学时,总计32学时(理论32学时,可以另外安排16个实验上机学时)。

4.实验内容

(1)章节实验

实验一:熟悉常用的Linux操作和Hadoop操作实验二:熟悉常用的HDFS操作实验三:熟悉常用的HBase操作实验四:NoSQL和关系数据库的操作比较实验五:MapReduce初级编程实践

(2)综合案例

采用2000万条用户购物数据集,案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用方法,案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。

5.课程视频

6.课程资源

大数据技术进阶学习课程

授课对象:大学生、研究生(计算机、软件工程、数据科学与大数据技术等专业)

知识储备:Java编程、数据库、操作系统、Hadoop

先修课程:入门级大数据课程,比如:大数据技术原理与应用

(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中的HadoopAPI来和Hadoop进行交互,但是,Python与Hadoop之间的交互非常糟糕,通常都需要第三方库(比如hadoopy)。

(2)在线教程

(3)纸质教材

披荆斩棘,在大数据丛林中开辟学习捷径填沟削坎,为快速学习Spark技术铺平道路深入浅出,有效降低Spark技术学习门槛资源全面,构建全方位一站式在线服务体系

本书以Scala作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、SparkSQL、SparkStreaming、SparkMLlib等。本书每个章节都安排了入门级的编程实践操作,以便读者更好地学习和掌握Spark编程方法。本书官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。

(b)厦门大学林子雨,郑海山,赖永炫编著《Spark编程基础(Python版)》,人民邮电出版社,预计2019年8月上市销售。

3.课时安排

课程共16周,每周2学时,总计32学时理论课程。各高校可根据实际情况,再额外增加16学时实验上机。

4.交叉知识

本课程涵盖知识内容包括:操作系统(Linux)、分布式存储(HDFS、HBase)、分布式计算(SparkCore)、流计算(SparkStreaming)、机器学习(SparkMLlib)、查询分析(SparkSQL)、日志采集(Flume)、消息分发(Kafka)、数据仓库(Hive)、关系数据库(MySQL)、机器学习/数据挖掘等知识。同时要掌握开发工具Eclipse、IntelliJIDEA以及编译打包工具sbt和Maven等。

图《Spark编程基础》教材中涉及的交叉知识

实验1-Linux系统的安装和常用命令

实验2-Scala编程初级实践

实验3-Spark和Hadoop的安装

实验4-RDD编程初级实践

实验5-SparkSQL编程初级实践

实验6-SparkStreaming编程初级实践

实验7-Spark机器学习库MLlib编程实践

1.基本信息

*实训课程需要达到的专业工程认证毕业要求:

(1)指标点4.1:针对软件开发特定需求,了解信息学科发展动态;(2)指标点9.1:正确理解个人与团队的关系,理解团队合作的重要性,具备在多学科背景下团队合作的意识和能力;(3)指标点9.2:在多学科背景的团队下,理解团队成员的不同角色在团队中的作用,能够作为个体或团队成员完成所承担的任务;(4)指标点10.2:具有书面表达与沟通能力、科技论文与技术报告写作能力,能够撰写报告和设计文稿;(5)指标点11.2:了解市场、用户的需求变化以及技术发展,提出技术改造、系统更新、效能改进的方案。

(上图实训课程课堂照片)

*实训教室:数字内容与信息智能处理实验室

实验室位于厦门理工学院精工园1号楼416教室,建于2008年6月,实验室面积约120平方米,设备总额约46万元。实验室配备具有较强的数据运算与图形图像处理能力的计算机,能满足图形图像处理、遥感图像处理、数据挖掘、大数据等课程的需求。

主要仪器设备:DellOptiPlex7040计算机61台,主要技术参数:CPU:Intel酷睿i5-6500;内存:16GB;硬盘:1TB*2;显示器:23寸LCD。

大数据环境搭建:本次实训课程没有采用任何厂商的大数据实验平台。实验室机房里面的电脑使用Windows7操作系统,在实训课程中,由学生自己在Windows7系统中安装虚拟机软件VirtualBox,然后,在VirtualBox软件中安装Linux虚拟机(Ubuntu16.04),再在Linux虚拟机中安装各种大数据软件,构建“伪分布式”的大数据实验环境。由于机器的内存有16GB,所以,整个实训过程,运行非常流畅。

*实训管理系统:本次实训课程采用“教学过程一体化管理平台”,对教学全过程进行高效的信息化管理。该系统具备课程资源管理、学生管理、授课过程管理、授课质量分析、成绩自动统计等功能。

*实训成果文档:团队建设和奖惩制度、文献综述、项目开发计划、需求分析说明书、系统设计说明书、项目代码、项目答辩PPT、用户手册。

2.目的、任务和要求

1).课程设计目的

(上图实训课程林子雨老师在上课)

2).课程设计任务与要求

本课程设计项目涉及数据的预处理、数据的存储、数据查看、算法编写、算法应用和大数据结果展现等全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Spark、SparkMlib、IntelliJIDEA(简称IDEA)、Node.js等系统和软件的安装和使用方法。通过本项目,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。

本课程设计项目需要完成以下任务:

本课程设计任务遵循真实的企业标准开发流程,使学生了解和体会商业项目开发的过程与环境。指导其完成制定开发计划、分析系统需求、设计系统架构及功能,让学生通过团队合作,在预定周期内完成软件项目的开发,从而训练学生的编程开发、文档撰写、统筹规划、分工协作等技能及能力。

(上图林子雨老师在解答学生问题)

3.课程设计内容

课程设计题目:基于SparkMLlib的电影推荐

设计一个基于协同过滤算法的电影推荐算法,采用Scala语言编写SparkMLlib程序实现该算法,利用已有的训练数据集对算法进行训练得到电影推荐模型,并用测试数据集进行电影推荐,最后,将推荐结果进行可视化展现。

基本需求包括:

(1)数据ETL:可以把保存在文本文件中的数据集,通过ETL工具,加载到分布式文件系统HDFS中。

(2)编写Spark程序实现电影推荐功能:采用Scala语言,编写SparkMLlib程序,对HDFS中的数据进行分析,实现电影推荐算法;

(3)可视化:采用可视化技术,把分析结果展现给用户。

(上图不同团队之间在互相交流学习)

4.课程设计的教学方法

课程设计采用“技术教学+项目实践”的形式,以技术教学作为项目实践的准备和基础,以项目实践强化技术教学的效果,并训练学生的团队协作、交流沟通以及实施商业项目开发的能力。

技术教学环节采用的教学方法包括:

项目实践环节采用的教学方法包括:

(上图项目答辩最佳团队获得林子雨老师赠书)

5.课程教材

林子雨编著《大数据案例之电影推荐系统》,人民邮电出版社,2019年4月.

6.授课过程

7.实训成果文档

实训成果文档包括:团队建设和奖惩制度文献综述项目开发计划需求分析说明书系统设计说明书项目代码项目答辩PPT用户手册

(上图实训课堂上学生团队在讨论解决问题)

8.教学管理平台

本次实训课程采用“教学过程一体化管理平台”,对教学全过程进行高效的信息化管理。该系统具备课程资源管理、学生管理、授课过程管理、授课质量分析、成绩自动统计等功能。

9.大数据课程公共服务平台

10.学生作品

紧紧围绕通识教育核心理念,努力培养学生的数据意识、数据思维、数据伦理和数据能力。授课对象:非计算机专业大学生(尤其是文科专业)

2.培养目标

本课程旨在实现以下几个培养目标:

(1)引导学生步入大数据时代,积极投身大数据的变革浪潮之中

(2)了解大数据概念,培养大数据思维,养成数据安全意识

(3)认识大数据伦理,努力使自己的行为符合大数据伦理规范要求

(4)熟悉大数据应用,探寻大数据与自己专业的应用结合点

(5)激发学生基于大数据的创新创业热情

3.课程内容

大数据时代已经全面开启,带来了信息技术发展的巨大变革,并深刻影响着社会生产和人民生活的方方面面。了解大数据概念、具备大数据思维,是新时代对人才的新要求。本课程高屋建瓴探讨大数据,内容深入浅出,简单易懂,适合非计算机专业(尤其是文科专业)学生学习。课程内容包括大数据概述,大数据与云计算、物联网和人工智能,大数据技术,大数据应用,大数据安全,大数据思维,大数据伦理,数据共享,数据开放,大数据交易和大数据治理等。

4.课程教材

林子雨.文科大数据通识导论,高等教育出版社,2019年(即将出版).

厦门大学数据库实验室在过去四年投入大量精力建设了丰富的大数据课程资源,总体而言,我们的课程建设模式如下:以大量教学实践推动课程和教材建设、以平台思维促进教学资源汇聚和共享、以迭代方法不断优化升级教学内容、自我造血为课程建设提供稳定资金保障。

THE END
1.mysql学生宿舍信息管理系统MySQL 学生宿舍信息管理系统是一个用于存储、管理和查询学生宿舍相关数据的数据库系统,通常包括以下几个关键模块: 学生信息管理:记录学生的个人信息,如姓名、学号、宿舍编号等,并与宿舍分配关联。 宿舍信息管理:存储宿舍的基本信息,比如房间号、床位数、设施(如空调、网络等)状态,以及每个宿舍的居住者列表。 https://wenku.csdn.net/answer/1k0hhtm19n
2.Python结合MySQL数据库编写简单信息管理系统完整实例python最近Python课堂上布置了综合实训,实验目标是设计一个信息管理系统,下面这篇文章主要给大家介绍了关于Python结合MySQL数据库编写简单信息管理系统的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下+ 目录 1,项目整体逻辑及使用工具 1.1 项目整体逻辑 本项目主要是使用Python进行编写,利用Python中的pymysql库https://www.jb51.net/python/288053o58.htm
3.详细指南:如何高效使用MySQL进行数据库管理databasemysqluser如何使用 MySQL (How to Use MySQL) MySQL 是一个开源的关系型数据库管理系统,广泛应用于各种应用程序中。它以高性能、可靠性和易用性而闻名。本文将详细介绍如何使用 MySQL,包括安装、基本操作、数据管理以及一些高级功能。 1. MySQL 的安装 (Installation of MySQL) https://m.163.com/dy/article/JGHPVD5C0556A727.html
4.MySQL数据库技术在公民降信息管理系统中的应用【摘要】:随着信息技术的飞速发展,运用先进的信息管理系统以及网络平台,对医疗信息进行科学化和网络化管理,已经成为当前人类健康信息管理的发展趋势。 本文分别从理论和技术两个方面深入的探讨了MySQL数据库技术,并将MySQL数据库技术应用到公民健康信息管理系统中。本系统基于B/S结构,采用了模块化的设计方案,将系统分为https://cdmd.cnki.com.cn/article/cdmd-10701-1011076292.htm
5.MYSQL学生管理系统数据库查询mysql学生信息MYSQL学生管理系统数据库查询 mysql学生信息 环境说明 系统环境:Windows 10 专业版 数据库管理系统:MySQL 设计工具:Navicat for MySQL 编程工具:Qt 5.12.3 / VS 流程图 建立数据库 建立数据表 数据字典 学生表 体检表 成绩表 课程表 用户表 ER图 学生ER图https://blog.51cto.com/u_75269/9007308
6.基于Web的读者信息管理系统设计与实现AET摘要: 通过对传统报刊及电子杂志发行工作的研究,设计出基于Web的读者信息管理系统。采用PHP作为开发工具,MySQL作为后台数据库管理,建立一个传统报刊杂志发行与数字发行兼顾的读者信息管理系统,报刊社可以在线查询、编辑、修改、录入、导出读者信息,及时有效管理读者信息。 http://www.chinaaet.com/article/3000015300
7.城市规划展览展示数据管理系统臻图信息城市规划展览展示数据管理系统 1.总述 本项目作为智慧城市展览展示数据综合管理平台(一期)的延续,部分功能须承接数据综合管理系统基础平台,从其他信息系统采集、分析各类数据,对数据深度挖掘并形成可视化成果。通过平台实现对其他各子系统进行统一基础配置和控制管理。https://www.ztmapinfo.com/blog/index.php/article/204.html
8.学生成绩管理系统数据库设计–MySQL/SQLServer[通俗易懂]SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Management System Database)https://cloud.tencent.com/developer/article/2089017
9.phpmysql实战:学生信息管理系统(玉女心经版)本章课程不使用PHP任何后端框架,写一套简单的学生信息管理系统,对学生信息的增删查改。不使用框架的目的是为了更深层次地理解前后端数据的交互过程,更加熟悉SQL查询语句的使用,以及会话跟踪session的原生使用等。 初级 PDO PDOStatement layui组件 数据库 https://www.php.cn/course/1112.html
10.信息管理与信息系统专业自我评价范文信息管理与信息系统专业自我评价范文 自我评价(案例一) (我相信态度决定高度,一份劳动一份收获。为人真诚,做事踏实,能够快速接受新事物。) 1.掌握Java基础,JavaEE(servlet、jsp、xml等)相关技术。 2.熟练使用MySQL数据库,熟悉Oracle以及用过Redis数据库。https://m.jianliben.com/article/detail/17372
11.[顺义]信息系统安全等级保护建设与测评信息系统安全等级保护建设为了保障信息系统的正常运行,保障中心业务的正常开展,需继续提升中心网络的安全防护能力,按照相关文件要求进行2021年整体规划分布实施,2021年申请150.1764万元财政资金用于疾控中心的等级保护系统的整体规划与建设,使中心公共卫生检测系统达到等级保护三级,综合办公系统(OA)、慢病管理系统达到等级保护二级,以符合网络安全法、信http://www.ccgp-beijing.gov.cn/xxgg/qjzfcggg/qjzbgg/t20211111_1387593.html
12.2023届电子信息与计算机工程系优秀毕业设计作品毕业设计本论文研究的主要内容是对志愿服务管理系统进行分析与设计,以微软公司的Visual Studio为IDE,基于.NET开发框架,运用C#和MySQL关系型数据库,实现系统前台与后台之间数据的交互功能。使志愿者能够轻松地查看和搜索志愿服务活动、查询时长、并加入志愿服务组织;同时,管理员可以方便地发布活动、创建组织、并查看志愿者信息。 https://www.cdutetc.cn/c/4c068411-751b-4f12-b725-f69e34c010a3.html
13.项目管理请假管理(自建一个请假管理系统)请假管理信息系统 1.先放几张成品图 image.png image.png image.png 2.在mysql新建两张表表,我一般使用django model建表,你们也可以使用navicat建表,表结构如下: image.png 3.打开服务器FineReport点击菜单栏:服务器-定义数据连接,新建一个JDBC连接 https://www.jianshu.com/p/4ad39b017105
14.常见的数据库管理系统常见的数据库管理系统有MySQL、SQL Server、Oracle、Sybase、DB2。 常见的数据库管理系统 企服解答 常见的数据库管理系统有MySQL、SQL Server、Oracle、Sybase、DB2。 1、MySQL MySQL由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论https://36kr.com/p/1485883970912640.html
15.家禽养殖信息系统的设计与实现——集约化家禽养殖管理MDPIAnimals为满足不同规模家禽养殖场的高效管理和畜牧福利,作者建立了基于云数据库的家禽养殖信息管理系统,用以实时监控禽舍的环境、家禽行为、饮食等。 该系统既可满足家禽行业在禽舍环境监测、个体生长信息监测、疾病监测预警、溯源、企业日常办公管理等业务需求,也可对生产过程中产生的数据信息进行管理,实现家禽养殖过程信息化、https://news.sciencenet.cn/htmlpaper/2022/1/202212918384484769787.shtm
16.网络中心——第7部分:支撑条件。该部分规定了数字校园中支撑条件的要求,包括信息化基础设施、教学环境建设、仿真实训系统环境、平安校园和后勤服务等,旨在推进职业院校办学支撑条件建设、保障与服务的现代化。 ——第8部分:网络安全。该部分规定了数字校园中网络安全的要求,包括总体要求、网络安全防护与管理、网络安全系统与设备http://www.xtzy.com/wlzx/detail.jsp?public_id=153330
17.基于Java+Mysql的超市管理系统(附源码)基于Java swing+超市管理和购物系统由Mysql实现,使用beautyeye_inf.jar美化界面,用idea编写逻辑代码 1.开发环境 jdk8+mysql8+idea 2.功能 1.注册和登录功能。2.管理员具有商品类别管理、商品管理、用户管理、销售记录查询等功能。3.普通用户具有查看购物车、充值购物卡、修改密码、购买商品等功能。 https://www.tulingxueyuan.cn/tlzx/jsp/1861.html
18.MYSQL数据库管理系统俊king什么是MYSQL? 定义: 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的RDBMS(Relational Database Management System)应用软件之一。 (MYSQL是一个软件) 什么是RDBMS? 定义: 关系数据库管理系统 在学习MYSQL数据库管理工具之前要了解RDBM术语 https://www.cnblogs.com/JunkingBoy/p/14008118.html