吴冬芹,刘潇涵,李 佳
(南京大学金陵学院信息科学与工程学院,江苏 南京210089)
云学习理念下互动编程服务系统的设计与开发*
吴冬芹,刘潇涵,李佳
(南京大学金陵学院信息科学与工程学院,江苏 南京210089)
云计算技术在学习领域的应用使云学习成为发展的必然趋势。在云学习理念下所设计的在线互动编程服务系统,针对程序设计初学者,提供了包括云端编程、云端指导、云端资源管理的各项功能;在技术层面,不仅提供了web实现,更有app应用,学习者可以在不同终端登录系统,随时随地展开编程活动,系统的使用和推广能极大地改善程序设计的学习效果,提高学习效率。
云学习;云端互动编程;云端资源管理
在网络和计算机技术快速发展的时代背景下,涌现出种类繁多的云学习平台。经调查发现,现有学习平台主要的优势在于提供了丰富的视频资源,同时开设用于学习者讨论的论坛、贴吧等,满足了一定人群的学习需要。不足之处在于,现有云学习平台在功能上过于强调通用性,在内容上关注学科的齐全性,针对性不够强;尤其是针对实践性较强的程序设计语言,缺乏有效的编程实践环境和项目实践指导,显得苍白无力,很难真正满足程序设计学习者的需要。
云学习理念下的在线互动编程服务系统在此背景下产生,结合云学习的特点,平台针对程序设计初学者进行设计,以编程吧的形式展现,提供了云端编译的环境,学习者可以在任意终端登录,选择自己需要的程序设计语言,编写、编译程序;此外,编程吧还提供大量可在云端练习的各种语言的程序题目,每种语言还有专家团队对学习者在云端提供一对一的专业编程指导。
云计算是一种基于互联网的全新计算模式,它是在分布式系统、网格计算、虚拟存储等基础上形成的一种新型共享基础架构,它的核心是提供数据存储和网络服务。[1]随着云计算应用研究的不断深化,越来越多的研究者开始研究如何利用这一新技术改进人们的学习方式、更新学习资源、改造学习环境,“云学习”理念在此背景下应运而生。这也是云计算在学习领域的广泛应用,与学习者群体的现实学习发展需求相一致。
云学习理念势必会潜移默化地改变学生的学习行为和学习结果。[2]在云学习时代,真正把“学习的主动权还给了使用者,使用者可以高度自由地控制学习的内容、方向和进度”。在学习内容、学习时间、学习场所的选择上,学习者有了更多的决策权,能真正为自己的需求、自我成长而学习。[3]云学习是在云计算上的延伸和发展。[4]这一新的学习理念要真正为学习者服务,还需要构建一定的平台,不断进行尝试和探索。
云学习具有开放性、交互性、个性化学习、优质学习资源整合等特征。[2]结合云学习的思想,可以得出云学习理念下互动编程服务系统的整体设计目标。
1.云端编程
对于所有的程序设计学习者而言,编程环境的安装和配置是极为重要的,编程环境也约束了学习者的编程自由,一旦离开自己配置好的电脑,就无法展开编程练习。针对这一点,在线互动编程服务系统糅合了云学习开放性的特点,程序设计学习者不再受环境的约束,在任何时间、任何地点、任何终端都能登录,选择正在学习的语言,编写、编译并且运行代码,彻底摆脱了对编程环境的依赖,使学习者的学习空间得到了极大的拓展和延伸。
2.云端指导
云学习的特征之一就是能够针对不同学习者提供个性化的学习需求。[5]依托云学习服务思想,在互动编程服务系统中,学习者能够方便快速选择所需要的学习资源和服务。在学习过程中,如果编写代码或者编译程序遇到问题,不能解决,可以选择系统内各种语言对应的专家,在任意终端都可以将相关问题发送给所选择的专家,能够随时随地得到专家的实时帮助和编程指导,提高程序设计的学习效率与效果。
3.云端资源的使用与管理
在互动编程服务系统中,不仅提供了主流语言的编译平台,更提供了主流语言配套的各类编程练习题以及各类教学视频,学习者在任意终端选择相应的编程题展开练习,或者阅读系统内专家给出的编程经验文章,也可以观看相应语言的视频讲解。在学习过程中,学习者还可以将感兴趣的内容加入收藏夹管理。
按照所设定的系统目标,互动编程服务系统在设计时,分配的角色有游客、会员、专家、管理员。游客仅有在云端编程、编译的权限,不能得到专家指导,也不能收藏和管理相应的资源。在系统内,所有学习者均可以申请注册成为会员,得到相应的访问权限。
系统的业务模式如图1所示。会员端包括资讯查看、云端编程、云端咨询、收藏夹四个主要模块;与之相对应,专家端包括资讯管理、程序批改、云端互动、资源管理四个部分;而管理员的主要权限是实现对会员、专家的注册申请、权限审核。
图1 系统业务模式
1.会员端功能模块设计
(1)云端程序编写、编译与运行
会员终端登录系统后,能够查看到当前系统内所有的资讯。资讯的内容包括系统通知、最新的编程题、最新的编程技巧、编程视频四个部分。会员也可以根据需要定制自己感兴趣的编程内容模块。
(2)云端编程
会员在终端登录后,在任意时间内都可以享有系统互动编程服务。成功登录后,可以选择相应的语言、选择系统所提供的各种编程练习题,展开编程,书写代码,并可以完成实时编译、调试。完成编程后,可以选择将程序保存在系统内,或者保存于个人终端设备中。
(3)云端咨询
在该模块,列出各种语言对应的专家,专家主要由从事程序设计学科的教师以及在企业实践的工程师担任。会员在终端编写完成程序后,可以选择对应语言的专家,将呈现提交给相应的专家。除了提交程序给专家进行批改外,会员也可以在云端与专家交流,向专家咨询编程中的各种问题,逐步提高编程者的编程能力以及代码的理解能力,
(4)收藏夹功能
该模块提供对收藏夹的管理,会员在系统内看到任何感兴趣的内容,比如编程资讯、最新的编程题或者其他编程技巧,都可以加入个人收藏夹,在需要的时候,可以查看已经收藏的内容,在需要时,可以对收藏的内容进行删除等管理操作。
2.专家端功能模块设计
(1)资讯管理
专家端的资讯管理和会员端相呼应。专家可以查看当前平台内所有上传的资讯记录,同时可以根据条件筛选查看资讯,或者自己已传的资讯记录,同时也可以上传最新的资讯,比如最新的编程教学视频、编程技巧等。
(2)程序批改
专家收到会员发送给自己的问题程序后,可以进行批改,给出相应的批改和调试意见。修改后,可以将程序意见反馈给会员,同时还可以选择公开相应编程题的答案,让会员进行对照修改。
(3)云端互动
除了对会员提交的程序题进行批改外,专家还可以在本互动模块回复会员的私信,为会员解答其他编程问题。
(4)编程资源管理
互动编程服务系统的一大特色就是丰富的编程资源,每个专家都可以在自己的后台上传并且管理自己的程序题、编程技巧等。这些丰富的资源有利于学习者更好地展开编程练习,提高编程水平。
3.管理员端功能与设计
管理员主要负责对系统的整体管理,这里包括对会员的管理,如会员注册申请的确认、会员密码的恢复、会员的删除等,同时包括对专家注册申请的确认与管理操作。
1.整体部署
互动编程服务系统从基础架构层、运行管理层、核心应用层、展现层几方面入手搭建。系统整体架构如图2所示。用户通过不同的终端登录系统,编写程序,得到专家的指导帮助。
图2 互动编程服务系统整体架构
2.技术实现
在实现时,互动编程服务系统在Web端的技术实现采用B/S体系结构;使用者可以在PC端直接访问编程吧,用户与系统间交互采用I/O重定向技术实现,前端配合HTML5与JavaScript;WinSocket实现web即时通信,即客户端和服务器之间的实时连接。
在移动端,可以下载安装移动APP,随时随地展开程序的编写。安卓端的开发所选择的是Eclipse,它是基于Java的可扩展开发平台。最后在此基础上安装Android SDK,即Software Development Kit,便可进行时间管理系统安卓应用的开发。[6]
互动编程服务系统的设计依赖于云学习思想的指导,最终目的是为广大编程设计初学者提供一个舒适、专业的学习环境。针对程序设计类课程,提供了“云端编译”、“云端学习指导”、“云端资源管理”等特色功能。
在平台即服务、软件即服务的思想下,学习者能自由地在PC端、移动端等各个终端编写程序、编译运行代码,并能随时与学习伙伴协作,得到专家的指导。目前,互动编程服务系统主要实现了包括VB、C、Java、C++四种主流编程语言的学习和指导,后期将不断扩充,使支持的语言更加多样化。
[1]王萍,张际平.云计算与网络学习[J].现代教育技术,2008(11):81-84.
[2]白云娟,沈书生.云学习:云计算激发的学习理念[J].中国电化教育,2011(8):14.
[3]周海燕,明静.高校教师在大学生“云学习团队”中的角色嬗变[J].高校教育管理,2013(5):17.
[4]杨艳艳,黄纯国,钟柏昌.基于云计算探析云学习[J].现代教育技术,2010(9):108.
[5]唐箭,虢莉娟,龚涛.基于云计算的终身教育服务平台设计[J].现代电子技术,2010(12):43-50.
[6]赵亮,张维.基于Android技术的界面设计与研究[J].电脑知识与技术,2009(29).
(编辑:王天鹏)
TP315
A
1673-8454(2016)03-0076-03
2015年度江苏省南京大学金陵学院校改课题“微学习视角下Java云课程实训体系的建设”(0010521522)。