高校大数据实训课程样板工程

高校大数据实训课程样板工程

厦门大学和厦门理工学院联合打造

扫一扫访问本网页

本页内容快速导航

一、实训课程基本信息
二、课程设计的目的、任务与要求
三、选题的原则
四、课程设计内容
五、课程设计的教学方法
六、学生名单
七、授课过程
八、教学管理平台
九、学生作品

课程亮点:高校大数据教学名师和企业大数据工程师联合指导、“教学过程一体化管理平台”和“高校大数据课程公共服务平台”全程助力、为高校量身定制的大数据实训案例教材、围绕工程教育认证要求制定课程内容

(上图  2018年9月26日项目答辩结束后合影)

一、实训课程基本信息

1.实训题目基于协同过滤算法的电影推荐
2.实训时间:2018年9月3日-28日
3.实训学生:厦门理工学院计算机与信息工程学院软件工程专业2015级本科生(大四),44人,没有任何大数据技术基础,没有学习过大数据课程
4.实训类型:软件工程综合实践(大数据方向)
5.授课教师:厦门大学计算机科学系 林子雨 助理教授
6.课程设计学时(周数):4周/84课时
7.实训教材:林子雨编著《大数据实训案例:基于协同过滤算法的电影推荐》(官网
8.实训课程需要达到的专业工程认证毕业要求

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

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

实验室位于厦门理工学院精工园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,所以,整个实训过程,运行非常流畅。

10.实训管理系统

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

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

厦门大学建设的大数据课程公共服务平台(平台主页),为本次实训课程提供了强有力的支持。学生在实训课程全程可以在线自由免费访问平台上的大量大数据教学资源,解决实训课程的相关大数据技术难题。

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

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

二、课程设计的目的、任务与要求

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动态网页获取推荐结果。

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

三、选题的原则

1.选题原则

  • 符合当代企业信息化建设的实际需求
  • 切合学生已学过的技术理论知识

2.题目难度、深度、广度分析

  • 课题适合中小型企业需求
  • 涉及行业领域信息标准化设计
  • 覆盖软件工程中的各个主要环节

四、课程设计内容

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

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

基本需求包括:

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

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

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

五、课程设计的教学方法

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

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

  • 理论讲解:讲解技术原理与编程技巧;
  • 案例实践:设计编程案例,让学生动手实现;
  • 案例讲解与点评:讲解案例的实现方法,并针对学生在实现过程中产生的问题进行点评;

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

  • 方法讲解:讲解开发计划、需求分析和系统设计的实施以及文档撰写方法;
  • 案例实践:让学生分组协作,完成项目案例的开发文档撰写;
  • 反馈修改:对学生提交的开发文档进行评阅,并即时反馈问题和修改意见;
  • 指导开发:指导学生针对设计方案进行项目开发;

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

六、学生名单(共44人)

序号 专业 专业班级 学号 姓名
1 软件工程 2015级软件工程 1507052102 陈浩前
2 软件工程 2015级软件工程 1507052103 陈君钰
3 软件工程 2015级软件工程 1507052104 陈涛
4 软件工程 2015级软件工程 1507052106 陈伟鸿
5 软件工程 2015级软件工程 1507052110 耿衎
6 软件工程 2015级软件工程 1507052111 龚志松
7 软件工程 2015级软件工程 1507052114 何蕾
8 软件工程 2015级软件工程 1507052122 蒋东阳
9 软件工程 2015级软件工程 1507052123 靳彪
10 软件工程 2015级软件工程 1507052125 李鸿利
11 软件工程 2015级软件工程 1507052130 林卓瀚
12 软件工程 2015级软件工程 1507052131 刘凌志
13 软件工程 2015级软件工程 1507052132 吕鸿鹏
14 软件工程 2015级软件工程 1507052133 欧阳韬韬
15 软件工程 2015级软件工程 1507052134 苏伟毅
16 软件工程 2015级软件工程 1507052135 苏镇锋
17 软件工程 2015级软件工程 1507052136 王依婷
18 软件工程 2015级软件工程 1507052138 许富翔
19 软件工程 2015级软件工程 1507052139 薛伟强
20 软件工程 2015级软件工程 1507052141 杨一郎
21 软件工程 2015级软件工程 1507052143 张表铭
22 软件工程 2015级软件工程 1507052220 李闽浩
23 软件工程 2015级软件工程 1507052223 廖建超
24 软件工程 2015级软件工程 1507052245 朱佳乐
25 软件工程 2015级软件工程 1507052308 陈文娟
26 软件工程 2015级软件工程 1507052309 陈卓
27 软件工程 2015级软件工程 1507052310 方向旭
28 软件工程 2015级软件工程 1507052316 李家灏
29 软件工程 2015级软件工程 1507052322 林诚希
30 软件工程 2015级软件工程 1507052323 林城
31 软件工程 2015级软件工程 1507052331 吴熙
32 软件工程 2015级软件工程 1507052333 许志峰
33 软件工程 2015级软件工程 1507052336 张亚婷
34 软件工程 2015级软件工程 1507052339 郑神昊
35 软件工程 2015级软件工程 1507052340 郑时凯
36 软件工程 2015级软件工程 1507052342 郑小龙
37 软件工程 2015级软件工程 1507052343 朱子恒
38 软件工程 2015级软件工程 1507052403 蔡燕银
39 软件工程 2015级软件工程 1507052410 陈颖颖
40 软件工程 2015级软件工程 1507052415 何宇杰
41 软件工程 2015级软件工程 1507052421 林俐婷
42 软件工程 2015级软件工程 1507052437 游艺超
43 软件工程 2015级软件工程 1507052439 张明杰
44 软件工程 2015级软件工程 1507052442 郑雪梅

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

七、授课过程

授课时间:2018年9月3日到28日,共84学时

序号 课程主题 授课日期 授课时间 学时 作业
1 Linux系统安装及使用方法 2018-09-03 08:20 ~ 11:50 4 作业1:Linux安装、常用命令以及相关软件用法
2 Hadoop的安装和使用方法 2018-09-03 14:20 ~ 16:50 3 作业2:安装Hadoop
3 分布式文件系统HDFS介绍及其常用Shell命令 2018-09-04 08:20 ~ 11:50 4 作业3:HDFS常用Shell命令
4 Spark框架介绍及环境搭建 2018-09-04 14:20 ~ 16:50 3 作业4:Spark环境搭建及程序编译运行
5 Scala语言基础 2018-09-05 08:20 ~ 11:50 4 作业5:Scala安装和初级编程实践
团队建设文档
团队奖惩制度
9-5小组会议纪要
6 Spark编程基础 2018-09-07 08:20 ~ 11:50 4 作业6:RDD编程初级实践
7 开发工具IntelliJ IDEA的安装和使用方法 2018-09-07 14:20 ~ 16:50 3 作业7:使用IntelliJ IDEA开发Spark应用程序
周记报告(第1周)
8 MySQL数据库和ETL工具Kettle的安装和使用方法 2018-09-10 08:20 ~ 11:50 4 作业8:MySQL数据库的安装和使用方法
作业9:ETL工具Kettle的安装和使用方法
9 推荐系统与协同过滤算法 2018-09-10 14:20 ~ 16:50 3 文献综述
9-10小组会议纪要
10 Spark MLlib程序编写方法 2018-09-11 08:20 ~ 11:50 4 作业10:在Spark MLlib中使用ALS算法
11 Node.js的安装和使用方法 2018-09-11 14:20 ~ 16:50 3 作业11:利用Node.js实现词频统计网页应用程序
9-11小组会议纪要
12 Spark读写MySQL数据库 2018-09-12 08:20 ~ 11:50 4 作业12:使用Spark SQL读写MySQL数据库
9-12小组会议纪要
13 项目开发计划 2018-09-14 08:20 ~ 11:50 4 撰写项目开发计划
14 撰写需求分析说明书 2018-09-14 14:20 ~ 16:50 3 9-14小组会议纪要
周记报告(第2周)
15 撰写需求分析说明书 2018-09-17 08:20 ~ 11:50 4 撰写需求分析说明书
16 撰写需求分析说明书 2018-09-17 14:20 ~ 16:50 3 提交需求分析说明书和答辩PPT
17 需求分析说明书评审 2018-09-18 08:20 ~ 11:50 4 需求分析说明书评审
18 系统设计说明书撰写 2018-09-18 14:20 ~ 16:50 3 系统设计说明书撰写
19 系统设计说明书撰写 2018-09-19 08:20 ~ 11:50 4 系统设计说明书撰写
20 系统设计说明书撰写 2018-09-21 08:20 ~ 11:50 4 系统设计说明书撰写
21 项目开发 2018-09-21 14:20 ~ 16:50 3 项目开发
22 项目开发 2018-09-25 08:20 ~ 11:50 4 项目开发
23 项目开发和用户手册撰写 2018-09-25 14:20 ~ 16:50 3 项目开发和用户手册撰写
24 项目答辩 2018-09-26 08:20 ~ 11:50 4 项目答辩

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

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

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

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

八、教学管理平台

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

学生作品

相册