APP下载

基于“互联网+”校企共建云端在线编程实践探索

2018-05-24杨晓燕

中国信息技术教育 2018年8期
关键词:虚拟化互联网+

杨晓燕

摘要:新工程教育要求教育工作者要面向新需求,面向新技术,通过校企合作,充分利用教学新理念、新模式提升学生就业技术水平和社会适应能力,满足新经济对高校学生的新要求。本文讨论基于虚拟化和云端技术的在线编程技术,通过在线编程,实现编程教学过程的参与、分项、整合和互动,同时充分利用云端资源,增强学生编程兴趣和编程能力。

关键词:虚拟化;云端技术;在线编程技术

中图分类号:G434 文献标识码:A 论文编号:1674-2117(2018)08-0079-04

“互联网+”战略就是利用互联网平台,利用信息通信技术,把互联网和包括传统行业在内的各行各业结合起来,在新的领域创造一种新的生态。比如,传统集市+互联网有了淘宝,传统百货卖场+互联网有了京东,传统金融+互联网有了支付宝,传统交通+互联网有了滴滴打车。所以我们相信,传统的教育模式与理念+互联网+云平台,将会为程序开发类实训教学创新带来新的机遇和挑战。

云平台可以实现实验环境云端部署,客户端无需安装和维护;实验云端运行,实验结果客户端实时显示,学生和教师基于云端可以实现教学过程一体化互动,特别是在各大OJ、PTA及ACM,在Java在线编程和评判存在很大局限的情况下,研究基于Java的云平台更为有意义,尤其是为复杂的企业级开发开辟了新的技术路线。

“互联网+”混合教改新理念

移动网络现在已经是无处不在,各学校的Wi-Fi建设也成为校园建设的标配。“互联网+”课堂意即让互联网进课堂,鼓励学生带手机与笔记本电脑来上课,允许学生在课堂上通过网络、云平台和教师实时互动和探索,学会与手机和网络在课堂上“和平共处、取长补短”。网络给课堂教学带来了巨大的冲击与挑战,参与式、混合式学习已经渗透到校园与课堂。而如何将基于课堂的系统学习与基于网络的混合式、分享式、参与式学习有机结合起来,是教师面临的全新挑战。王世刚指出,创客教育与新建构主义教学法不谋而合,创客们坚守创新、持续实践、乐于分享,充分体现了新建构主义的学习理念,他们是在“做出”这个最高层次进行分享式学习的典型代表。

在新建构主义理论基础上,我们还提出了知识的三级结构理论与知识嫁接学说,对教与学的本质进行了全新的探讨。王竹立在论文中对网络时代的教与学进行了全方位的描述与思考。有学者称新建构主义为“21世纪以来中国远程教育理论创新花圃中的‘一枝红杏”。这代表了未来课程改革的一个重要方向,即未来学校课程改革的总体思路应是:突破教材大纲,连通课堂网络,消弭学科边界,实现个性目标,培养创新人才。

国内外在线编程研究现状

1.技术原理研究

在线编程的原理比较复杂,因为其涉及Web前端以及后端编译系统。Web前端需要提供用户代码录入,行号、高亮语法、自动补全功能。并需要使用异步更新(Ajax)的方法来实现上述功能。后端编译系统接收到用户的代码,并调用正确的编译器进行编译,再将结果返回前端进行显示。

2.技术需求

方便:无论何时何地,打开网址,就可以进行代码编写。更可以将现有代码拷贝过去运行验证结果,是验证代码,学习语言、算法的快捷工具。而且再也不用像以前那样,为了编写一点程序,就必须在自己电脑上安装很大的软件,配置非常复杂的环境。

跨平台:无论是使用Windows、Mac、Linux还是使用安卓平板、iPad,都可以进行在线编程,而且编程语言可以是任何语言,在iPad上编写Java代码是件很轻松的事。

集成性:所有的在线编程的编程语言网站都支持多种语言的编译或解释,具有较强的集成性,是传统IDE无法比拟的。

3.国外技术实现

Codecademy:支持JavaScript、HTML和CSS这三种语言,自2012年7月31日起,用户还能够在网站上找到新添的Python语言课程。网站支持五种语言的版本,五种语言包括中文、俄语、日语、西班牙语和德语。

Anycodes:该网站智能支持中英韩三种语言,并且支持九种编程语言,如C/C++/Java/PHP等,支持多文件、标准输入、命令行参数、语法高亮、代码可折叠,支持全屏模式及代码下载,其中MATLAB语言支持图像化输出,该平台还有对应的手机客户端(在线编程),可以用手机写代码,同时还拥有对应的微信平台等功能。该网站比较简洁,使用起来也很方便,响应速度较快。

