一种“嵌入式”大数据与云计算课程设置和教学方法研究
2018-09-28
(苏州科技大学电子与信息工程学院,江苏 苏州 215000)
随着当前信息技术的不断深化和发展,以及我国“互联网+”、“智能制造2025”和“一带一路”等国家发展战略规划的推进,大数据时代已经扑面而来,云计算与大数据技术越来越得到重视和普及,甚至已经成为企业实力竞争的核心以及国家竞争和战略发展的核心[1][2][3][4]。云计算与大数据技术的出现再次给社会各行各业带来技术层面更高、影响力更广的一次全方位变革,有调查数据显示,目前32.5%的公司正在搭建大数据平台,32.5%的公司已经在生产环境实践大数据,并有成功的用例或产品;24.5%的公司已经做了足够的了解,开发准备就绪。云计算与大数据技术的普及应用和高速发展也带来了对相关人才的巨量需求。著名研究机构IDC经过调查发现亚太区的云计算相关人才需求年增长率达32%,领英发布的《2016年中国最热职位人才报告》中基于领英平台上约50万的中国各个行业人才大数据的分析表明,大数据相关人才最为稀缺。2017年100offer的调查显示,云计算、大数据领域的人才需求,无论从市场需求、面试邀请数量还是薪资水平,都呈大幅度领先的状况。
显然,作为国家中、高端人才的培养基地,高等院校如何顺应这一趋势,在大学课程体系中建设具有针对性的课程[1],积极培养具备大数据分析和应用基础知识、基础技能的本科生,已成为摆在高校教师和管理人员面前的一个迫切任务。
然而大数据与云计算技术体系庞杂,技术覆盖数据采集、预处理、分布式存储、NOSQL数据库、多模式计算(批处理、在线处理、实时流处理、内存处理)、多模态计算(图像、文本、视频、音频)、数据仓库、数据挖掘、机器学习、人工智能、深度学习、并行计算、可视化等各种技术范畴和不同的层面。相对于国内大学计算机学科的教学内容而言,一方面这些技术与现有课程体系中的很多关键课程、基础课程息息相关,另一方面则由于大数据、云计算技术应用性强、综合性高,现有课程往往缺乏较为成熟和体系化的思路来实现对大数据的课程进行支撑。因此最终大数据、云计算的课程设置大多浮于表面,独立设置其内容,既无法利用和衔接现有课程,也无法对现有课程体系起到深化和发展作用,有学生反映大数据与云计算课程更像一门课外兴趣活动课,而不是整个课程体系的有机组成部分。
由此可见,为了适应大数据与云计算等技术发展及人才培养的需求,需要从大数据与云计算和已有课程的相互协同出发,研究将大数据与云计算“嵌入”现有课程体系的方法,设计有针对性的大数据与云计算的教学目标、内容、实践以及评价方法,从而更好的培养具备大数据相关技术能力基础的本科人才[2][3]。
一、“嵌入式”大数据与云计算课程设置思路
从现有的教学过程和反馈来看[4][5][6],大数据与云计算是一门应用性强、综合性高、难度较大的课程,欲开展教学,学校在现有课程中需要满足如下条件:首先需要保证在基础课程方面为学生打下较为坚实的技术和能力基础;其次,各门课程都牢固树立以培养学生实践能力、工程能力为核心的培养目标;最后,在课程体系建设、教学内容安排以及学生考核评估方面贯彻以动手能力和实践创新能力为依据的原则。
苏州科技大学电子与信息工程学院已经具备了较为坚实的基础,计算机科学与工程专业分别入选了“江苏省地方高校服务外包人才试点专业”、“江苏省卓越工程师教育培养计划(软件类)”,建立了一套以培养实践创新能力为核心的立体化的培养方案和计算机课程体系,其教学内容和学生考评在近几年的教学中进行了充分的实践检验,此外还通过“学生研究训练中心”搭建了计算机专业的学生科研训练平台,学生的基础技术能力、创新实践能力培养都能够得到保障。
在上述基础上,基于“嵌入式”的建设思路,使用模块化建设方法,综合大数据与云计算的课程特点,提出了相应的课程设置思路,将其“嵌入”现有的课程体系中,其设置思路及建设后的课程体系如图1所示。
图1 “嵌入式”大数据与云计算课程设置思路
该体系将大数据与云计算课程“嵌入”现有课程体系过程中,其前期支撑课程为传统计算机基础知识和基础能力课程,后续发展课程则为具体特色应用方向,从而体现大数据与云计算课程的核心和关键作用。
二、“嵌入式”大数据与云计算课程的教学组织方法
在上述思路指导基础上,本校在大数据与云计算课程的教学组织方面也进行了相应的探索,主要从如何衔接和协同现有课程体系方面入手,从模块化、实践化角度,通过与现有课程相关联的实践案例驱动和典型场景设计等,在教学内容组织、学生组织和管理以及教学效果的考核与评定三个方面展开讨论。
(一)大数据与云计算课程的教学内容组织
大数据与云计算课程的教学内容本身覆盖面较广,知识点分散,另外还需要考虑与现有课程体系的衔接和协同,因此教学内容组织的主要做法包括理论知识点的模块化划分和实践内容的案例驱动与典型场景设计,分别说明如下。
1.理论知识点的模块化划分
课程教学内容采用模块化协作体系,分三个模块:框架平台及运维、大数据存储技术、大数据分析与处理技术,三个模块具体说明如下。
模块1:框架平台与运维,主要教学内容包括:云计算与大数据技术概述(云计算技术的历史演化及特点、云计算平台相关的Linux系统基本操作方法、Google相关的云计算、虚拟化技术和计算框架介绍、基于Google平台的典型大数据应用场景);基于Google File Systemde的分布式文件平台配置和运维(基于典型场景的GFS、Hadoop等应用平台的搭建方法、常用的Hadoop配置运维方法、MapReduce Job的运行过程与原理);Spark部署及应用(基于典型场景的Spark生态系统、Spark架构功能和技术特点、Spark的安装和配置)。
模块2:大数据存储技术,主要教学内容包括:基于Google File System的分布式数据存储技术(GFS、Colossus以及HDFS系统架构与原理、相关平台功能与运行原理、相关分布式文件系统基本操作方法);基于Google技术的数据库技术基础(Bigtable、HBase、Hive等非关系型数据库的技术特点和典型应用场景、Hive等基于分布式文件数据仓库的技术特点和典型应用场景);基于Google技术非关系型数据库应用(Bigtable、HBase、Hive等的数据库体系结构及配置运维方法,Bigtable、HBase的基本操作方法及典型应用场景,基于Hive的HiveQL基本操作以及典型应用场景)。
模块3:大数据分析与处理技术,主要教学内容包括:基于Map-Reduce的大数据分析技术(分布式计算理论初步、Map-Reduce编程框架和数据流处理流程、Map-Reduce编程的分布式输入与输出、基于Eclipse的Map-Reduce编程环境配置与使用和基本开发技术);基于Google技术的数据分析与处理(面向BigTable、HBase非关系型数据库的数据分析和处理技术、面向Hive分布式文件的数据仓库的数据分析和处理技术);包括Caffeine引擎在内的Google新技术及典型应用场景介绍。
2.基于案例驱动和典型场景设计的实践内容设计
与理论知识相对独立的特点不同,实践内容设计则可以充分考虑与现有课程的协同,尤其是现有课程在实践方面的协同,具体设计安排如表1所示。
表1 实践内容及协同课程设计
从表中可以看出,每个模块都有相关的协同课程,因此在实验指导、操作以及评价时可以充分考虑将已有课程的知识点以及实验相连接,例如Hadoop平台的安装与Linux的操作命令协同,Hbase的存储操作与数据结构的算法协同;MR编程思路及步骤与程序设计基础和算法分析课程协同,等等,只要能够将实践内容的设计与相关课程进行充分协调,最终都能很好的与课程进度相融合。
除了和其他课程协调以外,每个模块的实践内容之间也能够充分协同,即不同模块的实践最终可以汇总为一个整体案例,并与JavaEE开发技术、Web应用开发等课程进一步融合,从而完成一个具备较为完整功能的实际商业应用,下面给出几个参考案例。
案例1:带推荐系统的电子商务平台设计与实现,基于大数据与云计算平台部署,能够对用户购买活动数据进行包括关联性等在内的大数据分析,从而进行推荐,并基于Web或APP向用户提供访问的应用平台。
案例2:搜索引擎设计与实现,基于大数据与云计算平台部署,能够对网页进行爬取以及进行PageRank等在内的大数据分析,从而实现搜索,并基于Web或APP向用户提供访问的应用平台。
案例3:餐饮评价网站设计与实现,基于大数据与云计算平台部署,能够对用户餐饮活动和评价进行统计等大数据分析,从而进行评价、推荐,并基于Web或APP向用户提供访问的应用平台。
3.教学课时安排和组织方法
作为一门实践课,从本校现有反馈来看,大数据与云计算课程需要增加实践学时,使其达到所有学时的一半左右较为合理,除此以外,实践案例和场景大多需要团队讨论和合作,因此还需要安排一定的课外时间,进行项目中的需求讨论、分析、概要框架的设计以及用户手册的编写等,而理论内容教学则可压缩。
具体组织方面,学生先确定所进行的案例和场景,在项目启动前,教师根据场景安排确定较为具体的目标,在每个模块阶段开始时让学生团队讨论、分析需求,然后分阶段部署平台,实现框架,设计核心算法,完成详细设计。学生进行开发实现、测试之后还要再回到课堂,完成用户手册等文档工作。最后,每个小组的具体应用需要在课堂上进行公开演示,通过全班学生和教师的评价之后才算完成实验。
(二)学生的组织和管理
根据软件开发的需求,以上三个模块的项目进行过程中,学生应以团队方式完成,但由于每个项目的难度和内容并不一致而呈增量式发展趋势,因此学生的团队组成也并非一成不变,笔者采取以下方案:
在课程第1模块阶段,不采用团队方式,所有学生独自完成任务,教师组织学生互相考评,从而方便学生互相之间了解技术能力、思考方式以及个人喜好等因素,利于在第2模块阶段开始进行自由组队,最终全班按4~6人左右组成若干个团队。为了避免团队间过度的能力不均衡,教师可以对组团进行微调。
除了组团以外,教师还需要在每个模块阶段开始前进行一定的辅导。特别是在前两个模块阶段,由于学生一般都是第一次接触类似项目,教师应该详细介绍项目的设计流程,尤其应该介绍其他课程如Linux操作系统、数据结构、算法与程序设计等方面的知识,另外帮助学生做好分组工作,指派组长及成员的工作内容,并强调分工合作。另外,每次模块阶段之前,教师还要帮助学生做需求分析,提供一些建议,引导学生设计一个合理的目标。具体实践中,教师还要帮助学生处理一些算法以及设计方法方面的辅导工作。总之,教师辅导的重点在于帮助学生学会自己解决问题,而不是帮助学生解决问题,即“授人以渔”,而非“授人以鱼”。
(三)教学效果的考核和评定
学生在刚接触一门课程的时候,最关注的问题往往是如何通过考试。大数据与云计算课程的最终成绩由考试成绩和项目实践成绩组成,其中考试成绩只占30%,而剩余部分全部依赖于学生的项目实践成绩。因此,学生只有在平时就努力学习,努力完成项目实践,才能获得良好的成绩,这样不仅可以使日常教学获得良好的效果,也减轻了学生考试的压力。
项目实践成绩的组成则由演示陈述、平台运维、算法设计等类别构成,其中演示陈述将占较大比重,该部分成绩的评定方法为:每个项目阶段工作完成之后,用公开演示的办法来引导学生参与评价,由于是公开评价,所以每个学生小组都处在竞争之中,另外演示需要学生上台演讲,也培养了学生口才等一些综合素质方面的才能。最后将各方面的成绩通过综合,构成平时成绩,成绩较为公平和公开。
三、结论
通过本校近两年的实践,基于“嵌入式”思想的大数据与云计算这门课程取得了良好的教学效果,整体而言,“嵌入式”大数据与云计算课程具备以下优势:
(1)能有效结合现有课程的培养特色,体现出宽口径教学课程以及学生实践能力训练的优势,能够为学生开展大数据应用和分析课程学习提供坚实的基础。
(2)采用“案例驱动、典型场景教学、理论与实践一体化”的教学方法,遵循了高等工程教育的理念和认知规律。
(3)多模块、分阶段的项目案例,促进学生的自主学习能力、团队协作能力、交流沟通能力的提升。
(4)充分呼应现有学科培养方法和目标,培养学生的创新思维与创新能力,全面开发学生的潜力。
今后,我们在下一步的课程教学改革过程中将采取更有深度和广度的研究,以使得大数据与云计算课程和计算机学科传统课程结合得更为紧密,同时深化大数据及相关技术的核心和关键性,为计算机学科教育发展提供思路和支撑。