基于安卓移动技术的计算机科学课程实践云平台的设计与实现
2015-12-02魏松杰
崔 聪, 杨 铃, 魏松杰
(南京理工大学,南京 210094)
0 引 言
高等教育的重要实施手段是课堂教学,教育信息化的核心任务是授课方法和教学过程的信息化,通过运用计算机平台、多媒体和网络通讯技术,使之适应信息化社会中学生学习的需求与特点,提高学生学习兴趣,改善教师授课效果,扩大高校教育范围和受众,实现高等教育从学历教育向素质教育、从被动教育向主动教育、从封闭教育向开放式教育的改革和转变.目前,高校计算机科学专业的教学大多采用每门课程独立授课和课程实习的方法,不同课程之间缺乏联系,课程实验往往采用不同的软件平台、系统架构甚至编程语言,学生无法有效的将课堂上的知识内容在计算机技术的宏观层面上加以分解转化、融汇贯通,课程之间的内容被割裂和独立起来.学生作为课程内容实习和项目实践的主体,在完成每一门课程的实验活动时需要重新熟悉实验环境,在特定的实验平台上边摸索边做,无法将有限的精力完全投放在课程内容本身.
有鉴于此,本文尝试采用当前最流行的安卓移动操作系统平台(Android),整合其配套的程序资源、开发环境、应用接口和分析测试工具,搭建一个基于互联网服务的计算机课程实习和项目实践平台.该平台为计算机专业师生提供统一的、易用的、可扩展的实验环境,帮助学生在动手实践过程中将不同课程内容融汇贯通,注重实际操作能力的培养,实习内容和实验环境贴近信息技术领域主流技术和真实应用场景,实习过程既具有挑战性又具有趣味性.
作为占领全球智能移动终端设备80%以上份额的移动操作系统[1],安卓系统是由谷歌公司开发的基于Linux的自由开放源码的面向移动设备的小型系统平台,包括操作系统、中间件、用户界面和应用软件.借助自身的平台开放性、卓越的硬件支持、完善的开发环境和丰富的应用程序,安卓系统一经推出迅速风靡全球,成为安装量最大、系统更新最快、支持设备最多的主流操作系统平台.毫无疑问,高校学生尤其是电子信息类专业的学生对于安卓操作系统具有浓厚的研究兴趣和丰富的使用经验,这是我们选择安卓系统来建设课程实验平台的首要原因.除此之外,安卓系统的开放源码,基于Java的安卓应用程序的简洁编译和反编译流程,也让学生们在实验过程中可以选用众多现成工具软件实现从系统层到应用层不同角度不同方法的分析学习过程,作为研究范例,这是其他任何计算机操作系统所不具备的优势.
国内外众多高等教育工作者已经开始尝试采用安卓系统平台来进行计算机科学专业多种课程的教学工作和学生实习平台,尝试并取得成功的课程包括操作系统[5,9]、移动安全[10]、数据库[11]、程序设计[12]等从硬件到软件、从系统到应用的各类计算机课程.国内一些高教高职教师也基于安卓系统开展了各式各样的计算机教学探索和改革活动,包括多维开源技术教学方法[6]、项目导向的课程教学方法[7]、微课教学模式[8]等.这些尝试既是对于“翻转课堂式教学”[3]、主动学习[13]等新型教学模式的实践和尝试,同时也是对于安卓平台技术在计算机专业课堂里应用效果的成果检验.
借鉴上述应用安卓系统作为单一计算机课程教学实验平台的经验,作为信息技术与教学深度融合的教学模式、方法创新探索,我们研究设计了一个基于安卓移动系统的计算机科学课程实践云平台.该平台以安卓系统为技术基础,以计算机课程为服务目标,以互联网云平台为服务形式,以课程项目和学生实验为服务内容,利用信息技术帮助计算机专业师生开展启发式、探究式、讨论时、参与式教学[2].
1 教学需求
计算机专业的教学目的,旨在通过系统的课程体系和丰富的实践活动,培养学生掌握数理知识、计算机系统、软件开发、网络与信息技术等相关方面的基本理论、基础知识和操作技能,使之具有较强的专业技术能力和良好的综合素质,能够胜任现代信息科学研究、计算机系统操作、软件开发与应用等实际工作.伴随着互联网的普及和计算机技术在教学过程中的广泛应用,计算机专业本身的教学方法和学生培养模式也与时俱进,要求专业教师依托网络技术和计算设备,逐步提升学生在学习过程中的兴趣点、互动性、参与度和动手能力.与之配套的全新教学模式,不再单纯地依赖教师课堂讲授、课外习题与上机训练,而是教师首先介绍基本的技术原理、系统架构、开发流程,然后逐步引导学生通过网络和多媒体资源进行学习和探索,发现并解决问题,在实际操作过程中理解背后的原理逻辑、实现和验证技术方案、积累应用技巧和实践经验.这样的教学和培养过程,需要有一个直观、完整、稳定、高效的计算机系统实例和课程实践平台.以下分析该平台所必须支持的计算机专业课程的教学内容,同时明确对于这样一个平台典型实现技术的普遍要求与规范.
1.1 教学内容
计算机科学是对于方法抽象和实现过程(即算法)的可行性、系统结构、表达方式、运行机制的研究,它既包括该方法在硬件计算设备上的获取、存储、处理、通讯技术,也包括该方法的抽象、描述、编码、测试、分析过程[4].相应的,计算机学科的教学过程从硬件到软件包括系统结构、操作系统、数据管理、算法设计、软件开发、应用技术等多个部分内容.我们针对这些教学内容设计并实现的基于安卓移动技术的计算机科学课程实践平台,需要为相关的课程教学和课外实习提供相应的技术手段和实验环境.这些课程包括但不局限于:操作系统、网络通讯、软件开发、数据库、多媒体技术、信息安全与防御等.
1.2 实验环境
为了提供上述教学目标和课程内容所必需的学生技术实践和课程实验平台,需要我们的基于安卓移动技术的云平台在学生实践过程中可以提供不同的访问层次和操作环境,具体包括以下实验环境需求:
· 系统,需要提供一个完整的对于特定设备进行管理访问的操作系统环境,该系统需要具有通用操作系统必备的运行、调度、同步、内存、文件、I/O等功能.
· 平台,需要一个独立运行、可记忆状态、感知通讯、输入输出、支持系统调用的计算平台.
· 软件,需要一个具有完整的功能扩展、代码开发、调试测试能力的软件开发环境.
· 媒介,需要能够提供多种数据传递和表现形式、可人机交互的数据展示媒介和操作界面.
· 技术,需要具有现代计算机典型的计算、通讯、存储技术的实现.
· 数据,需要提供一定的数据描述、存储、索引、查找等功能.
1.3 平台要求
为了满足可靠、持续、高效的计算机专业课程教学要求,本课程实践平台在设计和技术选择过程中需遵循以下原则:
易用性:课程实践平台是为了向计算机专业不同阶段和课堂的学生提供技术实践和项目开发环境,平台本身需要具有相对较短的使用学习过程,使得学生可以方便快捷地在该平台上开展相关课程的项目开发和技术实验.这就要求平台在系统架构和环境配置的时候,尽可能向终端用户隐藏不必要的技术细节和配置参数,提供完整易用的用户界面、脚本程序、初始化过程来尽可能简化课程项目的初始化搭建过程.
网络化:随着互联网和移动终端的普及,越来越鼓励学生随时随地地进行学习活动和实践过程.网络化的实验平台可以不必要求学生在特定的上课时间和机房场地进行课程实验,而是可以利用各自的上网设备和实践安排灵活地进行相关学习活动.本课程实践平台需要拥有网络连接能力和支持远程访问功能.
跨平台:为了便于平台的部署、实施和扩容,本课程实践平台需要不依赖于特定的操作系统和软件运行环境.例如不仅仅局限与Windows平台或者Microsoft.net运行环境,也无需针对特定的网络浏览器或连接方式.主流的服务器环境,例如Unix/Linux等都需要加以支持.
扩展性:平台需要有充裕的用户容量、可靠的负载均衡、丰富的模块配置,和简便的系统容量与功能的扩展能力.
2 平台设计
课程实践云平台的整体架构和模块设计如下图所示.作为一个依托于互联网数据通讯与访问的云服务系统,该平台具有云应用平台所必需的的平台基础、服务架构、应用服务三部分.平台基础即提供具体的访问、计算、存储、通讯等功能的平台软硬件设施,包括服务器、数据库、网络连接等,这些都是一个云应用平台所必需的基本功能性服务.服务架构即是该平台为了提供特定的服务内容和服务形式所必需的软硬件环境,这里包括安卓系统运行与开发环境、安卓设备扩展功能、平台管理与配置等部分.应用服务是指该平台面向用户所提供的服务内容的服务形式和服务流程,作为一个提供课程实践服务的云平台,不可避免的包括教师(管理者)、学生(使用者)、课程项目(服务内容)、访问接口与控制(服务形式)等部分.
图1 课程实践云应用系统的平台架构与功能模块
2.1 服务平台
平台服务的访问形式,采用标准的互联网服务形式,用户通过固定的IP地址和端口进行访问.通过采用一些主流的互联网远程访问协议或技术,例如RDP、VMware、NX等,可以为多用户提供远程访问和虚拟环境.平台的计算单元可以采用具有高速运算能力、长时间运行可靠性和强大数据吞吐能力服务器或服务器集群来实施.由于安卓系统的运行和开发环境是不基于单一操作系统平台的,这里我们可以选择各种主流的Windows或Linux服务器系统.平台的存储模块包括一个高性能分布式文件系统以及一个海量数据库系统.文件系统用来为安卓系统的程序、开发包、课程的项目文件、用户帐户等提供存储空间.数据库用于系统、用户、项目、课程、访问等的管理信息的存储、索引与查询.平台的管理与配置模块,支撑整个平台自底向上各个层次的管理与配置活动,包括硬件添加与移除、软件安装与配置、用户管理、文件与数据库管理、网络连接管理、系统资源调度与监控等内容.
2.2 教学模块
为了提供课程实习和实验项目的服务内容,该云平台需要具有相应的支持教学和课程管理的功能模块.其中教师管理模块拥有进行课程及项目的创建、维护、发布、评审等功能,对应于传统课堂教学中的教师角色,或者是实验室机房的管理员角色.学生管理模块用于为学生提供访问云应用服务的流程与渠道管理,相当于传统教学中的学生选课与上课部分.作为整个云平台的核心应用内容的课程项目的创建、配置、分配、维护,由课程项目模块负责管理.这里的每一个课程项目,既包括项目实践的内容和要求,也包括该项目顺利实施和实践所必需的软硬件环境,对于一个安卓应用开发项目,既可能是Android Development Toolkit(ADT)软件环境,也可能是某一特定的用于测试的安卓智能设备的硬件设备.所有这些实践项目相关的组成部分,都由课程项目模块提供项目生存周期内的所有活动的控制与管理.
2.3 平台扩展
平台的设备扩展模块用于为该课程实践平台提供实验设备的添置和服务容量的扩充.随着安卓系统快速扩张并占领智能移动设备的主流技术与设备市场,具有全新的硬件配置和服务功能新的安卓设备将层出不穷.当平台上安装的安卓虚拟机无法对新的设备和功能进行仿真,而平台用户又需要自己的实验项目在这些新的设备上进行测试时,设备扩展模块可以快速实现新设备的接入和服务提供.
3 实施细节
3.1 硬件配置
作为课程实践平台的快速实现和验证,目前的平台搭建在一台Dell T420服务器上,主机采用Xeon E5-2400系列CPU和8G内存,2TB RAID磁盘空间,通过两个千兆以太网卡连接校园网络以及外部互联网.主机运行CentOS 6.5操作系统.通过一个USB2.0集线器(USB Hub)可以连接作为扩展设备的各种安卓智能终端设备.
3.2 软件环境
软件方面,云平台的主机上安装了完整的Java SE7开发环境,包括JDK、JRE、Eclipse等开发调试运行环境和工具.为了支持安卓开发,还安装了Android Development Tools(ADT)开发包,通过SDK扩展支持Android SDK从2.2 Froyo(API 8)到4.4 KitKat(API 19)多种版本.为了支持安卓应用程序的代码分析修改与逆向工程实践,还安装了apktool、dex2jar、androguard、jd-gui等apk代码生成、反编译、查找软件.
作为搭建在互联网上的云应用服务,本平台需要支持多用户远程访问和实施虚拟开发环境.平台实现了两种用户访问模式,即命令行模式和虚拟桌面.
· 命令行模式,适合学生进行系统和网络相关的实验项目,可以通过命令、脚本、程序的编译执行以及日志文件的查看来进行课程实践活动.采用的实现方式为基于SSH协议的安全远程访问,通过在客户端搭配X Server可以在必要的时候开启X11图形化的用户界面或图形用户程序.
· 远程虚拟桌面,适合学生进行应用程序和多媒体相关的课程实验项目,可以通过运行安卓仿真机,直观实时的看到程序运行的图形化界面,同时实施人机交互.平台采用的实现方案为依托于NX技术的高效远程桌面技术.学生只需要在客户端安装NX程序,即可远程登录云平台主机并实现虚拟桌面控制.
3.3 课程项目
根据计算机专业课程教学和实践环节的要求,设计了如下的课程模块并加以支持:
表1 课程实践项目模块的内容配置与系统支持
3.4 实践流程
采用本课程实践平台,实现为一门计算机专业的相关课程提供课程实践的服务流程,按照以下步骤来实现.首先任课教师需要创建课程内容的实习项目,定义项目所需的软硬件环境,安装必要的设备和软件,编写实习任务说明书和指导文档.然后教师选择需要参与实习的学生,为每名学生创建账户并指定实习项目.学生使用自己的客户端电脑远程登录到课程实践云服务平台,按照指导文档中的步骤开展实习.实习过程中教师可登录系统查询学生完成任务的进度情况,给出指导意见,并相应的调整任务配置和系统环境.实习结束学生提交任务后教师可查看并批改结果.
以一门恶意代码检测的课程实习为例,该课程要求学生掌握针对安卓移动恶意代码的分析判别方法,完成检测流程并提交检测报告.任课教师首先创建课程实习任务,将检测目标恶意代码的APK文件上传到服务器上,同时安装分析所需的apktool、dexinfo、tcpdump等工具软件.然后教师编写检测流程脚本,包括APK反编译、静态代码分析、APK安装和运行、程序动态行为抓取等四个脚本.在创建学生实习账户后,学生远程访问课程实践平台的服务器,运行相应的脚本完成安装程序、静态分析和动态分析的步骤,得到实验数据和分析结果.教师可随时查看脚本运行日志以及分析的中间结果,给出指导,并相应的调整实验环境,例如安卓仿真器的应用安装情况、系统API版本、网络连接情况等,帮助学生完成实验,得到分析结果.
4 总 结
教育信息化具有教育内容和教育手段的双重重点,强调采用新颖有效的现代信息技术,包括数字技术、网络技术、多媒体技术、移动技术,完成教育内容和教育过程的智能化和信息化,从而提高教育教学手段和过程的效果与效率.本文面向大学计算机科学专业学生课程实践活动的需求,分析了计算机专业课程的课程实习和技术实践的特点和需求,设计并初步实现了一个基于安卓移动系统的课程实践云服务平台.该云服务平台整合了基于安卓系统的系统架构、开发环境、应用场景、分析工具等资源,具有网络化、移动化、模块化的显著特点,能够根据课程教学需求和学生实习项目灵活地配置、扩充服务内容和服务形式.相信这类教学服务云平台的使用和推广,有利于创新人才培养、改革高校授课模式,进而促进高等教育教学质量的全面提升.
[1] MANSTON N.Android Captures Record 85%Share of Global Smartphone Shipments in Q2 2014[EB-OL].2014-07-30[2014-09-20].Strategy Analytics:http://www.strategyanalytics.com.
[2] 教育部.《教育信息化十年发展规划(2011—2020年)》[EB-OL].2012.
[3] Lage ML,PLATT GJ,TREGLIA M.Inverting the classroom:agateway to creating an Inclusive learning environment[J].The Journal of Economic Education,2000,31(1):30-43.
[4] What is Computer Science[EB-OL].http://www.cs.bu.edu/AboutCS/WhatIsCS.pdf.
[5] 梁春华,张海云.浅析Android技术在高职操作系统教学中的应用[J].山西财政税务专科学校学报,2011,13(5):70-72.
[6] 马涛.Android开源技术在计算机教学与自学中的应用[J].宁夏师范学院学报,2013,34(6):96-99.
[7] 黄锵.项目导向的安卓课程教学探讨[J].电脑知识与技术,2014,10(17):4078-4080.
[8] 黄伶俐,侍松门,刘苏明.安卓环境下的微课教学应用模式SWOT分析[J].中国教育技术装备,2013,30:25-26
[9] ANDRUS J,NIEH J.Teaching operating systems using Android[C]//Proceedings of ACM SIGCSE Conference,2012:613-618.
[10] GUO M,BHATTACHARYA P,YANG M.Leaning mobile security with Android security labware[C]//Proceedings of ACM SIGCSE Conference,2013:675-680.
[11] MAHMOUD Q,ZANIN S,NGO T.Integrating mobile storage into database systems courses[C]//Proceedings of SIGITE,2012:165-170.
[12] TILLMANN N,MOSKAL M,HALLEUX J.The future of teaching programming is on mobile devices[C]//Proceedings of lTiCSE,2012:156-161.
[13] BONWELL C,EISON,J.Active learning:creating excitement in the classroom[C]//AEHE-ERIC Higher Education Report No.1.Washington,D.C.:Jossey-Bass,1991.