基于智能手机通用教学互动系统设计实现毕业设计论文.docx
《基于智能手机通用教学互动系统设计实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于智能手机通用教学互动系统设计实现毕业设计论文.docx(33页珍藏版)》请在冰豆网上搜索。
基于智能手机通用教学互动系统设计实现毕业设计论文
基于智能手机通用教学互动系统设计实现毕业设计论文
目次
1引言1
1.1背景1
1.2现今教育的状况1
1.3智能手机教学教育的影响2
1.4移动教学的研究现状3
1.4.1国外发展现状3
1.4.2国内发展现状3
1.5本文的主要内容编排4
2主要的应用技术和工具5
2.1Android5
2.2主要开发技术6
2.2.1文件操作java.io6
2.2.2HttpClient访问网络6
2.2.3Spring框架7
2.2.4JSON8
2.2.5客户端/服务器模式(C/S)9
2.3主要开发工具9
3易学通总体设计11
3.1需求分析11
3.2设计思想12
3.3系统功能设计13
4易学通的功能实现15
4.1客户端15
4.2服务器端18
5系统使用体验23
5.1系统使用23
5.2系统测评结果25
结论26
致谢28
参考文献29
1引言
随着科技的不断发展,尤其是移动互联网的普及,智能手机的应用已经深入社会,为学校的教学带来巨大的帮助。
传统的课堂教学模式的局限和单一,已经无法满足现今社会的要求,开发设计移动教学终端已经成为科技发展的主流。
1.1背景
最近几年,移动技术的开发与应用已经成为信息产业的主流,随着GMS、GPRS、CDMA2001x、IEEE802.1lx等无线协议产品越来越多成功的商用运营,各种各样的移动设备诞生了,我们的生活也变得形态多样,传统的教育方式也受到了很大的冲击。
因此,社会开始了移动学习(M—learning)的研究。
移动学习是学习者在地理空间流动性和弹性时间下使用移动设备进行学习的一种学习方式[1]。
移动学习是结合了数字化学习(M—learning)与移动应用技术而发展成的一种新型的学习方式,它可以让学习者随时随地的去学习,消除了传统教学方式的乏味和单调。
欧美和北美等发达地区是最早开始移动教育研究的,对于移动教育国际上没有具体的定义。
随着时代的发展,社会对人才的要求更加严格,教育体制也必须要随之进步和发展,研制新型的教育体系是十分必要的,移动教育也就应运而生了。
本次课题就智能手机通用教学互动系统的设计实现展开研究。
1.2现今教育的状况
传统教育是主要通过教师对学生实时的连续的面授向学生传授知识的教育形式[2]。
最基本的知识传达方式是靠教师的讲述,主要以黑板、粉笔、幻灯片等工具来进行教育。
传统教育是以教师为中心、以课堂为中心、以教材为中心的教学模式,学生处于被动接受的地位[3]。
传统课程教学方式只注重传授系统的科学知识,呈现在学生面前的是一套完整的知识结构与体系。
传统课程教学的方式是“传递——接受”,教师是课堂的中心,引领着学生。
为了方便教师安排和管理有效的教学过程,实施班级授课制。
仅仅注重学生的文化学习,对师生之间的情感没有太多的要求。
而合作、和谐和互动的师生情感关系,可以促进培养学生的语言表达能力、优良品质和为人处世的原则等。
现在,教育界的主要问题就指向了传统教学方式----课程制教学。
传统课程教学明显已经落时,无法满足现代社会对教育的要求。
在培养目标上,传统教学以传授知识为主要任务,忽视学生综合素质能力的发展。
教育学生模式单一,无法培养创新型能力和思维。
在教学内容上,教材上的知识是唯一的学习来源,而且还要依靠教师来引导。
在教学方法上,依靠教师的注入式教学,只研究教师的教学方式,忽视学生独立学习的能力。
考试内容主要靠死记硬背,学生主动学习的意识差,缺乏积极性。
在教学形式上,单一化、模式化的课堂教育传授的知识过于狭窄,且针对性不强,没有因为学生的不同而因材施教,也无法让学生更多的了解和关注课堂之外的世界。
教师的作用被无限放大,由教师来施教,学生只需被动听取、接受和理解教师传授的知识。
传统教育是保守的、封闭的。
现今社会需要的是创新型人才,而传统教育对这种人才的培养没有一个很好的方式,甚至于有一定的遏制效果。
因此,传统教育已不能满足学生的发展需要,培养出来的学生也无法适应现今时代的发展。
1.3智能手机教学教育的影响
智能手机教学系统的诞生,弥补了传统的面对面教学的局限和不足。
随着移动互联网科技的发展,移动教育成为了现今社会教育一个新的研究方向,是网络教育的一个新的发展。
移动学习基于数字化学习,继承和发展其优势,一定程度地减弱了其缺陷,提高了学习的灵活性。
如何有效地将互联网技术与丰富的移动设备结合以推动教育的现代化发展这一课题已经成为移动教育研究的中心方向。
尤其是智能手机的普及率已经非常之高,使用方便快捷,所以智能手机教学的前景很大。
智能手机的移动教学使得学习的地点不被局限于教室,也不约束于老师与学生之间。
学生可以以随时随地、随心所欲的方式进行学习,老师与学生之间的教学交流也不限于教室里40分钟的面对面教育。
智能手机教学的优点:
(1)教育支持。
学生和老师可以用自己随身所带的智能手机当做支持性的教育工具来使用
(2)交互。
智能手机教学可以让害羞的学生更加的开放性学习,老师也可以通过移动设备来更加方便的实现全面和重点教学。
(3)管理。
智能手机教学可以让老师不用一次性的面对那么多学生,有助于老师对教学和学生的管理。
(4)灵活。
智能手机教学可以让学习地点不限制于狭窄的教室,学习的内容也有原来的教材被夸张的扩大到了整个人类所认知的世界,学习的时间也由原来课堂的45分钟变成了现在的随时随刻。
1.4移动教学的研究现状
1.4.1国外发展现状
2000年,第一次开始移动学习项目的研究发生在美国加州大学伯克利分校的人机交互研究实验室,由此,国际开始了移动学习的研究。
随后,欧美各国也开始加入研究的行列。
较为著名的研究有:
(1)英国Kingston大学的“短信息服务系统”
该系统的主要研究目的是教学实践中应用移动终端的短信息服务。
考试成绩和学校的通知公告等都是通过短信的方式传达给学生。
这种方式在实践中超乎意料的应用效果,吸引了国际上多数人的眼球。
(2)欧洲、以色列和瑞士等国家地区的“MOBLLEARN项目”
MOBLLEARN项目主要研究的是如何人性化设计和使用移动设备:
移动流媒体的传输、内容监控工具、参与对象如何在移动环境中进行很好的交流合作和学习等。
1.4.2国内发展现状
(1)北京大学的“基于短信的移动教育系统”
北京大学于2001年12月在短信及串口通信的基础上研发了一套基于短信的移动教育系统。
该系统以短信的方式实现师生之间的及时交流、资源的分享和信息的传递等,移动学习的效果得到了一定程度的实现。
(2)诺基亚公司的“行学一族”
诺基亚公司作为曾今移动通信领域的霸主,不仅是一家手机制造厂商,同时对应用软件也有一定的研究。
2007年5月,在中国区推出了一款专门运行在智能手机上的学习软件。
该软件提供的文字内容延续了传统的知识的文字形式传输,而且它还将内容转换成音频的形式呈现给用户,这极大地提高了英语学习的听说读写的效率,极大的方便了英语的学习。
激发了用户的学习积极性,实现了移动学习的目的。
(3)在中国,网梯信息技术有限公司是最早参与移动教育研究的,早先在2001年就开发了基于移动终端的网梯移动学习平台。
该系统主要对象是学校和一些大型集团,能够及时地为学校的师生和集团的内部人员提供通知和咨询等服务。
1.5本文的主要内容编排
第一章:
引言,主要讲述现今传统教育的状况和智能手机教学对教育的影响和优势,以及移动教学的研究现状。
第二章:
主要的应用技术和工具,主要讲述的是本次毕业设计“基于智能手机通用教学
互动系统的设计实现”,所使用的主要技术和工具。
第三章:
易学通的总体设计,主要讲述的是本次毕业设计的需求分析,设计思想以及系
统框架和功能的简要设计。
第四章:
易学通的功能实现,主要详细讲述的易学通的功能设计和实现。
第五章:
系统使用体验,主要讲述的是易学通系统的使用体验。
2主要的应用技术和工具
2.1Android
Android是专门为移动设备开发的系统平台,其中包括操作系统、中间件和核心应用等[4]。
Android运行在LinuxKernel之上,包括安全(Security),存储器管理(MemoryManagement),网络堆栈(NetworkStack)和驱动程序模型(DriverModel)等。
Android的应用安装包后缀是APK,通过APK文件可直接在手机上安装应用程序。
Android平台自底向上由以下四个层次组成:
Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层[5]。
Android是基于Linux系统之上的一款手机操作系统。
系统运行库指的是Android包含了很多能被Android系统中的组件使用的C/C++集成库,开发者开发Android应用程序的时候就需要应用框架加载这些库来提供服务。
Android开发的核心需要掌握Android的四个组件和各个组件的生命周期。
四个基本组件由Activity,service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器组成。
(1)Activity:
Activity是作为用户交互的UI界面,里面包含了用户交互所需要的界面元素,也包含了事件处理等,是用户和应用之间联系的窗口。
Activity之间通过Intent进行通讯。
从内部逻辑来看,Activity为了保持各个界面的状态,需要设计生命周期和一些跳转逻辑,以满足其持久化的要求。
(2)Service:
Service服务层像是脱离界面的Activity。
Service是作为Activity的补充,不是所有的程序都需要界面,而Activity的生命周期和可视性关系紧密,所以一旦此Activity不可见,该Activity也随之挂起。
所以Service作为其补充的特点是可以一直在后台运行,跟界面没有关系,Service和Activity之间可以通过通信使Activity进行UI操作。
Service服务层完全独立于系统,外部系统不需要关心其内部实现,只需要获取代理实例即可[6]。
(3)BroadcastReceiver:
广播接收器组件专门用于接收并响应广播通知信息,BroadcastReceiver使应用只对自己感兴趣的外部事件进行响应。
广播的存在方便了我们对设备的状态监控,比如对传感器、来电和短信之类的监听。
广播极大的方便了应用之间的通讯,以及应用内部的交互。
Android中的广播事件有两种:
系统广播事件和自定义的广播事件。
广播事件的流程:
注册、发送和接收。
(4)ContentProvider:
应用程序通过ContentProvider实现数据的储存和读取,也可实现数据共享。
外部应用可以通过ContentProvider访问ContentProvider存储的数据资源,也可以进行数据的管理操作。
当然这种数据共享也是有条件的,这种条件约束一定程度上提供了隐私的保护和数据的安全性保障,内容提供者给我们很方便的提供了如联系人、通话记录和短信等数据,当然我们也可以在自己的应用里面设置自己的内容提供以便其他应用获取和使用。
因为安卓的各个应用之间类似于Linux系统里面各个用户一样相互独立分割,达到安全的目的,所以内容提供者是在不失安全隐私的情况下进行数据共享。
2.2主要开发技术
2.2.1文件操作java.io
JAVA都是将文件以流的形式实现向系统内的输入和系统外的输出。
流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。
类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。
这时候你就可以想象数据好像在这其中“流”动一样。
JDK的java.io包中,包含了以下四种抽象流类:
(1)InputStream类:
继承自InputStream的流,以字节(8位)为数据单位,用于向程序中输入数据。
(2)OutputStream类:
继承自OutputStream的流,以字节(8位)为数据单位,用于向程序外输出数据。
(3)Reader类:
继承自Reader的流,以字符(16位)为数据单位,用于向程序中输入数据。
(4)Writer类:
继承自Writer的流,以字符(16位)为数据单位,用于向程序外输出数据。
2.2.2HttpClient访问网络
HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的、支持HTTP协议的客户端变成工具包,并且支持HTTP协议最新的版本和建议[7]。
使用HttpClient实现网页抓取,将URL地址中指定的网络资源从网络流中读取到本地,进行保存。
HttpClient中封装了HttpGet、HttpPost和HttpResponse类。
HttpGet发送GET请求,HttpPost发送POST请求,HttpResponse代表处理响应的对象。
(1)发送Get请求
创建HttpClient对象:
HttpClienthttpclient=newDefaultHttpClient();
创建HttpGet对象:
HttpGethttpRequest=newHttpGet(URL);
执行HttpClient请求:
HttpResponsehttpResponse=httpclient.execute(httpRequest)
(2)发送Post请求
创建HttpPost对象:
HttpPosthttpRequest=newHttpPost(URL);
将要传递的参数保存到List集合中:
Listparams=newArrayList();
params.add(newBasicNameValuePair(“参数名”,“参数值”));
设置编码方式:
httpRequest.setEntity(newUrlEncodedFormEntity(parmas,“utf-8”))
2.2.3Spring框架
Spring是一个轻量级的IOC和AOP容器框架[8]。
Spring框架由7个模块组成:
(1)核心容器:
提供基础功能,是Spring框架的核心。
Spring的核心容器实现了IOC,
其目的是提供一种无侵入式框架。
BeanFactory和ApplicationContext是Spring核心的关键。
rg.springframework.beans和org.springframework.context这两个包是Spring最基本、最重要的包,为了实现一种无侵入式的框架,代码中大量引用Java中的反射机制,通过动态调用的方式避免了硬编码,为Spring的反向控制特性提供了基础。
在这两个包中,最重要的类是BeanFactory:
提供一种先进的配置机制来管理任何种类的Bean。
ApplicationContext:
建立在BeanFactory的基础上,并增加了其他的功能。
(2)应用上下文模块:
扩展BeanFactory,提供许多企业级服务。
Spring上下文是一个配
置文件,向Spring框架提供上下文信息。
Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。
(3)AOP模块:
对面向切面提供丰富的支持,引入可metadata,Spring应用系统开发
切面的基础。
(4)JDBC和DAO模块:
Spring提供JdbcDaoSupport来实现对JDBC的DAO支持。
(5)O/R映射模块:
O/R映射层是持久层的一个特例,它的数据模型是对象模型
(Object),存储模型是关系模型(Relational)。
(6)Web模块:
提供适合web系统的上下文。
Web上下文模块建立在应用程序上下文
模块之上,为基于Web的应用程序提供了上下文。
所以,Spring框架支持与JakartaStruts的集成。
Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
(7)MVC框架:
是模型(model)-视图(view)-控制器(controller)的缩写,一种软件
设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
Spring的所有模块都是建立在核心容器之上。
Spring通过IoC依赖注入、AOP应用、面向接口编程,来降低业务组件之间的耦合度,增强系统扩展性[9]。
Spring框架的核心思想就是“解耦”,应用程序各部分之间会尽量形成一种松耦合的结构,使得程序更加灵活。
应用内部的解耦是通过控制反转IOC的技术来实现。
控制反转的基本思想就是本来应由应用程序自身来控制的调用等逻辑转变由应用外的配置文件来被动控制,通常用“好莱坞原则”[10]来比喻这种控制反转。
2.2.4JSON
JSON[11]是一种轻量级的数据传输格式,阅读和编码简单易懂,适用于各种语言进行数据交换。
JSON可以被所有支持JavaScript的浏览器所解析,性能和兼容性良好。
JSON数据的书写格式是:
名称/值对,如:
“firstName”:
“John”等价JavaScript:
firstName=“John”。
为了轻松地存储和传输数据,JSON分为序列化和反序列化。
序列化(Serialization)是将对象状态转换为可保持或传输的格式的过程[12]。
反序列化和序列化是一对互逆过程。
JSON可以将JavaScript对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。
JSON建构于两种结构:
“名称/值”对的集合(Acollectionofname/valuepairs)。
不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。
值的有序列表(Anorderedlistofvalues)。
在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。
事实上大部分现代计算机语言都以某种形式支持它们。
这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
2.2.5客户端/服务器模式(C/S)
使用C/S模式,以MVC的设计思想,Model模型和Controller控制器在服务器端实现,将View画面展示给用户,以达到用户与服务器的交互,真正意义上实现移动教学。
目前已投入使用的计算机网络模式主要包括四种:
主机终端模式、文件服务模式、Web浏览器/服务器模式和客户端/服务器模式(Client/Server,即C/S)。
C/S模式主要由客户应用程序、服务器管理程序和中间件三个部件组成[13]。
C/S结构属于软件系统体系的结构范畴,该结构可以充分利用两端的硬件环境配置,通过将任务分解成多个任务,并分由多计算机分工完成,即采用“功能分布”原则[14]。
通过客户端对任务进行分解处理,以及与服务器端的互联通信,组成二层架构,进而降低了系统通讯的开销。
图2.1C/S结构图
C/S架构主要包括两大组成部分:
客户端即工作站,主要是接受用户请求,并向服务器提出数据库处理请求;服务端即服务器,主要是提供对数据处理请求的响应以及健全的安全保护等操作,可以允许多个客户端同时发起访问请求并进行及时处理。
2.3主要开发工具
(1)前台开发工具:
EclipseforAndroid。
(2)后台开发工具:
Myeclipse,SublimeText2。
交流平台是使用Java语言开发的,使用的工具是Myeclipse;文件操作的服务器是使用PHP开发的,使用工具是SublimeText2。
(3)数据库开发工具:
XAMPP,NacivatforMySql
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的软件站集成软件包,是构建数据库驱动的动态网站的最佳组合。
XAMPP采用这种集成,可以运行任何程序:
从个人主页到功能全面的产品站点,易于安装和设置及卸载[15]。
NacivatforMySql主要是用来操作管理数据库的,它可以可实现SQL文件的导入导出,方便对数据库的开发。
(4)开发平台和载体:
以windows7系统的PC电脑作为主要的开发平台,Android4.4手机作为载体。
3易学通总体设计
3.1需求分析
本次毕业设计要求学生充分理解并掌握相关教学互动系统的特点及基于智能手机系统设计实现的要求,通过学习和查询相关技术资料,设计出合理的系统框架及功能,正确选择适当的编程语言和系统软件环境,完成从需求分析、总体设计、功能设计到详细设计的完整系统设计过程,要求实现智能手机教师端、学生端的信息发布、回复等互动教学管理功能,并且界面友好,用户操作简单方便。
当前流行的智能手机有Android手机、苹果手机、黑莓手机等,而本次毕业设计选定的就是当前最流行的Android系统手机。
Android系统当前是由Google设计开发,因为Android系统的开源性,基于Android系统而扩展开发的手机系统有很多,比如小米的MIUI、魅族的Flyme和华为的EMUI等系统,Android系统已经成为当前手机操作系统的霸主,所以本次毕业设计的选择的智能手机就是使用率极高的Android手机。
本次毕业设计的目的是设计实现一款教学互动系统,而对于教学方面,则就会想到自古流传下来的作业。
作业是作为教学方面必不可少的一个角色,老师在课堂上能讲的东西毕竟有限,而且都是老师传授知识,对于学生来说有没有接收和理解那些知识就只能靠作业来检测。
作业不仅起到检测学生学习效果的作用,还可以作为一种压力或者动力来督促学生去学习,因为在中国教育传统里面,没有完成老师布置的作业就要受到老师的惩罚。
所以作为一款教学互动系统,要包含布置作业和收作业的功能。
而作为移动教学,核心还是要实现随时随地、自由学习。
本次毕业设计的目的就是要实现当老师和学生不能面对面教学的时候,老师依然能传授知识,学生也可以向老师请教,即所谓的互动。
互动不仅是老师与学生之间,老师与老师、学生与学生之间都可以进行交流互动。
而毕业设计的要求是要实现信息发布和回复等功能,所以作为互动就准备实现一个类似于BBS论坛等功能。
易学通就是根据毕业设计要求而设计的一套基于Android智能手机的教学互动系统,实现老师与学生、学生与学生之间的教学互动。
由于教师端与学生端的差距很小,所以易学通系统只有一个客户端,学生和老师都可以使用。
3.2设计思想
根据对教学互动系统的思考理解,拟定以南京理工大学教务处的个人学号和密码,模拟请求教务处,根据请求的返回信息,判断是否登陆成功,成功则进入主页。
本系统拟设定包含查看个人课程表、老师与学生之间的作业或答案的文件传递、老师与学生之间的交流互动等功能。
本系统在设计的时候存在一个必然的缺陷:
以目前的条件,只能获取到学生在教务处的个人信息和课程表信息。
对于老师在教务处的情况,本设计无法获得权限去访问。
所以,这个系统设计仅仅针对学生端,但其实对于教师端在作业文件传递和交流互动的设计上与学生端是一致