Advances in Education
Vol. 09  No. 02 ( 2019 ), Article ID: 29411 , 6 pages
10.12677/AE.2019.92032

Design and Implementation of Auxiliary Teaching System of Data Structure Based on Android

Qingzhao Yu, Chuanqi Yi, Xiaoming Wang*

School of Computer Science, Jinan University, Guangzhou Guangdong

Received: Mar. 6th, 2019; accepted: Mar. 19th, 2019; published: Mar. 26th, 2019

ABSTRACT

To meet the needs of students for mobile teaching system, an auxiliary teaching system of Data Structure based on Android is designed and implemented. The system realizes the dynamic demonstration of algorithm execution using animation technology and XML drawing technology, and can demonstrate different animation effects according to different initial data, which is more novel and smooth than traditional Flash animation. The system is installed on the mobile phone and is easy to be carried, thus making up for the limitation of learning time and place of the assistant teaching system based on PC terminal design and development. Students can learn independently according to their own needs, time and place, and truly learn at anytime and anywhere, so as to improve learning efficiency.

Keywords:Mobile Learning, Data Structure, Auxiliary Teaching System

基于Android的数据结构教学辅助系统的设计与实现

余庆钊,易传启,王晓明*

暨南大学信息科学技术学院,广东 广州

收稿日期:2019年3月6日;录用日期:2019年3月19日;发布日期:2019年3月26日

摘 要

为了满足学生对于移动教学系统的需求,设计与实现了基于Android的数据结构教学辅助系统。该系统利用动画技术和XML绘图技术实现了算法执行的动态演示,并可以根据不同的初始数据演示不同的动画效果,比传统的Flash动画更加新颖流畅。该系统安装于手机上使用,便于随身携带,从而弥补了基于PC端设计和开发的辅助教学系统受时间和场所限制的缺点。学生可以根据自己的需求,时间和地点自主的学习,真正做到随时随地学习,从而提高学习效率。

关键词 :移动学习,数据结构,辅助教学系统

Copyright © 2019 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

数据结构是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且是其他理工科专业的热门选修课 [1] 。数据结构主要介绍了与计算机程序设计相关的基础知识,包括基本的存储结构、逻辑结构以及一些经典的算法,对于编程初学者来说极其重要。但由于数据结构的内容较为抽象,传统书本上的理论知识缺乏动态性和直观性,教师在授课时又不可能把每一个步骤都画图讲解,使得学生难以形象地理解相关知识点,学习效果欠佳。基于此需求,国内外出现了一些数据结构算法演示系统,旨在以动画的形式向学生展示算法的内部执行过程,帮助学生理解相关知识点,如文献 [2] [3] [4] [5] 。但这些系统大都采用Flash动画进行演示,且都是基于PC端设计的,导致学生的学习场所和时间受到了很大限制。随着高校大学生移动终端设备持有率的大幅上升,急需一款基于移动端的数据结构教学辅助系统 [6] ,以满足学生随时随地的需求。

本文基于Android动画技术设计与实现了数据结构教学辅助系统。该系统以动画同步结合代码的形式直观地展现了算法动态执行的过程,并可以根据不同的初始数据演示不同的动画效果,比传统的Flash动画更加新颖流畅。该系统安装于手机上便可随身携带,不仅可以辅助老师进行课堂演示,而且还可以让学生摆脱PC机的场所限制,真正做到随时随地的学习,从而提高了学习效率。

2. Android系统简要介绍

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。该平台由操作系统、中间件、用户界面和应用软件组成。如文献 [7] 所述,安卓操作系统是开源的,其开源的初衷便是希望通过该措施整合所有的手机硬件提供商以及手机生产厂商,让安卓系统能运行于任何不同类型的硬件上。如果要让一个app (应用程序)能够在各种不同的平台设备上运行,开发语言就必须跨平台,通过跨平台屏蔽底层硬件的差异,而不必让程序员为了考虑底层硬件的不同写出不同的代码。因此,谷歌选择了java语言作为安卓系统的开发语言。

本文基于Android操作系统设计与实现数据结构教学辅助系统,适用于17及以上API的Android操作系统,软件界面设计风格遵循Material Design [8] 设计风格,软件编写语言为java。

3. 数据结构教学辅助系统的设计与实现

3.1. 系统结构

系统是基于Android设计和开发的,可以根据用户输入的初始数据以及对算法在执行过程中的控制来达到不同的演示效果。系统以触摸按钮作为驱动方式,每一个按钮对应一个操作,系统将一直处于按钮选择与动作执行的交互状态,直至用户退出程序。整个系统的控制流程如图1所示。

Figure 1. Frame of system control

图1. 系统控制流程图

系统共需要设计章节选择(一级目录)、算法选择(二级目录)、算法演示这三个主要界面。对于部分需要输入初始数据的算法,可利用弹窗功能与用户进行交互,获取用户输入的初始数据。

3.2. 系统界面

