APP下载

面向智能终端应用的数据结构教学改革实践

2015-12-22杨力

教育教学论坛 2015年44期
关键词:数据结构

杨力

摘要:数据结构是电子信息类专业的核心课程,传统的教学与最新的技术发展脱节,难以激发学生的学习兴趣。将数据结构教学与目前广泛使用的智能终端应用相结合,在新的软件开发平台上开展数据结构的创新教学改革,对提高学生的算法设计、编程能力等方面起到了很好的效果。

关键词:数据结构;Android编程;项目驱动教学

中图分类号:G642.0     文献标志码:A     文章编号:1674-9324(2015)44-0108-02

移动互联网和智能终端设备深刻地改变着人们的生产和生活方式。近几年,智能手机出货量已经数倍于传统微型计算机,并成为人们访问互联网的最常用设备。移动智能终端包括手机、平板电脑、智能手表等,帮助人们完成了绝大多数过去依赖电脑才能进行的任务。

数据结构是电子信息专业的软件类核心课程,注重理论和编程实践相结合[1]。传统的教学实践以C/C++作为编程描述语言,以Windows或Linux系统作为算法编程实践平台[2]。这种教学方式的好处是能专注于培养学生的算法设计和编程等基本能力,但缺点也很明显,学生很难将课堂所学与实际应用联系起来。数据结构课程有一定的难度,内容略显枯燥,如果课堂教学不能与实际应用和软件技术发展趋势紧密结合,则很难激发学生的学习兴趣,教学效果不理想。

软件开发类课程需要引导学生接触新的软件开发技术和项目实践,让学生体会到学有所用,增强学习兴趣和信心。目前国内已有很多研究者开展了以工程项目实践为导向的数据结构教学[3],使学生将算法设计与工程实践结合起来。但在实际教学实践中,还有很多难点。一方面,工程实践要求学生具备较好的编程基础,而学生在先修的编程语言课程中基础参差不齐[4];另一方面,在有限的学时内,学生很难兼顾工程实践和算法设计的学习。

本文基于新的实践开发平台,以解决上述问题为出发点,进行了数据结构课程的创新改革实验。

一、数据结构编程实践平台

在当前移动互联网带来深刻变革、智能终端普及、个人电脑产业萎缩的背景下,传统的基于PC编程开发环境的数据结构教学已经与实际应用脱节。数据结构是一门注重编程实践的课程,基于目前广泛使用的智能手机、平板电脑、智能手表等智能终端进行教学,不仅可以激发学习兴趣,而且非常容易地为学生的后续深入学习和接触产业打下基础。

我们选择Android作为教学实验编程平台。Android是目前各种智能终端中使用最广泛的操作系统,主要支持Java/C++编程语言。基于新的教学实验平台,以Java/C++作为编程描述语言,设计新的实践教学方案。

二、实践教学设计特点

我们针对智能终端平台,对实践教学环节进行了重新设计,遵循以下特点:首先,始终以数据结构基本算法的理解和实现为重点,在此基础上,让学生根据自身兴趣,对应用开发有不同程度的了解;其次,实践教学的设计既适合课堂讲授,也适合实验教学,便于不断加深学生的理解;最后,以完成实际项目作为学习任务,注重项目功能模块细分,使学生容易跟随教学进度。

采用实际项目进行教学会导致知识点庞杂,学生学习难以抓住重点。因此,对教学知识点的取舍和重难点划分至关重要。在教学知识点方面,我们采取的原则是,以基本算法设计和面向对象的编程思想的应用为重点,以智能手机为主要的应用平台进行教学,把编程语法和平台相关的知识点放在次要位置。

三、实践教学项目案例

(一)基于Android的学生信息管理程序

项目涉及线性表、查找、排序等知识点。具体要求为,输入学生姓名、学号、分数等信息,按照不同的关键字对学生信息进行排序,并显示结果。教案设计采取循序渐进、分模块讲解的原则,引导学生把重点放在算法的理解与实现上。项目分为三个可独立运行的模块,可在不同章节讲授,叙述如下。

1.信息的输入和显示,涉及线性表的创建、添加、删除。要求采用顺序表或链表实现,输入学生信息,点击添加,将信息逐个插入到线性表并显示。Android控件相关知识,仅作简单介绍,提供参考代码。

2.信息的查找,涉及线性表的查找。要求按某个关键字查找,列出符合条件的学生。

3.信息的排序,涉及内部排序。要求学生采用指定算法实现基于任意关键字的排序。作为选做题,要求学生用Java中的泛型编程实现基于任意指定关键字的排序,以及用comparable接口实现学生对象的比较。

(二)图的应用(拯救007)

项目改编自浙江大学计算机学院数据结构公开课中的一道例题,通过基于Android的可视化编程,使项目变成游戏开发任务,让学生获得更加直观的理解和感受,大大提高了学习兴趣。项目具体要求为,“007”被困在湖中心一个正方形的小岛上,湖上有很多鳄鱼在游动,请帮助“007”来判断,在某个时刻,能否通过鳄鱼背,连续跳跃到湖岸上。

项目引导学生在经典的深度优先搜索算法基础上编程求解。湖的宽度、鳄鱼的数目、“007”一次可以跳跃的最大距离等作为参数输入,鳄鱼的初始状态可随机产生。对应用程序涉及到的Android绘图知识仅作简单讲解,并提供参考代码。

(三)最优二叉树的应用

最优二叉树是二叉树的经典应用。项目要求根据输入的权值,创建最优二叉树,并将二叉树绘制到屏幕上。项目可分为两个模块,分阶段讲授。

1.二叉树的建立和绘制。要求学生按指定的顺序建立二叉树,并绘制在屏幕上。

2.最优二叉树的建立。要求学生根据输入权值建立最优二叉树。

通过本项目,使学生对二叉树章节的算法有全面的理解。应用程序中涉及的Android绘图知识,仅作简单讲解。

(四)五子棋游戏的应用

项目要求学生设计一个基于Android的简单的五子棋游戏,提供基本的参考代码,引导学生完成棋局的判定胜负等算法。项目涉及二维数组的基本操作。

四、教学实践分析

通过对连续两年教学对比实验结果分析,统计了学生的实验到课率、实验完成率(独立完成实验的学生比例)和实验平均分,结果如表1所示。从表1可以看出,在实验难度略有增加的情况下,2015年的三项统计结果均比2014年有所提高。

五、结语

本文开展了以手机等智能终端为实验平台的数据结构教学改革探索,通过对实践教学环节的重新设计,以基本算法为教学重点,注重功能模块划分。教学实践表明,新的教学方案容易激发学生的兴趣,提高教学效果,能够引导学生了解实际工程项目。

参考文献:

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

[2]孔兵,陈红梅,袁国武.数据结构实验中指针相关问题[J].教育教学论坛,2014,(04):110-112.

[3]赵立双,王丽君,孙蕾.以“工程实践”能力培养为导向的《数据结构》课程实践教学体系的构建[J].电子设计工程,2013,(02):7-9.

[4]王作为,邹晓健.分类培养目标下的数据结构教学方法的研究探索[J].中国电力教育,2013,(4):58-59.

猜你喜欢

数据结构
欧洲专利局OPS服务专利法律状态数据结构分析
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
为什么会有“数据结构”?
MOOC平台下数据结构的教学研究
数据结构课程教学网站的设计与实现
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
CDIO模式在民办院校数据结构课程实践教学中的应用
TRIZ理论在“数据结构”多媒体教学中的应用