Ideone:该网站支持英文,支持包括C++、Java、Java Script等40多种编程语言,且含有代码demo,供初学者学习。其缺点是使用不够简洁,且响应速度较慢。

4.国内技术实现

ITBegin-在线云教学平台,集成了课程资源、在线编程、在线运行、师生互动等多项功能。目前已经上线了Java、Spring MVC、C、C++、SQL、HTML、CSS、JS等课程。教学过程云平台化,教师上课很方便,无需安装,无需配置,无需升级,只要有网络打开浏览器就可以使用了。

编程技术岗位分析

目前移动互联网的快速普及,使得计算机类岗位需求缺口非常之大,IT企业迫切需要具有高水平计算机能力的学生。互联网应用编程领域岗位占比如图1所示,从图中可以看出,服务器端、互联网前端及移动客户端需求占比非常之大,居于前列。

在互联网、电子商务、金融等行业软件开发中,互聯网后端开发占据比重较大,比例分别占到46.4%、40.3%和33.7%。互联网前端即网页端所见所得的前端框架和浏览器,实现起来相对容易;而本地Web服务器和数据库开发在实训过程中涉及复杂的环境搭建及配置,一直以来是学生学习过程中的绊脚石,对有些学生来说就是难以逾越的关口。

互联网服务器端开发是互联网和移动互联网应用的强大支撑(如上页图2)。随着技术的进步,SaaS软件服务、虚拟化技术及云计算的应用,也为服务器开发在线编程实训提供技术上的支持。基于虚拟化技术的SaaS云平台架构如图3所示。

互联网+在线编程的目的是将编程操作搬到云端,去除对本机环境的依赖,使得学生能随时随地进行编程实践,同时通过云同步技术,使得教师和学生能在网上进行实时互动,极大地提高教学效率,真正实现面向编程的翻转课堂教学模式。

在线编程教学实践探索

1.基于项目课在线编程

项目课在线编程是代码在线编程的升级版,指在教学平台上直接开发网站项目并运行。项目课在线编程弥补了高校教学与社会需求之间的缺口,使得高校能针对社会需求设计课程体系,如网站开发、企业级开发、移动H5开发等。

基于项目课在线编程技术,搭建编程类的虚拟仿真实践教学中心,项目应具有高可用性、高实践性、案例的真实性,同时具有教学协同性和评判批改的智能性。

技术框架上,项目课在线编程技术通过最前沿的云计算容器框架来进行支撑,相当于每个客户端拥有一个支持网站运行的云主机。

2.在线编程集群化

将教师和学生在线编码部署在同一界面中,组建一个集群式的在线编程教室。这是目前国内乃至国外在线编程应用没有涉及到的。现有的在线编程网站,都是面向自学的,学习起来容易产生孤单和枯燥感。

在教师的界面上可以看到,中间上半部分是教师编码窗口,课堂内所有学生均可见,教师演示和运行代码学生端也完成同步,每个学生均独享编程环境(如图4)。

3.在線编程IDE支持多种语言

不同语言会自动加载不同的体验,体现在关键字高亮、缩进格式、补齐等细节上。点击运行会将代码发送给服务端进行运行,在右边输出运行结果。运行结果跟IDE一样,也自动支持各种语言格式。

4.实时协同

教师点击右边学生列表,每次可查看一名学生的编码窗口,可以运行学生编码。如果学生有错误和问题,点击求助按钮,教师可以马上帮学生修改。同时,教师还可以将典型错误拷贝到教师编码区,演示给全体学生看并进行讲解。

IDE支持实时协同,即任何输入、操作、运行都能实时在另外的终端上展现出来,用在教学中,教师可以拿来做直播教学,也可以监视学生课堂练习,甚至为学生远程答疑。

小结

在线编程技术提升了计算机开发类课程教学体验。服务前端企业级开发属于开发领域的高难内容,但也是学生职业规划的高端职位。在服务端编程中,学生遭遇的难点在于环境搭建和项目开发过程中种种疑难问题难以解决,联调和部署困难,同时,项目更新和技术更新比Web前端技术要困难得多。而基于云端的在线编程可以及时获得新技术、新框架的支持,同时项目企业化、项目化,能提升学生IT企业级开发就业水平。

猜你喜欢

虚拟化互联网+
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案
别再误会客户端虚拟化了
虚拟化整合之势凸显
虚拟化技术:绿色IT的希望
经济危机使虚拟化受青睐