系统是基于Material Design [9] 的界面设计与实现。Activity自带的标题栏Action Bar。由于设计原因只能限制于活动的顶部,从而不能实现Material Design的效果,故本系统一用Tool Bar控件来替代原有的Action Bar。在时下热门的手机APP中,滑动菜单已然成为新的潮流,受到不少开发人员的追捧。在系统中,一级目录作为系统主界面,除了显示算法章节以外必然还需要包含其他的程序功能,比如系统设置、用户指南、程序退出等等,用滑动菜单来收录效果颇佳。界面效果如图2所示。

Figure 2. Directory home screen (left) and sliding menu (right)

图2. 目录主屏幕(左)与滑动菜单(右)

3.3. 动画演示界面设计与实现

系统的动画演示界面顶部为标题栏,显示当前正在显示的算法的名称。左侧为动画演示区和动画操作按钮区,演示区的动画元素为自定义的View,按钮区从左往右四个按钮的功能依次为产生随机数据、连续播放动画演示、单步播放动画演示、恢复数据初始状态;右上侧为伪代码显示区,高亮显示当前正在执行的代码,每一行代码为一个Text View控件;右下侧为算法变量显示区,动态追踪变量的值,每一个变量为一个Text View控件。演示界面的效果如图3所示。

Figure 3. Animation demonstration interface

图3. 动画演示界面

算法在演示过程中的逻辑控制包含连续播放、单步播放、更新数据和重置数据这四个基本操作,其流程如图4所示。

Figure 4. Operational control flow chart figure

图4. 操作控制流程图

3.4. 更新数据

本系统采用随机数的方法来产生初始数据,每一个演示算法都有一个随机数产生函数,根据不同算法的演示需要,其内容会有所不同。更新数据的控制实现如图5所示。

Figure 5. Updates the data control process (D stands for destroy)

图5. 更新数据控制流程(D代表Destroy)

4. 数据结构教学辅助系统实践运用情况

为了满足学生对移动学习的需求,解决数据结构课程内容多,学时少,受时间和地点的限制、学生自主学习等方面存在的问题,我们开发了基于Android的数据结构教学辅助系统,构成了一个“自主学习和协作学习”的课外数据结构教学环境。该系统便于学生利用生活中的间歇及零碎时间进行移动学习,从而提高学习效率和学习质量。

数据结构教学辅助系统已应用于暨南大学的本科生课程,是课堂教学的重要补充与拓展,深受学生和老师的欢迎。我们对学生做了问卷调查(78份问卷),满意程度为93%以上。学生普遍认为该辅助教学系统,可以下载在手机上使用,不需要花费任何通讯费用,即使没有WiFi或没有网络连接的情况下,学生也能利用手机复习数据结构的问题,非常方便实用。

实践表明,基于Android的数据结构教学辅助系统很好地满足了学生的个性化和随时随地学习的需要,使数据结构辅助教学能够跨越时间和空间的限制,提高了学生的学习效率和学习质量。

5. 结束语

系统以屏幕绘制与Android属性动画为技术基础,设计出的动画效果丰富多彩,实现的算法涵盖了数据结构教学中的线性表、栈、队列、二叉树、图、查找以及排序等,符合国内各大高校学生的学习需求。未来在此基础上不断改进和完善,推广到全国各大院校,供有需要的学生使用,以提高学生的学习效率和学习兴趣,满足学生移动学习的需求。

文章引用

余庆钊,易传启,王晓明. 基于Android的数据结构教学辅助系统的设计与实现
Design and Implementation of Auxiliary Teaching System of Data Structure Based on Android[J]. 教育进展, 2019, 09(02): 177-182. https://doi.org/10.12677/AE.2019.92032

参考文献

  1. 1. 严蔚敏, 吴伟民. 数据结构(C语言版) [M]. 北京: 清华大学出版社, 2007.

  2. 2. 禤世丽. 基于Visual C++的数据结构经典算法的演示系统[J]. 计算机光盘软件与应用, 2014, 17(8): 244-246.

  3. 3. 李毅波. 数据结构与算法学习系统的设计与实现[D]: [硕士学位论文]. 长沙: 中南大学, 2012.

  4. 4. 唐宏亮. 基于HTML5的数据结构算法演示系统的研究[J]. 电脑迷, 2016(9): 111.

  5. 5. 王宏, 曹家庆, 等. 基于Java的数据结构算法演示系统[J]. 南昌航空工业学院学报(自然科学报), 2006, 20(2): 70-74.

  6. 6. 温春玲. 基于Android的数据结构课程教辅演示系统设计[J]. 职业, 2015(8): 144.

  7. 7. Bill Phillips, Chris Stewart, 等, 著. Android编程权威指南[M]. 第2版. 王明发, 译. 北京: 人民邮电出版社, 2016: 337-343.

  8. 8. 郭霖. 第一行代码-Android [M]. 第2版. 北京: 人民邮电出版社, 2016: 2-4.

  9. 9. Material Design官方网站[EB/OL]. https://materal.io/guidelines, 2017.

  10. NOTES

    *通讯作者。

期刊菜单