程序设计在线自主学习模式设计及系统实现

2017-01-21 16:50陈志卢海燕高翔
软件导刊 2016年12期
关键词:移动终端在线学习学习模式

陈志+卢海燕+高翔

摘 要:为提高程序设计能力训练水平,设计了一种程序设计在线自主学习模式,通过课内外自主学习和多样化的用户端支持,构建移动互联网环境下普适化程序设计学习体系,并以此实现一个程序设计在线自主学习系统。该系统由系统服务平台、Web客户端系统、移动终端系统、普适化程序设计学习应用等构成。系统功能测试和用户报告表明,该系统能够有效支撑程序设计在线自主学习模式的实施,从而提高用户学习程序设计的兴趣、效率和自主性。

关键词:程序设计;学习模式;在线学习;自主学习;移动终端

DOIDOI:10.11907/rjdk.162141

中图分类号:G433

文献标识码:A文章编号:1672-7800(2016)012-0193-04

0 引言

当前软件人才培养的重要目标是有效提升学生的程序设计能力,使其拥有程序设计语言、数据结构、算法、计算机理论、软件工程等专业知识以及分析与解决实际问题的能力。常规的程序设计能力训练以传统课堂教学模式为主,侧重于理论教学,强调应试教育,而忽视对学生学习兴趣的培养,通常使学生处于被动学习状态。近年来,随着ACM国际大学生程序设计竞赛(ACM-ICPC)的发展,程序设计能力训练能够利用成熟的ACM-ICPC在线评判系统,形成基于ACM-ICPC的程序设计学习模式。

该模式可激发学习者对程序设计的学习兴趣,并帮助其提高程序设计水平[1]。

当前移动互联网和移动终端设备已成为人们日常学习、工作和生活中获取信息的重要手段,以此形成的普适化学习模式让人们的注意力中心回归到要完成的学习本身,构建出一个泛在的、随时随地可获得的智能化教育体系[2]。本文为程序设计能力训练设计了一种在线自主学习模式,研究将基于Web的ACM-ICPC在线评判系统[3]扩展至移动互联网环境下的移动终端平台,从而为学习者搭建起交流平台,形成一种高效的普适化程序设计学习体系。

1 程序设计在线自主学习模式设计

网络与信息技术的发展使程序设计学习可以突破时空限制,将现有的程序设计学习资源和平台有机整合,有助于实现在线自主的学习方式。本文将程序设计在线自主学习模式划分为课内学习、课外学习两个阶段,如图1所示。课内学习阶段主要适用于在校的程序设计学习者,要求提高实践课时比例,增加自主学习内容,因此采用适合在线学习的程序设计练习题目;课外学习阶段适用于所有程序设计学习者,要求构建课外学习在线资源,因此采用Web客户端、移动终端等多样化用户端,并逐步构建形成程序设计在线自主学习社区。

程序设计在线自主学习模式融合常规学习模式的优点,利用现有移动互联网和移动终端设备发展成果,使程序设计学习趋向于全天候在线及自主可控。课内学习阶段由课堂知识传授模式发展到包括实践学习、自主学习、在线学习等多样化的综合学习模式。课内学习阶段强调多样化的用户端,从个人自主学习模式逐步导向协作互助的社区学习模式。由此可见,程序设计在线自主学习模式为程序设计能力训练提供了一个便捷、开放、互动的普适化程序设计学习平台。

2 程序设计在线自主学习系统设计

程序设计在线自主学习模式的具体实施依赖于系统服务平台、Web客户端系统、移动终端系统以及普适化程序设计学习应用等,这些系统构成了程序设计在线自主学习系统,如图2所示。

图3给出了程序设计在线自主学习系统的功能。程序设计在线自主学习系统服务平台可以使用现有的ACM-ICPC在线评判系统[1,4]。移动终端系统主要实现数据的获取,与程序设计在线自主学习系统服务平台进行交互,一方面利用网络通过服务平台获取数据,另一方面访问本地数据库读取数据。与服务平台进行交互时,采用HTTP协议进行通信以及JSON解析[5]。下面给出几个重点功能模块设计。

2.1 显示题目列表

在程序设计在线自主学习移动终端系统中,显示题目列表功能模块包括题目列表界面设计、与服务平台的交互设计。图4给出了移动终端系统的显示题目列表功能模块类图。

在程序设计在线自主学习系统服务平台中,显示题目列表获取移动终端系统发送来的请求后,从数据库获取题目列表数据,然后将这些数据以JSON对象的形式返回移动终端系统。图5为服务平台的显示题目列表功能模块类图。

2.2 显示代码提交状况功能模块设计

移动终端系统的显示代码提交状况功能模块包括编辑代码界面设计、提交代码交互设计、代码提交状况显示界面设计等。图6给出了移动终端系统的显示代码提交状况功能模块类图。

服务平台的显示代码提交状况功能模块设计主要为获取移动终端系统发送来的提交代码,对这些代码进行评判,再将评判结果保存到后台数据库中。图7为服务平台的显示代码提交状况功能模块类图。

