兴源范文网 > 作文大全 >

基于迭代化增量开发模型的高职“数据结构”课程实验设计

| 浏览次数:

摘要:本文针对高职学院“数据结构”课程实践教学环节,提出基于迭代化的增量软件开发方式开放实践教学课堂学习情境,设计了具有实用价值的工作任务来覆盖全部课程的知识体系,使学生能够亲身体验实际软件项目开发工作开展的步骤和方法,在工程实践中有效地应用算法及数据结构知识来分析及解决问题。

关键词:迭代增化增量模型;工作任务;数据结构

中图分类号:G642 文献标识码:B

1引言

“数据结构”是高职学院计算机专业的核心课程,是程序设计的重要理论技术基础,为后继专业课的学习提供必要的基础知识、基本理论和方法。教学目的包括:熟练掌握基本的数据结构和算法;能应用重要的算法策略和分析方法;在实际的工程设计中应用算法。

“数据结构”是一门技术性很强的课程,以高职学生的思维习惯和抽象思维能力,在有限的时间里很难对课程的原理和方法的应用有清楚的认识。他们学习更注重知识和理论的应用性,而传统的实验课缺少有实用价值的工程应用设计,内容枯燥而缺乏创造性,学生的主动性和积极性不高。

为了将严谨抽象的理论教学延伸至现实生活中的问题情境,提高学生将数据结构中的知识应用于实际问题的能力,本文首先提出了基于迭代增量的开发方式设计实践学习情境,从接受任务到任务完成都遵循“需求分析→数据结构/算法设计→编码实现→测试”这一基本的工作流程,然后根据数据结构课程知识体系结构设计了具有连续性和序列性的实验任务,进而分析各个任务如何在迭代增量过程具体实施操作,最后对比传统的实验教学来评价该实践方法的有效性。

2实验教学过程设计

迭代增量模型是软件开发过程中常用的开发模型,将其引入数据结构的实践教学中设置教学场景,使实践教学处于开放状态,不拘泥课堂内外的界限,也不受制于数据结构课程通常的总课时数。将设计的30个实验任务平铺于整个学期,每个任务从接受到任务完成都遵循“需求分析→数据结构/算法设计→编码实现→测试”这一基本的工作流程,如图1所示。

从图中可知,迭代增量的迭代是通过对核心开发活动的重复应用,包括了对问题解决方案定义以及解决方案实现的连续细化,其中的增量是指:软件开发过程中,随着数据结构理论课程知识由少至多的学习,在一次迭代运行的周期中,学生对问题的理解以及解决方案提供的功能均会增长,先开发每个实验任务的主要功能模块,再开发次要功能模块,逐步完善,最终开发出相对完整的符合需求的软件作品。这样将整个实践的全过程都融入在一系列的工程任务中,在实践开发中,其中连续地组织起来数个或更多的应用,以构成一个完整的项目。

学生按照上面的开发模型,在实验课程中引入软件工程的原理,按照规范的开发过程学习和应用数据结构原理和方法,故而开展小规模软件数据管理系统调研,设计,编码测试工作。另外根据“软件技术应用岗位职业标准”,分析工作过程中的一系列真实职业角色,指导学生按照“需求分析员→架构架构师→编码员→测试员”等不同角色的转换在迭代增量过程中完成任务,着力培养学生的职业能力。

3实验教学内容的组织与设计

本课程实践教学内容的组织、安排的基本思路是遵循迭代增量的开发基本流程,以真实工作任务及其工作过程为依据整合、序化教学内容,精心设计了30个学习性工作任务。从课程教学内容组织而言,考虑对于正在发生迅速变革的计算机领域,选择那些相对稳定、长期有用的、对应用领域必不可少的知识结构作为实验任务设计的内容。课程教学内容和学习工作任务的总体组织安排如图2所示。

其中,课程教学内容共计14个专题模块与30个学习工作任务交叉对应,全部任务将所有知识结构迭代覆盖,各个工作任务按教学内容的先后依照进度逐一展开。30个

