面向社区的Scratch编程学习平台的开发研究

    杨惠 陈明磊

    关键词:Scratch;图形化编程;学习平台;社区教育

    中图分类号:TP393 ? ? ?文献标志码:A ? ? ? ? ?文章编号:1673-8454(2019)18-0087-05

    一、引言

    随着移动互联网、大数据、人工智能技术的发展,人们的生活发生了翻天覆地的变化,技术改变生活,可以预见到未来智能化的技术制品一定与人类的日常生活息息相关,学习计算机编程不仅有助于普通社区居民更好地了解技术、适应未来,也有利于开拓学习者的思维能力,因此在社区居民中推广有关计算机编程的通识教育就显得非常有意义。Scratch是美国麻省理工学院(MIT)于2007年5月开发出来的一款面向青少年的简易编程工具,其图像化编程、简单易上手的特点使得Scratch非常适合用于编程的推广教育。本研究希望设计出一个符合Scratch教学的远程教育学习平台,以Scratch为切入点,利用远程教育的优势使更多的人了解接触图像化编程,让对编程有兴趣的普通社区居民不用因为枯燥的语法而放弃学习编程,使学习者在图形化编程过程中逐步了解编程的逻辑和算法,从而让更多人了解并喜欢上编程,以达到推广计算机编程通识教育的目的。

    二、平台设计目标

    平台主要服务于社区居民,平台建设目的主要是为社区居民提供一个智能化、个性化的学习环境,普及推广计算机编程知识,因此平台设计希望可以达到以下几个目标:

    1.用户画像精确化

    社区居民学历背景参差不齐、人员组成复杂,年龄从幼儿到老年,跨度非常大,平台应该尽可能准确地对这些人群进行画像,通过平台了解用户的个人特征、学习行为、兴趣偏好,进而对这些用户进行聚类分群,以便平台为用户提供更多个性化的服务,从而满足不同层次人员的学习需求。

    2.社会交互高效化

    社区教育是一种基于兴趣的松散教育活动,是社区居民基于兴趣自主参与、不以获取学历或职业资格为目标的学习,其非强制性的特点导致学员缺乏重要的外在学习驱动力,自律性差的学员很难坚持持续的学习。社会建构主义认为有效的学习环境应该促进学习者之间的社会性参与和互动[1],为了增加平台对学员的粘性,吸引学员持续不断地通过平台学习,平台设计需要积极结合社交化工具,增强生生之间、师生之间的互动,同时发挥平台的大数据能力,为学员推荐同类学伴,使同类别的学员之间发生高效的社会交互,帮助学员彼此找到认同感和归属感。

    3.活动形式多样化

    活动理论认为,人类是作为与环境互动的一个特殊的要素而产生和存在的,所以活动(感觉的、心理的、身体的)和有意识的加工(学习)不可分割[2]。由此可见,活动对于学习至关重要,平台设计应该支持开展各种形式的活动,活动类型上不仅仅支持线上的活动,还需要支持线下活动的开展,利用远程教育的优势为线上和线下活动搭建桥梁,提升活动参与的便捷性和趣味性,活动形式上应该尽可能丰富多样,比如知识竞赛、作品评比、两两PK、课程闯关、线下活动线上召集令等,方便教师根据不同的学习内容设计有针对性的学习活动。

    4.激励机制实时化

    哈佛大學管理学教授詹姆斯认为:“如果没有激励,一个人的能力发挥不过20%-30%;如果施以激励,一个人的能力则可以发挥到80%-90%。”[3]激励机制的实施有利于激发学员的学习动机,提升学员的学习成就感和满足感。平台为了加强激励对学员的正强化作用,以积分系统和等级系统为基础,结合积分商城,让学员随时随地可以兑换学习积分为奖品,实时对学员的学习行为给予激励,提高学员的学习积极性。研究表明比较是激发动机的一个重要因素[4],等级系统的引入就是让学员知道自己和其他学员的等级,起到比较的作用,从而进一步激发学员的学习动机。

    5.学习终端灵活化

    随着移动互联网技术的发展,移动端的访问需求不断增加,平台不仅要考虑PC端的设计,同时也要考虑Pad端、手机端的设计,尤其目前微信应用如此普及,平台怎么结合微信做更多的定制开发都是要考虑的。本研究结合乐幸编程平台,通过引入前后端分离技术,前端通过AJAX技术异步请求后端资源,后端通过JSON返回响应数据交由前端处理数据逻辑,使得业务、数据解耦,既能够支持多终端统一展现,也能够根据用户特征及终端屏幕大小进行数据的个性化展示,从而满足学员多样化个性化的学习诉求。

    6.实际操作同步化

    Scratch编程是一门实践性很强的课程,平台除了提供Scratch的理论教学外,还需要为学员提供同步的实际操练场所,方便学员随时随地通过练习巩固课程内容。为了使学员可以更好地进行操作练习,平台设计需要支持教师为学员搭建学习“脚手架”,比如教师可以根据不同学习程度的学员推送不同的教程,设置教程是否强制观看,使部分学员在操作前先观看教程,以获得更高的练习效率,从而达到事半功倍的效果。

    三、平台总体架构及关键技术

    1.总体架构

    基于平台的设计目标和业务特点,结合当前IT互联网业界的先进做法,本研究决定采用面向服务的体系架构(Service Oriented Architecture,简称SOA)进行平台的设计与开发。面向服务的体系架构是一个组件模型,它将不同的功能单元(每个单元可以理解为一个服务)通过定义良好的契约和接口联系起来,比如在此系统中,可以拆分为用户中心、推荐中心、活动中心、课程中心等,这些服务通过一种统一的方式进行通信和数据交换。SOA架构可以包容、整合各种应用和服务所采用的不同的技术平台、技术路线,具有良好的扩展性。

    如图1所示,SOA体系架构自顶向下设计为5层,服务的调用原则是请求自顶向下处理,下层服务不可调用上层服务,具体介绍如下:

    第一层:用户层,针对C端用户和运营人员,包括PC Web、手机H5移动站、移动App、微信小程序等不同的展现方式。

    第二层:接入层,外部流量入口,可以包括C端用户流量、B端用户流量、运营端流量等。本层的主要职责包括安全防护(非法流量的拦截,例如DDOS攻击)、流量转发(例如Web端与移动端流量的互转等)、负载均衡、域名解析与加速等。

    第三层:服务组合层,接入外部请求,进行各种校验,比如权限认证、鉴权、限流、黑白名单、版本控制、安全审计等,然后向下调用各种下游服务,推动处理流程的流转,同时还能够封装内外部其他多个服务,按照业务单元进行数据组装,提供粗粒度的对外接口。

    第四层:业务服务层,完成业务人员可理解的业务动作,比如积分商城的兑换规则制定、商品上架、订单审核等粗粒度的业务操作。

    第五层:基础服务层,和具体业务无关,如数据库服务、缓存服务、消息中间件、日志处理、大数据的清洗与筛选、图片服务存取等。

    本研究最终落地的系统架构图如图2所示。整个系统搭建以服务为单位,通过开放标准、明确定义的接口调用其他服务或者对外提供服务,方便系统已有的服务可被复用,比如用户中心不仅仅可以服务Scratch的学习平台,也可以服务其他远程教育的学习平台,从而降低开发成本;无状态的服务设计使得系统具有高内聚低耦合的特点,一方面可以让每个服务只专注自己的业务逻辑,进而提高开发效率,另一方面方便系统水平扩展服务,以满足社区教育教育对象、教育内容灵活多变的需求。

    2.关键技术

    为了满足上述的平台架构,本文选择Spring Cloud作为开发框架,它集成和组合了许多轻量级的组件,可以为面向服务的体系架构提供一整套完整的解决方案,包括服务的注册和发现、服务的消费和保护、分布式配置管理等[6]。平台的服务组合层封装了业务服务层的多个服务,这使得外部的调用变得更加简单,但对于服务组合层本身来说,如果使用传统的服务封装办法,业务服务层新增服务或者已有服务增加新方法都需要针对服务组合层做相应的开发,从而增加系统后期的维护成本,Spring Cloud中的Zuul可以很好地解决这个问题(如图3所示)。Zuul作为平台的服务网关,自身也是一个微服务,跟其他服务如用户中心服务、课程服务、积分商城服务等一样,都需要注册在Spring Cloud的Eureka服务端上,服务之间通过监听机制可以相互发现,Zuul通过配置路由规则将外部请求自动转发到指定的业务服务层的服务上,Zuul的过滤器(ZuulFilter)用来处理公用的服务如权限校验、爬虫检测、安全审计等,这样业务服务层即便新增了服务,Zuul层也基本不需要修改。平台以服务为单位进行设计与开发,服务之间的封装、调用、整合便利性是选择开发技术时重点要考虑的,Spring Cloud开发框架不仅可以让平台服务之间的调用变得更容易,其庞大的组件功能、便利的配置方案,也让平台开发效率得到极大地提高。

    四、平台核心功能模块

    社区教育对比传统的学校教育,学习方式没有硬性的规定,社区居民想怎么学就怎么学,学习方式可谓五花八门,平台需要能支持多种学习方式,例如项目式学习、团队合作式学习、探究式学习等,为了满足这些需求,平台针对互动和活动模块做了比较多的设计;另外考虑到Scratch实操性强的特点,平台针对实操模块本土化改造的同时还设计了很多辅助功能,以帮助学员更好地完成实操练习。本文只介绍平台的核心功能模块以及平台3类角色(管理员、教师和学员)对这些功能模块的操作权限。

    1.智能中心

    智能中心包括学伴推荐和资源推荐,可以为学习者推荐同伴和感兴趣的资源(见图4)。学伴推荐指的是平台通过聚类分析方法,对平台的学员信息进行分析,挖掘出具有共同特点的人群,并对学员推荐与其有共同特点的人员,由学员决定是否关注系统推荐的人选。本研究采用的是K均值聚类法,选定分析的学员信息包括性别、年龄、文化程度、职业、地区、单位名称、兴趣爱好、政治面貌、民族。

    资源推荐指的是平台通过基于内容的推荐和协同过滤推荐的组合算法为学员推荐适合的学习和活动资源。算法的组合思路是先用基于内容的推荐算法产生一种粗糙的推荐结果,再用基于协同过滤的推荐算法在上述推荐结果的基础上进一步做出更精确的推荐。

    2.互动中心

    互动中心包括论坛中心、问答中心、直播中心和评价中心,方便学员进行探究式、团队合作式的学习。

    论坛中心包括学习圈和课程论坛,是学习者用于交流话题和课程的空间,学习圈指的是基于同样的兴趣组成的学习小组,课程论坛指的是针对课程的论坛。管理员通过该模块管理学习圈的话题、论坛的帖子,删除不合法的话题或帖子。教师通过该模块管理所教授课程的论坛,发起主帖、回复学员帖子,分享课程资料等;新增学习圈或加入已有的学习圈,管理学习圈的话题和成员等。学员通过该模块发起主帖、回复其他学员或教师的帖子;新建学习圈或加入已有学习圈,分享学习资料,与教师或其他学员互动等。

    问答中心用于发布平台的一些常见问题,方便学员搜索查看。管理员通过该模块增删改问答分类,方便管理问题;增删改学员发布的问题,为问题添加标签;添加学员问题或发布新问题及解答至问题库;配置问答中心生成用户手册、常见问题、软件下载等技术支持文档。教师通过该模块回答学员问题,为问题添加标签;添加学员问题或发布新问题及解答至问题库。學员通过该模块发布问题,回答其他学员的问题,为问题添加标签。

    直播中心用于开展直播课堂,教师和学员通过该模块可以实现实时的视频、语音、文字的交流互动。管理员通过该模块对教师的在线直播课堂申请情况进行审核,确定该时段内平台有足够的服务器、网络带宽资源支持,保证直播课堂的通讯质量。教师通过该模块申请开设、正式开展或关闭直播课堂,审核参加直播课堂的学员列表。学员通过该模块申请参加直播课堂,审核通过的学员可以正式参加直播课堂。

    评价中心通过发起投票表决、问卷调查、课程评价等互动形式及时获得用户的反馈。管理员通过该模块可以针对课程、教师或平台功能发起投票表决、问卷调查,投票表决、问卷调查可以只面向某一特定群体开放,也可以面向所有用户开放;针对课程增删改评价维度和评价等级。教师通过该模块针对课程、某一问题或事件发起投票表决、问卷调查,投票表决、问卷调查可以只面向某一特定群体开放,也可以面向所有用户开放;针对课程增删改评价维度和评价等级。学员通过该模块参与投票表决、问卷调查和课程评价。

    3.活动中心

    活动中心用于开展各种形式的活动,增强学员对平台的粘性,帮助学员更好地完成学习目标,活动形式包括作品评比、知识竞赛、两两PK、闯关、线下活动报名等。管理员通过该模块管理活动模板,为不同形式的活动绑定不同的模板。教师通过该模块设置活动信息,绑定活动模板;管理知识竞赛、PK赛、闯关试题库;设置闯关的关卡数;设置活动报名表单,审核学员报名信息等。学员通过该模块上传作品、投票作品、参加竞赛、发起PK、闯关、报名线下活动等。

    4.用户中心

    用户中心主要包括风采区、活动区、成果区3大模块,风采区包括用户身份、用户等级、用户积分、笔记数、关注数、粉丝数,活动区包括我的课程、我的小组、我的活动、我的作品、我的问题、我的建议,成果区包括个人积分、我的证书、我的统计。

    风采区主要用于展示用户在平台的等级及威望,方便学员查找到平台的意见领袖,帮助学员筛选所要关注的人。用户身份分为教师和学员,教师等级分为初级、中级、高级、特级,学员等级分为小学生、中学生、大学生、研究生、博士生。

    活动区主要是记录用户参与的平台学习、互动、活动等。教师活动区主要显示教师所负责的课程、小组、活动列表,查看学员的课程反馈、小组话题、活动作品,回答学员问题、评论学员作品等。学员活动区主要显示学员所参与的课程、小组、活动列表,发布的问题、建议列表,查看教师和其他学员的问题解答、作品评论等。

    成果区主要是对用户在平台学习或教学的成果进行总结归纳,用积分兑换奖品的方式激励用户使用平台。管理员通过积分模块设置各个积分项的分值、积分分值对应的奖品、积分项的启用状态,积分项包括注册、每日签到、添加课程、收藏课程、撰写评论、观看课程、参加活动、上传作品、填写问卷、发布建议等;学员和教师通过该模块可以查看积分的获取明细,用积分兑换奖品等。管理员和教师通过证书模块设置证书的模板、获取规则;学员通过该模块查看并打印证书。管理员通过统计模块设置允许教师和学员查看的统计项目;教师通过该模块查看所授课程的学员学习情况,个人发布资源、学习圈、活动、评论情况;学员通过该模块查看个人的学习情况,包括登录时间、登录时长、登录次数、浏览资源次数、浏览资源时间、搜索资源次数、搜索时间、参与小组数、参与活动数、参与课程数、获得证书数、帖子数、话题数、积分排名等。

    5.课程中心

    课程中心用于展示平台的课程内容,既可以按课程分类展示,也可以按班级展示,学员可以通过课程分类或者班级的知识地图浏览具体的课程,教师可以通过设置知识地图开展基于项目的教学。管理员通过该模块设置课程分类;批量导入课程信息,课程信息包括课程分类、课程名称、课程介绍、课程学时、课程价格、课程是否上线等;设置课程老师,绑定课程的课件信息等。教师通过该模块设置班级名称、知识地图,知识地图是由各个知识点以及知识点之间的顺序关系组成;绑定知识点对应的课程信息。学生通过该模块查找并观看课程,记录课程笔记,查找他人课程笔记等。

    6.实操中心

    实操中心整合了Scratch 3.0开源软件,并对其进行本土化改造,用于学员创作并可通过微信分享Scratch作品。管理员通过该模块配置选择需要显示在实操中心的菜单项,菜单内容包括Scratch教程、问答中心、作品中心、活动中心、意见反馈等。教师通过该模块发布教程和范例,查看并点评学员作品等。学员通过该模块实际编程,并最终发布H5作品;通过作品名称或发布者搜索查看、评论其他人的作品。

    五、结束语

    本文以简单易上手的图形化编程工具Scratch为切入点,在详细分析社区教育学习者编程学习平台需求的基础上,围绕Scratch实操性强的特点,设计适合社区居民学习Scratch的远程教育学习平台“乐幸编程平台”。系统的实现为在社区居民中推广有关编程的通识教育起到推动作用,也为实践性课程教学的远程教育学习平台的设计提供一定的指导作用和借鉴意义,平台智能化推荐的设计为大数据技术在其他学习平台的应用提供一定的参考价值。目前平台已经实现了文章所述的所有功能,并已投入使用,后期随着用户数量的不断增加,希望能从学习者学习风格、学习行为、学习效果等角度做更多的应用研究,多维度对社区学习者进行画像,不断优化平台的智能推荐算法,从而为社区教育的教育内容、教育活动设计提供更多的数据参考。

    参考文献:

    [1]杨进中,张剑平.基于社交网络的个性化学习环境构建研究[J].开放教育研究,2015,21(2):89-97.

    [2]项国雄,赖晓云.活动理论及其对学习环境设计的影响[J].电化教育研究,2005(6):9-14.

    [3]李训.激励机制与效率:公平偏好理论视角的研究[M].北京:经济管理出版社,2007.

    [4]王英彦,杨刚,曾瑞.在线学习者的激励机制分析与设计[J].中国电化教育,2010(3):62-66.

    [5]IBM在SOA参考架构标准中的优势[EB/OL].https://www.ibm.com/developerworks/cn/webservices/ws-soa-ref-arch/.

    [6]王佳越.基于Spring Cloud的企业人事管理系统的设计与实现[D].长春:吉林大学,2018.

    [7]王宏志.大數据分析原理与实践[M].北京:机械工业出版社,2017.

    [8]韦书令.社区教育数字化学习平台建设和资源共享研究[J].成人教育,2017,37(5):32-36.

    [9]高凤.基于Scratch的中小学创新教育平台设计与研究[D].西安:陕西师范大学,2016.

    [10]李强,李若瑜.Scratch 3.0少儿游戏趣味编程[M].北京:人民邮电出版社,2019.

    (编辑:鲁利瑞)