2.3 提示词功能模块设计

移动终端系统的提示词功能模块设计主要包括添加默认提示词、添加自定义提示词以及显示提示词。图8为该功能模块的类图。

3 程序设计在线自主学习系统实现与测试

为实施程序设计在线自主学习模式,上一节详细设计了程序设计在线自主学习系统,下面给出该系统的具体实现过程,并进行系统测试。

3.1 系统实现

在程序设计在线自主学习系统实现中,系统服务平台采用南京邮电大学的ACM程序设计在线评判系统(NOJ)[4],移动终端平台采用Android[6],程序设计普适化应用包括在线开放练习、在线实时比赛、训练交流等。以下为用户提交代码在系统服务平台上的执行情况示例:

Tomcat v7.0 Server at localhost [Apache Tomcat] C:\\Program Files\\Java\\jre7\\bin\\javaw.exe (2015年6月2日 下午2:18:06)

1241551 [http-bio-8080-exec-12] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1001

整数求和

1268658 [http-bio-8080-exec-9] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1

gao

1001

GCC_prompt

1683525 [http-bio-8080-exec-9] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1683637 [Thread-3] INFO com.nuaa.util.judge.JudgeWaiter-JudgeWaiter提前题目ff8080814db2ec16014 d30 5addc0001

1683795 [Thread-3] WARN com.nuaa.Hibernate.SolutionDAO-getting Solution instance with id: ff808081 4db 2ec16014d305addc0001

1683989 [Thread-3] WARN com.nuaa.Hibernate.SolutionDAO – getting Solution instance with user_name: gao

getting Solution instance with user_name: gao

1684093 [Thread-3] INFO com.nuaa.Hibernate.SessionFactory - commit tx

1684093 [Thread-3] INFO com.nuaa.util.judge.Checker-开始评判--D:\\www\\AcmJudge\\ ff8080814db2ec16014 d305addc0001 1001 1 100 33600

1685739 [Thread-3] INFO com.nuaa.util.judge.Checker-评判结束

3.2 系统测试

下面对程序设计在线自主学习系统进行功能测试和在线自主学习模式的用户使用测试。在系统功能测试中,表1是显示代码提交状况的模块用例表,该表用于测试系统是否能够正确提供给用户显示代码的运行结果。其它测试用例与之类似,所有功能测试结果均为“通过”。此外,根据在线自主学习模式的用户使用测试报告,用户对程序设计在线自主学习系统及其支持的在线自主学习模式普遍持有肯定意见。其中,74%以上的用户使用Web客户端、移动终端等多样化用户端登录系统;86%以上的用户认为现在或未来需要在程序设计能力训练中使用移动终端系统;近94%的用户认为程序设计在线自主学习系统实现了随时随地的普适化学习;85%以上的用户认为

在线自主学习模式提高了程序设计学习的兴趣和效率;近95%的用户认为在线自主学习模式能够提高或有时能够提高程序设计学习的自主性。

4 结语

本文提出了一种在移动互联网环境下的程序设计在线自主学习模式,该模式将程序设计能力训练划分为课内学习和课外学习两个阶段,每一个阶段都强调程序设计的在线学习、自主学习和社区协作学习,这种普适化学习体系由系统服务平台、Web客户端系统、移动终端系统以及具体学习应用等构成。为此,本文设计与集成开发了一个程序设计在线自主学习系统,该系统使用现有的ACM-ICPC在线评判系统作为系统服务平台,支持包括Web客户端、移动终端在内的多样化用户端,实现了程序设计在线自主学习模式,有效提高了学习者的自主化程序设计能力训练效率。

参考文献:

[1] 陈志, 李梦泽, 马嫣, 等. 基于 ACM 程序设计竞赛的常规教学改革[J]. 电气电子教学学报, 2011, 33(6): 18-20.

[2] PENA-AYALA A, CARDENAS L. A revision of the literature concerned with mobile, ubiquitous, and pervasive learning: a survey[C]. Switzerland: Springer International Publishing, 2016: 55-100.

[3] 蔡崇超. 基于 Web 的在线判题系统设计与实现[J]. 软件导刊, 2016, 15(3): 107-109.

[4] 南京邮电大学. NOJ: NJUPT ACM online judge[EB/OL]. http://acm.njupt.edu.cn.

[5] SMITH B. Beginning JSON[M]. New York: Apress, 2015.

[6] DARCEY L, DELESSIO C, CONDER S, et al. Android 应用开发入门经典[M]. 北京:人民邮电出版社, 2014.

(责任编辑:黄 健)

猜你喜欢
移动终端在线学习学习模式
信息化环境下高职英语教学现状及应用策略研究
发挥远程教育平台优势?探索社区教育数字化学习模式
信息技术环境下大学英语视听说混合学习模式研究
手机APP在学生信息化管理中的应用探索
浅谈初中语文自主学习模式的构建