高国举 黄河
关键词:云计算技术;本科教学;教学模式;多元化
1引言
“云计算技术”属于计算机领域中一门综合性很强的专业课程,其基本知识点包括云计算定义、云交付模型、云部署模式、云计算机制、虚拟化技术、云计算数据中心、数据处理与并行编程、云安全、云计算应用等[1-2]。一方面,“云计算技术”课程涉及大量的前期基础知识,如云计算数据中心网络拓扑问题与“计算机网络”课程息息相关、云计算内存虚拟化技术与“操作系统”课程密切相关、云计算存储虚拟化技术与“计算机组成和原理”课程相关[3-4]:另一方面,该课程涉及很多前沿扩展技术[5-6],如大数据统计与测量技术(布隆过滤器、Count-Min和HyperLogLog等)、服务器外接存储技术(DAS,NAS,IP/FC SAN等)、云安全与大数据隐私保护技术(K匿名、L多样性、差分隐私等)。另外,该课程还要求学生具有强大的实践动手能力,以搭建云计算平台,从而实现云计算相关实验(包括阿里云应用、Hadoop搭建、MapReduce操作、Spark应用等)。本课程的目的与任务是使学生通过本课程学习,从云计算的基本概念人手,由浅人深学习云计算的相关知识,掌握云計算关键技术和云部署模式,以及云计算机制等。本课程除了要求学生掌握云计算的基础理论知识,还重点培养学生的分析与处理问题的能力,为今后更深入的学习打下基础。
2教学现状及存在的问题
教学实践发现,“云计算技术”课程的教学主要存在以下3个问题。
(1)前期基础要求较高。正如上文所述,“云计算技术”是一门综合性非常强的课程,其涉及大量的前期基础知识结构,包括计算机网络拓扑(如Fat-tree)、存储与容错技术(如磁盘阵列)、外接存储技术(如DAS,NAS,SAN)、内存虚拟化(如分段分页技术)等。若学生没有学习过相关的前导课程,则将很难透彻地学好“云计算技术”这门课程。不仅如此,该课程包含非常多的陌生概念和技术,如分布式锁服务、虚拟化技术、分布式结构化数据表、分布式一致性算法(Paxos算法)、软件定义网络等,学生对相关概念的接触较少,很难快速理解相关知识点,尤其是涉及分布式的相关概念。
(2)前沿扩展技术较多。正如课程上所介绍的,大数据是需求,云计算是手段,云计算与大数据密切相关。所以,该课程涉及很多针对大数据的前沿扩展技术,如网络大数据测量技术可以解决大规模网络中的DDoS攻击检测、扫描攻击检测等问题,其具体包括网络流量大小测量、基数测量、持续性测量等测量任务,教师在课程教学中将着重介绍Google云计算架构包含的一些优化技术(BitMap、布隆过滤器、HyperLogLog等),另外,还会扩展介绍一些高效的网络测量数据结构.包括Count-Min Sketch等:再如,在“云安全”章节将会介绍较多大数据隐私保护技术,具体包括大数据发布过程中涉及的K匿名、L多样性匿名、T相近匿名等,大数据存储过程中涉及的同态加密、大数据审计技术等,大数据挖掘过程中涉及的差分隐私(拉普拉斯机制和指数机制)、联邦学习、安全多方计算等。因为涉及较多的前沿扩展技术,加大了学生的学习难度。
(3)实践能力要求较强。由于云计算课程同时包括理论知识教学和实践教学,该课程的实验教学主要从2个方面开展。首先,教会学生如何使用常见的商业云计算平台,并基于此完成相关的云计算任务:其次,引导学生自己动手搭建及配置云计算平台,加深学生对相关云计算架构的理解。基于已有实验课程经验,笔者发现学生的实践操作能力还有待加强,独立解决问题的能力也需进一步提高,所以教师需要着重培养学生分析问题、解决问题、独立思考的能力。
3“云计算技术”课程多元化教学模式的探索
结合“云计算技术”课程的特点与以往的教学经验,笔者提出了多元化教学模式,主要从基本理论知识教学、实验课程教学、前沿技术扩展教学3个维度对“云计算技术”课程的教学改革进行探索和实践,以加深学生对基础知识的理解.提高学生的实践动手能力,同时拓宽学生的知识储备和国际视野。
(1)基本理论知识教学。由于“云计算技术”课程涉及的基础概念非常多,因此采用以教师为主导的启发式讲授教学法为主,以学生讨论或者提问式教学为辅,同时结合课外自主学习的教学方法。一方面,为了增加课堂信息以应对该课程中大量的陌生概念,采用多媒体PPT的教学方法来讲授,同时辅以板书形式加深学生理解。在此过程中,教师将首先通过简单实例展示让学生尽快了解云计算,从而激发学生对云计算的学习兴趣,如在带领学生学习Google云计算架构中关于布隆过滤器的知识之前,教师首先提出了一个有趣的概率例子,即“三门问题”,学生均积极参与该例子的讨论,甚至于课间都会围绕教师展开激烈的探讨,这极大地激发了学生的学习热情。另一方面,对于课程中关键性概念、设计思想方面的问题,教师将采用课堂讨论的形式,通过引导学生主动思考来加深理解,从而达到举一反三的目的,如在讲授分布式操作系统Yarn时,教师会引导学生加入针对该架构的优缺点讨论,从而提高学生的主动性和积极性。针对缺少前导课程的问题,教师力求以最短时间给学生补充相关知识点,包括“计算机网络”“操作系统”“计算机组成原理”等课程的重点内容,旨在让学生全面深入理解云计算的知识框架,达到融会贯通的目的。
(2)实验课程教学。实验教学主要以学生实践动手为主,教师讲授教学为辅,并结合讨论与提问的教学模式。首先,教师向学生强调编程实践的重要性,从根本思想上提升学生的学习兴趣。接着,教师合理设计实验内容,尤其是注重实验内容的典型性和趣味性,让实践课程达到全面提高学生动手能力和解决实际问题能力的目的。最后,教师编写相关的实验手册,既能引导学生的实验步骤,又不至于让学生简单照着实验步骤执行而缺少自己的思考。实验教学的核心是培养学生的实践编程能力,以及分析问题、解决问题、自主反思的能力。拟从3个方面展开实验教学,首先是基于阿里云搭建Java Web开发环境,在此基础上设计实现动态的项目(如设计可统计展示不同客户端IP访问次数的个性化界面),接着是基于VMWare部署Hadoop、配置并操作HDFS、设置SSH免密操作,在此基础上编写运行MapReduce程序(如文本中的词频统计),最后是基于VMWare环境搭建、配置、测试Spark,并且能基于Spark完成大数据分析处理。
(3)前沿擴展技术教学。“云计算技术”课程的特点是与前沿技术的结合非常紧密,为了开阔学生的思维和眼界,本课程将介绍较多的前沿扩展技术。在讲解Google分布式结构化数据表Bigtable的性能优化时,教师将着重介绍布隆过滤器的相关内容,尤其是为了引出布隆过滤器的设计动机,教师将首先介绍BitMap结构,由于BitMap的空间效果仍然没达到最好的效果,因此教师引出了性能较好的基于概率性的数据结构——布隆过滤器,并且进一步给学生讲解布隆过滤器的优缺点,从而带领学生一起讨论布隆过滤器假阳性的分析过程。另外,教师还将给学生介绍Google云计算架构采用高效的大数据基数测量技术HyperLogLog算法,首先是介绍HyperLogLog算法的设计动机,通过掷硬币这个满足伯努利过程的简单例子出发,带领学生理解基本概念,引导学生思考该过程,并能分析出相关的理论界限。该部分主要采用“抛锚式”教学法,即在讲授过程中基于简单实例提出相关问题(如HyperLogLog为什么采用调和平均数而不是算术平均数),引导学生进一步思考,然后通过不断深入介绍,让学生由浅入深地理解HyperLogLog算法的本质。最后,通过课后作业的形式加深学生的理解,并且抛出Count-Min这个高效的网络流量大小测量的概念,让学生通过自己查找相关资料达到学习前沿技术的目的。同时,教师还将在讲授云计算数据中心架构的过程中通过东西向流量问题引出SDN模型,在讲解存储虚拟化的过程中引出服务器外接存储技术(DAS,NAS,IP/FC SAN)的概念,在讲解云安全的过程中引出大数据隐私保护技术(K匿名、L多样性、T相近、同态加密、差分隐私等)。
4结束语
通过本课程理论知识教学,学生能够掌握云计算的基本概念、实现机制、分布式系统架构、虚拟化技术、云存储与云安全等相关知识;通过实践课程教学,学生不仅能够掌握商业云平台的运行模式和使用方式,而且可以自己动手搭建云计算架构,从而完成分布式计算任务(即MapReduce程序),进一步加强学生实践动手能力与大数据分析处理能力:通过前沿扩展技术教学,学生不仅可以更好地理解云计算整体架构,而且可以开阔眼界,不至于闭门造车,从而进一步开启科学的思维方式,增强不断学习和适应计算机技术快速发展的能力。由此可见,本文提出的多元化教学模式可以切实提升“云计算技术”课程的教学效果。