摘要:随着移动互联网的迅速发展,人们生活和学习的方式逐渐改变。为了探索提高教学成效的新路径,对教育技术进行创新,设计了基于Android的移动学习平台,分析教学功能需求、系统性能需求和系统关系人的使用需求,确定系统的物理框架和逻辑架构,弥补当前移动学习在教育技术支持方面的不足。
关键词:移动学习;教育技术;软件设计;Android
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)06-0026-04
Design on Mobile Learning System with Android
LING Yue
(Wuxi City College of Vocational Technology, Wuxi 214000, China)
Abstract: With the rapid development of mobile Internet, people's life and the way of learning are gradually changed. In order to explore new way to improve teaching result, to innovate the education technology, the mobile learning support system is designed. The design is based on the Android platform, analyzes the teaching requirements and system functional requirements, system performance participants use requirements, determines the physical framework and logical architecture of system, and makes up the insufficiency of the mobile learning in the education technology.
Key words: mobile learning; education technology; software design; android
信息技术正以前所未有的速度进入到社会的各个领域,对教育观念、教育手段、教育内容、学习方式乃至教育模式等方面产生了重要影响。由于移动互联网的迅速发展,目前在学生中迅速普及的智能手机和平板电脑,是实现学习活动的理想平台。探索新的教育技术,构建移动学习环境,在恰当的时间,恰当的地点,以恰当的方式提供给学习者恰当的信息,具有广泛的应用价值。
1 移动学习的理论支持
移动学习是利用移动无线通信技术设备获取教育信息、教育资源和教育服务的一种学习模式,既是课堂教学的补充,也是网络学习和分布式学习的延伸,同时还能作为诸如非正式学习、混合式学习等学习模式的载体。Knowledge Planet公司的Clark Quinn在谈到移动学习时说:“移动学习是移动计算与数字化学习的结合,它包括随时、随地的学习资源,强大的搜索能力,丰富的交互性,对有效学习的强力支持和基于绩效的评价。”支持移动学习的学习理论十分广泛,包括非正式学习、情境认知与学习,混合学习等。一方面,这些新型的学习理论为移动学习实践提供了理论基础,另一方面,移动学习又为这些学习理论在实践中的应用提供了技术手段与方法。
2 教育技术需要创新
教育技术是为了促进学习过程和改善教学效率,而对各种恰当的技术过程和技术资源进行设计、开发、利用和管理的研究和实践。当前,我们在课堂上使用的教育技术,主要是通过使用音频、视频、图片、文字等多媒体资源来丰富我们的教学内容,创设生动的教学情境,提高学生学习的兴趣,实现各类资源的共享,弥补传统教学条件的不足。随着移动互联网技术的快速发展,现代教育技术要进一步创新,把移动互联网技术与教育、教学进行深度融合,有效地提高教学质量。
3 系统设计
Android智能手机在学生群体中已广泛普及,本研究立足于某高职院校的人才培养目标,结合现代学习理论和软件工程思想,进行了基于Android平台的移动学习系统的设计。系统设计遵循按需开发、模块化、易操作及最小化原则,以实现程序的高效和复用。系统用户分为:①学生;②教学设计者(教师);③教学管理者(管理员)。
4.1 需求分析
1)功能需求,
主要是:①学生和教师可以在课堂之外、没有桌面电脑的地方,利用手机或平板电脑进行课程学习和课程管理;②学生和教师通过智能手机进行的学习活动产生的信息资料,要能同步保存在数据库服务器上,实现数据持久化。确保用户更换上网方式和操作终端后,依然能继续访问前期学习资源;③在服务器端存储用户身份信息,在客户端进行用户身份验证。一是保障系统数据安全,二是根据用户身份角色提供不同的功能权限和学习环境;④手机端的资源上传、下载和共享功能。数据先行下载后,可在没有无线接入的场所进行离线阅览和学习;⑤在线阅读、在线讨论和在线测验的功能是移动学习的重要组成部分,能实现非正式学习、微课、自主学习等学习实践。
2)性能需求
主要是:①响应时间需求,要求小于1s的应答时间,以获得良好体验;②可靠性需求,要求服务器端数据冗余,可追溯;③并发性需求,要求满足2000人同时在线的并发连接。
4.2 开发环境介绍
①Android:Android是基于 Linux内核的开源手机操作系统,由三部分组成:底层的Linux内核、中间件以及核心应用程序。Android的应用程序一般使用Java语言编写,同时也支持其他主流开发语言,如C、Perl等。
②MySQL:MySQL是一个关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,对于中小规模的应用需求,MySQL提供的功能已经足够。MySQL社区版可以方便的获取,性能能够满足大多数开发的需求。
③操作系统使用Linux,Web服务器使用Apache,数据库使用MySQL社区版,脚本解释器使用PHP。以上四个软件组合被称为LAMP stack,它们是免费或开放源码的。
④SQLite:SQLite是一个开源的轻量级关系数据库,是一个完整的数据库系统。SQLite的实现基于SQL-92标准,支持事务、触发器和复杂查询,但不进行数据类型检查。
⑤Eclipse:Eclipse是一个免费的、可扩展的开发平台,核心非常小,只包括一个框架以及一组服务,通过附加的插件来构建完善而强大的开发环境。
4.3 系统设计
4.3.1 系统的总体架构
在架构设计中,采用多层体系结构有利于系统的开发、部署、维护及扩展。本设计釆用三层架构,服务器使用LAMP组合, SQLite作为智能手机端的嵌入式数据库,改善用户体验;采用MySQL作为服务器端的数据库,实现数据持久化,存储海量的学习资源、用户数据和日志信息等。
4.3.2 系统的拓扑结构
系统拓扑如图1所示。使用基于Android智能手机和平板电脑的用户可通过无线校园网,或者运营商提供的3G/4G数据服务等方式,连接校内服务器,实现跨地区、跨平台的应用。对于不断增加的数据流量和并发访问,可以通过前置的网络流量均衡设备结合服务器群集、SAN提高响应速度,改善操作体验。
4.3.3 系统的逻辑结构
逻辑结构见图2。第一层是用户界面层,分为台式电脑客户端与基于Android的移动客户端,用户视图在此层呈现,Android通过KSOAP组件访问应用服务器;第二层是业务逻辑层,包括Web服务器、业务逻辑服务器,构建了主要的在线学习处理功能,并为远程数据访问提供了WebService服务;第三层是持久层,包括关系数据库MySQL、文件系统,用于系统的数据存储与访问。
4.3.4 系统功能设计
根据需求分析,设计功能结构图3所示。
4.3.5 系统类设计
本系统是MVC框架,类设计分为界面类、实体类、控制类。此处不例举。
4.3.6 数据库设计
系统需要存储用户信息、课程信息、试卷信息、作业信息、各类数字化资源,以及学习记录等大量的数据。概念结构设计的ER模型见图4。本系统涉及到的实体有:用户、学生、教师、管理员、课程、课程资源、作业、试题、试卷、资源、日志等。逻辑结构设计定义了相关的二维表,其中作业描述表实例见表1。
4.3.7 Android的界面布局
Android系统中可视化控件都从android.view.View类继承而来。在系统设计中使用2种方式创建View对象:一种是使用XML布局文件来配置View的各项属性,而后使用相应的方法来装载这些View;另一种方式是直接采用Java代码来建立View和修改View的属性。使用XML布局文件可以方便对控件进行布局,但在程序运行中的控制仍需Java代码来实现。本设计以第一种方法为主,第二种方法为辅,实现相对简单。
4.3.8 应用程序中的通信
用户界面层处于系统逻辑架构中的最高层,用于实现系统的View与用户交互。界面层的实现主要通过Android的基础类Activity进行,Activity是可视类,主要功能是加载View、响应用户操作、进行数据校验及调用数据接口。大部分系统功能需要两个以上的Activity相互配合才能完成,界面导航也要求在不同功能模块之间跳转。Activity类之间不能直接交互,Android 提供了Intent机制来实现Activity之间的通信。
Android的java.sql包提供了通过JDBC直接连接远程数据库的方法。但是在面向对象的设计中,提倡“松耦合、紧内聚”的解决方案,直接连接远程数据库不是好办法。
本系统后台使用MySQL 数据库,在移动终端按需使用SQLite进行本地暂存,以实现离线操作。Android 移动终端通过调用WebService实现网络数据交互,实现数据的远程存储和增、删、改、查功能,最后将所需数据返回给Android 移动终端。 WebService基于SOAP协议,本身可以实现跨平台的应用。
SQLite是非常轻量的数据库,android.database.sqlite.SQLiteDatabase是Android SDK中数据库操作的核心类,一般还会使用更便捷的抽象类SQLiteOpenHelper进行数据库操作。
数据库操作的例程如下:
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBService extends SQLiteOpenHelper
{
private final static int DATABASE_VERSION = 1;
private final static String DATABASE_NAME = "m_learning.db";
@Override
public void onCreate(SQLiteDatabase db)
{
String sql = "CREATE TABLE [users] ("
+ "[id] AUTOINC,"
+ "[name] VARCHAR(20) NOT NULL ON CONFLICT FAIL,"
+……;
db.execSQL(sql);
}
public DBService(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
String sql = "drop table if exists [t_contacts]";
db.execSQL(sql);
sql = "CREATE TABLE [users ("
+ "[id] AUTOINC,"
+ "[name] VARCHAR(20) NOT NULL ON CONFLICT FAIL,"
+……;
db.execSQL(sql);
}
// 执行insert、update、delete等SQL语句
public void execSQL(String sql, Object[] args)
{
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(sql, args);
}
// 执行select语句
public Cursor query(String sql, String[] args)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
return cursor;
}
}
以上例程实现了SQLiteOpenHelper的2个抽象方法,并提供了execSQL和query方法实现了数据库的增、删、改、查操作。
对于远程数据处理,使用第三方的类库KSOAP进行远程WebService调用,在Android系统的客户端安装KSOAP包:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar,可以实现对业务逻辑和数据库的远程访问。
5 结束语
移动学习是未来学习活动重要组成部分。在技术层面,Android作为开放系统,提供了丰富的可视和非可视控件、良好的用户接口、强大的多任务管理功能和丰富的数据处理方法;在市场层面,Android具备完整的产业链,有免费的开发平台和发布环境,基于Android的手机普及并且相对低价。
本研究通过安装Android开发插件的Eclipse IDE进行系统开发,应用敏捷开发方法论提倡的小版本交付进行快速迭代,为教学工作提供有效易用的工具,实现了学生跨地点、跨时间、自定步调的自主选课、自主学习及在线考试。“术者,道之用也”,想要真正发挥移动学习的效用,要求教师在充分了解学生的能力起点和理解水平基础上,关注现代教育技术应用的有效性,以学习平台为依托,以活动为中心,鼓励学生自己发现并解决问题,自己摸索学习方法,形成自主学习的能力,真正使学生成为学习主体,达到促进学习的目的。
参考文献:
[1] Shawn Van Every, Android多媒体开发高级编程: 为智能手机和平板电脑开发图形、音乐、视频和富媒体应用[M]. 巢文涵,译.北京: 清华大学出版社, 2012.
[2] 辛自强. 知识建构研究: 从主义到实证[M]. 北京: 教育科学出版社, 2006.
[3] 梁振辉. 高职院校学生在线学习特点及其影响因素研究[J]. 中国职业技术教育, 2015(26): 5-14.
[4] 凌越. 高职院校应用混合式教学的实践探索[J]. 中国教育信息化, 2014(3): 41-43.
[5] Heather Staker,Michael B Horn.Classifying K-12 Blended Learning[M]. San Mateo: Innosight Institute, 2012.