结合具体问题构造的软件设计工作任务经常会要求学生“用特定的数据结构/算法”来解决某个问题,学生需要撰写详细的设计,描述现在要解决的问题和最后的结果。对于算法的描述,应该按照4点要求执行:

(1) 算法的中英文描述,提供伪代码(pseudocode)。

(2) 最少以一个工作例子或图表来更明确的显示算法怎样运作。

(3) 算法正确性的一个证明(或表示)。

(4) 算法执行时间的分析。

这样数据结构和算法设计这一核心工作流程尤为重要,教师必须加强的指导力度,做到边讲边练、边学边做。而在需求分析过程中,教师带领学生深入现实实际获取和调研需求,学生会跟随理论课知识进一步学习和调研,增加需求,迭代需求分析这一核心工作过程。每个任务持续的时间和任务本身的规模有关,如某个超市购物系统会持续到学期末,如后期学习的排序,查找会在系统中得到应用设计,整个迭代的过程会持续至数据结构课程全部结束,这样基于迭代增量过程就能发挥更大作用。而编码和测试过程则以学生为主导,自主自觉地根据前期的分析和设计展开具体的实现过程。在此过程中,学生觉得编码过程不再困难,而有想早点实现以见其效的积极想法。对每个任务,以软件工程流程或者角色为轴线的迭代,学生在教师的指导下参与所有的工作活动,按照如图3进行多次迭代开发设计。

根据迭代增量的工程流程,我们筛选了主要的项目活动:需求分析、分析设计、编码实现、测试、项目管理。理论上,每种软件工程流程都会对应一个单独的计划,而且每个软件工程流程会定义自己的迭代周期和迭代次数。教师的重要职责之一就是识别和管理各个任务与知识结构的依赖关系,保证各个设计任务的顺利进行。此外,在考核方面重点放在过程考核,强调素质与能力,不再进行单独的课程考核,按照工作任务评估表对学生的工作过程进行评价,课程成绩计算按任务的难度工作量规模大小分配权重,进行最后总评,直至完成整个工作任务的实施。

4实践教学评价与结论

我院从2005年开始在计算机专业采用基于迭代化的增量软件开发方式开放数据结构的实验教学,通过实验对比方法,将3年制计算机专业学生分为实验组和对照组,从定性和定量两个方面科学地观察实践课程的教学效果。通过学生数据结构课程考试成绩的对比分析、问卷调查以及实践成果的对比分析,汇总情况如表1所示:

从上表可知,实验组学生在基础数据结构系统知识学习、分析问题和解决问题能力以及后期专业知识的学习方面均具有更好的效果。此外,后期的问卷调查结果也表明,实验班学生对课程的总体印象在优良以上的占83%,教师对“实施基于迭代增量的实践课程总体印象”表示“较好”以上的为81%。

目前,数据结构课程实验课程的设计和实施还存在着一定问题,如同一任务体系间的相互融合贯通还不够,在教学方法上的改革还不足等;将来还需要进一步改进迭代增量法在教学情境的实施应用,研究和开发更多实用性实践课程工作任务,发挥其在后期专业课程学习中的延伸效果,持续提高高职计算机学生的专业和工程应用设计能力。

参考文献:

[1] [美]沙赫查. 面向对象软件工程[M]. 黄林鹏,俆小辉,伍建焜,译. 北京:机械工业出版社,2009.

[2] 殷人昆. 数据结构(用面向对象方法与C++语言描述)[M]. 北京:机械工业出版社,2007.

[3] [美]B.S.布卢姆. 教育目标分类学[M]. 罗黎辉,译. 上海:华东师范大学出版社,1986.

[4] 刘韶涛,王宁生. 软件体系结构的迭代增量构建方法[J]. 计算机应用研究,2003(20).

[5] 罗伟,张翠英. 对高职院校实践教学中“关键能力”培养的探讨[J]. 职业教育研究,2008(3).

[6] [美]普雷斯曼. 软件工程:实践者的研究方法[M]. 郑人杰,等译. 北京:机械工业出版社,2007.

[7] 盛群力,郑淑贞. 合作学习设计[M]. 浙江:浙江教育出版社,2007.

相关热词搜索: 数据结构 增量 高职 模型 课程