高校大数据实训课程样板工程
厦门大学和厦门理工学院联合打造
扫一扫访问本网页
本页内容快速导航
一、实训课程基本信息
二、课程设计的目的、任务与要求
三、选题的原则
四、课程设计内容
五、课程设计的教学方法
六、学生名单
七、授课过程
八、教学管理平台
九、学生作品
课程亮点:高校大数据教学名师和企业大数据工程师联合指导、“教学过程一体化管理平台”和“高校大数据课程公共服务平台”全程助力、为高校量身定制的大数据实训案例教材、围绕工程教育认证要求制定课程内容
(上图 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)可视化:采用可视化技术,把分析结果展现给用户。
课程设计采用“技术教学 + 项目实践”的形式,以技术教学作为项目实践的准备和基础,以项目实践强化技术教学的效果,并训练学生的团队协作、交流沟通以及实施商业项目开发的能力。
技术教学环节采用的教学方法包括:
- 理论讲解:讲解技术原理与编程技巧;
- 案例实践:设计编程案例,让学生动手实现;
- 案例讲解与点评:讲解案例的实现方法,并针对学生在实现过程中产生的问题进行点评;
项目实践环节采用的教学方法包括:
- 方法讲解:讲解开发计划、需求分析和系统设计的实施以及文档撰写方法;
- 案例实践:让学生分组协作,完成项目案例的开发文档撰写;
- 反馈修改:对学生提交的开发文档进行评阅,并即时反馈问题和修改意见;
- 指导开发:指导学生针对设计方案进行项目开发;
(上图 项目答辩最佳团队获得林子雨老师赠书)
序号 | 专业 | 专业班级 | 学号 | 姓名 |
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 | 项目答辩 |
(上图 实训课程林子雨老师在上课)
(上图 林子雨老师在解答学生问题)
(上图 实训课堂上学生团队在讨论解决问题)
(上图 不同团队之间在互相交流学习)
本次实训课程采用“教学过程一体化管理平台”,对教学全过程进行高效的信息化管理。该系统具备课程资源管理、学生管理、授课过程管理、授课质量分析、成绩自动统计等功能。
相册