数据结构课程标准.docx
《数据结构课程标准.docx》由会员分享,可在线阅读,更多相关《数据结构课程标准.docx(24页珍藏版)》请在冰豆网上搜索。
数据结构课程标准
1课程标准
1.1课程定位
《数据结构》是计算机类专业的核心课程之一,是软件技术专业必修的专业基础课程,也是其它非计算机专业的主要选修课程之一。
数据结构研究的范围和计算机软件有着密切的关系,无论是编译源程序还是操作系统,都涉及到数据元素在存储器中如何分配的问题。
在研究信息检索时也必须考虑如何组织这些数据,以便使查找和存取数据元素更为高效。
因此,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程,在计算机科学中,数据结构不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据系统及其它系统程序和大型应用程序的重要基础。
由于《数据结构》是一门理论性很强的课程,重在理论,而高职教学的主要目标是培养高级技术应用型人才,更加偏重于实践能力的培养,所以我们针对高职学生的特点,在教学过程中对《数据结构》课程进行了系列教学改革,并取得了较好的效果。
本课程以就业为导向,从高技能人才培养的要求出发,以强化技术应用能力培养为主线,构建理论教学体系和实践教学体系。
在教学内容上,按照理论知识够用的高职教育原则,根据学生知识能力、企业岗位能力要求等,弱化了无应用性或应用性不强的内容,强化了工程项目中常用的知识点,构建了必须的教学单元。
1.2工作任务和课程目标
1.2.1工作任务及职业能力
表1-1工作任务与职业能力分析表
工作领域
工作任务
职业能力
学习项目
程序员
使用语言实现设计及编码
1.熟练掌握数据结构,能设计算法。
2.能编写详细设计文档。
3.能按项目规范编写代码,有良好的编码风格。
4.有良好的沟通能力、编码能力、高度的责任心。
全部项目
数据库开发人员
使用数据库开发工具进行数据库的设计、开发
1.熟练数据结构及算法,能独立承担数据库的有关开发、管理、维护工作。
2.有强烈的责任心,良好的团队合作精神,扎实肯干,能承受工作压力。
3.有良好的沟通能力、逻辑分析能力和文档书写能力。
全部项目
软件维护员
对应用程序进行维护
1.责任心强,富有团队合作精神与能力,具有良好的学习欲望,学习能力强,能够快速掌握新的知识与技能。
2.熟练数据结构及算法。
全部项目
测试员
编写测试计划和测试用例;进行软件项目的功能测试、系统测试、性能测试;整理、分析、报告、追踪软件缺陷。
1.熟悉数据结构及算法,具备良好的团队协作能力和沟通技巧。
2.具有较强的质量意识,工作认真、细致、有耐心。
3.具有撰写、执行和评估测试用例的能力。
4.对测试结果有一定的分析、总结能力。
全部项目
1.2.2课程目标
本课程的主要目标是使学生深入了解数据结构的逻辑思想、实现方法和应用技术。
本课程追求理论联系实际,教学与实践相呼应。
灵活多样地采取了编程、拓展性学习、案例教学、讨论、报告,大型作业,科研项目等多种形式,激发学生的学习兴趣和主动参与精神,使学生理解原理,掌握方法,熟练应用,能够创造性地应用各种数据结构和算法设计性能优,效率高,可读性强,易维护的程序,解决实际问题,提高学生的学习能力,探索研究的能力。
根据课程面对的工作任务和职业能力要求,本课程的教学目标为:
(1)知识目标
1)数据结构的基本概念及算法的评价。
2)能熟练使用基本的数据结构,线性表、数、图结构。
3)查找技术。
4)排序算法。
5)能用数据结构设计解决简单实际问题的程序,并能完成简单程序的测试。
6)能根据问题设计相应的算法。
(2)技能目标
1)数据结构概述
①数据结构概念;
②算法的评价;
③算法时间复杂度的计算。
2)线性表
①了解线性表的意义;
②线性表的顺序实现;
③线性表的顺序结构的增删改查;
④线性表的链接实现;
⑤线性表的应用。
3)特殊的线性表
①栈的意义及实现;
②队列的意义及实现;
③栈与队列的应用;
④字符串的操作。
4)数结构
①了解树结构的基本概念;
②二叉树的基本性质;
③二叉树的存储及遍历;
④霍夫曼编码。
5)图结构
①了解图结构的基本概念;
②图结构的存储及遍历;
③最小生成树算法;
④最短路径算法;
⑤关键路径算法及实现。
6)查找技术
①了解查找的相关概念;
②折半查找的算法实现;
③二叉排序树查找;
④散列表查找技术。
7)排序技术
①了解排序技术的基本概念;
②插入排序;
③交换排序;
④选择排序;
⑤归并排序。
(3)态度目标
本课程主要加强以下各方面职业素质的培养:
1)具有良好的思想品德和诚实、敬业、负责等职业道德;
2)具有良好的文化修养;
3)具有良好的团结协作精神、团队意识、组织协调能力;
4)具有开拓创新精神;
5)具有理解原理,掌握方法,熟练应用,能够创造性地应用各种数据结构和算法,设计性能优,效率高,可读性强,易维护的程序,解决实际问题,提高学生的学习能力,探索研究的能力。
1.3教学组织
该课程根据数据结构技术在生产中的应用展开,主要针对算法设计、数据结构进行学习,依据软件开发过程中循序渐进的思想设计课程模块内容,打破以知识传授为主要特征的传统学科课程模式,采用以项目任务为中心的项目课程模式进行。
通过项目分析获得项目化的“学习任务”,然后通过组建工作项目将工作化的项目任务转换成课程教学内容,让学生在完成具体项目的过程中掌握所学的知识。
该模式以项目任务为中心整合理论与实践,并发展职业能力。
同时,为了体现本课程重在使学生掌握软件开发工具的使用及软件开发流程这一目的,教学中特意选择循序渐进的项目开发模式,加强知识点在工作任务中的使用,培养学生算法设计及程序调试的能力。
课程内容突出对学生职业能力的训练,理论知识的选取紧紧围绕工作任务完成的需要来进行,同时又充分考虑了高等职业教育对理论知识学习的需要。
本课程倡导工学结合,采用“项目实施化”的教学模式。
教学活动的设计紧紧围绕项目任务和课程内容,在教师的指导下,以学生为主体,以项目为载体,在实训室通过项目导向、项目实施等教学方法整合相关的理论和实践,使学生熟悉软件开发的工作流程,能完成相关岗位的工作任务,获得个性发展与工作岗位需要相一致的职业能力,拓展更加宽广的发展空间。
教学组织表如表1-2所示。
表1-2教学组织表
学习项目编号
学习项目名称
学习型工作任务
学时
1
数据结构概述
任务1数据结构概念;
任务2算法的评价;
任务3算法时间复杂度的计算。
4
2
线性表
任务1符号表的实现;
任务2一元多项式的求和。
12
3
特殊线性表
任务1数学运算的内部实现;
任务2火车车厢重排;
任务3字符串的比较。
8
4
树结构
任务1八枚硬币问题;
任务2学生会组织机构的管理实现;
任务3哈夫曼编码。
12
5
图结构
任务1最小生成树;
任务2城市最短路径;
任务3排课系统的算法实现;
任务4项目关键路径。
12
6
查找技术
任务1在线性表里查找X;
任务2在顺序表里查找X的算法实现;
任务3二叉排序数的查找;
任务4散列表的查找。
8
7
排序
任务1牌游戏实现;
任务2荷兰国旗问题;
任务3螺钉与螺母问题。
8
1.4教学内容与能力要求
本课程基于数据结构在软件开发中的使用,结合就业岗位对知识与技能的要求选取教学内容。
根据软件技术专业的培养目标,教学内容设计以岗位需求为导向,以真实项目任务及其工作过程为依据,以项目任务为目标,以知识、技能、态度培养为本位,培养学生具有实用能力、上岗能力、可持续发展能力和职业素质。
各学习项目教学内容、能力要求如表1-3所示。
表1-3项目1数据结构概述
教学
内容
项目概述
建议学时:
4
学习型工作任务的数目:
3
项目的任务
任务1数据结构概念;
任务2算法的评价;
任务3算法时间复杂度的计算。
教学目标
知识目标:
1.数据结构概念;
2.算法的评价;
3.算法时间复杂度的计算。
技能目标:
1.会评价一个算法的好坏。
2.算法时间复杂度的计算。
态度目标:
1.培养学生独立解决问题的能力以及与团队协作的能力。
2.培养学生良好的劳动纪律。
项目的教学实施
引导学生评价算法等。
项目教学内容
1.引导学生评价算法。
2.给出算法,计算复杂度。
3.指导学生完成项目3。
工作对象、工具
C++平台
工作方法
分组实现开发环境的搭建。
组内实现各工作任务。
劳动组织和工作人员
小组各人员
工作成果
完整的评价报告。
考核评价
40%知识+40%技能+20%态度
能力
要求
1.会评价一个算法的好坏。
2.算法时间复杂度的计算。
表1-4项目2线性表
教学
内容
项目概述
建议学时:
12
学习型工作任务的数目:
3
项目的任务
任务1符号表的实现;
任务2一元多项式的求和。
教学目标
知识目标:
1.了解线性表的意义;
2.线性表的顺序实现;
3.线性表的顺序结构的增删改查;
4.线性表的链接实现;
5.线性表的应用。
技能目标:
1.线性表的顺序结构实现;
2.线性表的链接结构实现
3.线性表的应用。
态度目标:
1.树立认真学习的态度,培养对工作认真负责的态度。
2.树立克服困难的自信心。
项目的教学实施
采用教师引导学生完成任务一;其它任务分组实现,并实现组间评价。
项目教学内容
1.教师与学生共同完成项目。
2.教师引导学生发现其中涉及的知识点。
3.分析并使用相关的知识点。
工作对象、工具
C++
工作方法
分组完成项目开发并组内讨论以及组间相互评价。
劳动组织和工作人员
讨论并按人员情况划分小组。
工作成果
代码+运行结果。
考核评价
40%知识+40%技能+20%态度
能力
要求
1.线性表的顺序结构实现;
2.线性表的链接结构实现;
3.线性表的应用。
表1-5项目3特殊线性表
教学
内容
项目概述
建议学时:
8
学习型工作任务的数目:
3
项目的任务
任务1 数学运算的内部实现;
任务2火车车厢重排;
任务3字符串的比较。
教学目标
知识目标:
1.栈的意义;
2.队列的意义;
3.栈与队列的应用;
4.字符串的操作。
技能目标:
1.栈的应用及实现。
2.队列的实现及应用。
3.字符串的操作实现。
态度目标:
1.树立认真学习的态度,培养对工作认真负责的态度。
2.树立克服困难的自信心。
项目的教学实施
采用教师引导学生完成任务一;其它任务分组实现,并实现组间评价。
项目教学内容
1.教师与学生共同完成项目。
2.教师引导学生发现其中涉及的知识点。
3.分析并使用相关的知识点。
4.使用知识点设计其它项目。
工作对象、工具
C++
工作方法
分组完成项目开发并组内讨论以及组间相互评价。
劳动组织和工作人员
讨论并按人员情况划分小组。
工作成果
项目的源代码和运行成果。
考核评价
40%知识+40%技能+20%态度
能力
要求
1.栈的应用及实现。
2.队列的实现及应用。
3.字符串的操作。
表1-6项目4树结构
教学
内容
项目概述
建议学时:
12
学习型工作任务的数目:
3
项目的任务
任务1八枚硬币问题;
任务2学生会组织机构的管理实现;
任务3哈夫曼编码。
教学目标
知识目标:
1.了解树结构的基本概念;
2.二叉树的基本性质;
3.二叉树的存储及遍历;
4.霍夫曼编码。
技能目标:
1.会使用树结构类型。
2.使用树结构解决实际问题。
态度目标:
1.树立认真学习的态度,培养对工作认真负责的态度。
2.树立克服困难的自信心。
项目的教学实施
采用教师引导学生完成任务一和三;其它任务分组实现,并实现组间评价。
项目教学内容
1.教师与学生共同完成项目。
2.教师引导学生发现其中涉及的知识点。
3.分析并使用相关的知识点。
4.使用知识点设计其它项目。
工作对象、工具
C++
工作方法
分组完成项目开发并组内讨论以及组间相互评价。
劳动组织和工作人员
讨论并按人员情况划分小组。
工作成果
项目的源代码和运行成果。
考核评价
40%知识+40%技能+20%态度
能力
要求
1.会使用树结构类型。
2.树结构的应用。
表1-7项目5图结构
教学
内容
项目概述
建议学时:
8
学习型工作任务的数目:
4
项目的任务
任务1最小生成树;
任务2城市最短路径;
任务3排课系统的算法实现;
任务4项目关键路径。
教学目标
知识目标:
1.了解图结构的基本概念;
2.图结构的存储及遍历;
3.最小生成树算法;
4.最短路径算法;
5.关键路径算法及实现。
技能目标:
1.图结构的存储及遍历。
2.图结构的应用。
态度目标:
1.具有良好的团结协作精神、团队意识、组织协调能力。
2.具有开拓创新精神。
项目的教学实施
采用教师引导学生完成任务一和三;其它任务分组实现,并实现组间评价。
项目教学内容
1.通过项目引出相关的知识点;分析项目中的实现过程。
2.分组讨论实现不同的项目。
3.汇总项目实现时遇到的问题。
4.使用知识点设计其它项目。
工作对象、工具
C++
工作方法
分组完成项目开发并组内讨论以及组间相互评价。
劳动组织和工作人员
按10人/组划分,按软件开发角色分类完成项目。
工作成果
项目开发成果
考核评价
40%知识+40%技能+20%态度
能力
要求
1.图结构的存储及遍历。
2.图结构的应用。
表1-8项目6查找技术
教学
内容
项目概述
建议学时:
8
学习型工作任务的数目:
4
项目的任务
任务1在线性表里查找X;
任务2在顺序表里查找X的算法实现;
任务3二叉排序数的查找;
任务4散列表的查找。
教学目标
知识目标:
1.了解查找的相关概念;
2.折半查找的算法实现;
3.二叉排序树;
4.散列表查找技术。
技能目标:
1.查找技术的实现。
2.查找的操作过程。
3.散列表的设计与实现。
态度目标:
1.培养良好的算法理解与表达能力、判断推理能力、信息技术应用能力、人际沟通与合作能力。
2.培养学生自我学习、自我提高、分析和解决问题的能力。
项目的教学实施
采用教师引导学生完成任务一和二;其它任务分组实现,并实现组间评价。
项目教学内容
1.通过项目引出相关的知识点;分析项目中的实现过程。
2.分组讨论实现不同的项目。
3.汇总项目实现时遇到的问题。
4.使用知识点设计其它项目。
工作对象、工具
C++
工作方法
分组完成项目并组内讨论以及组间相互评价。
劳动组织和工作人员
按10人/组划分,按软件开发角色分类完成项目。
工作成果
项目开发成果
考核评价
40%知识+40%技能+20%态度
能力
要求
1.查找技术的实现。
2.查找的操作过程。
3.散列表的设计与实现。
表1-9项目7排序技术
教学
内容
项目概述
建议学时:
8
学习型工作任务的数目:
3
项目的任务
任务1牌游戏实现;
任务2荷兰国旗问题;
任务3螺钉与螺母问题。
教学目标
知识目标:
1.了解排序技术的基本概念;
2.插入排序;
3.交换排序;
4.选择排序;
5.归并排序。
技能目标:
1.能实现排序算法。
2.能写出排序过程。
3.排序算法的比较与改进。
态度目标:
1.通过标准开发过程和规范化的程序设计训练,培养学生细致认真,一丝不苟的工作作风。
2.通过分组协作,培养学生团队合作和与人交流、沟通的能力。
3.通过项目实施中的展示和设计,培养学生表达和展示自我能力的意识。
项目的教学实施
项目驱动的方式;多媒体的教学手段;“教、学、练、做”一体实践。
项目教学内容
1.共同完成牌游戏的算法实现。
2.分析算法实现。
3.组内实现其他项目。
工作对象、工具
C++
工作方法
分组完成项目开发并组内讨论以及组间相互评价。
劳动组织和工作人员
按10人/组划分,按软件开发角色分类完成项目。
工作成果
项目开发文档和项目开发成果。
考核评价
40%知识+40%技能+20%态度
能力
要求
1.能实现排序算法。
2.能写出排序过程。
3.排序算法的比较与改进。
1.5教学方法与手段
1.5.1教学方法
本课程的教学方法打破传统的"提出问题→解释问题→举例说明”的方法,采用“以实践为主线、以应用为目标”,通过完成实际应用程序的方式来教授学生学习程序设计知识。
整个学习是由许多小的教学项目和任务组成。
学生通过“实践→学习→实践→提高”的过程不断提高编程能力,贯彻了“在实践中学习、在学习中实践、理论与实践教学一体化”的思想。
1.5.2教学手段
不断进行教学改革,充分利用现代教育技术、网络技术进行教学,并利用网络多媒体教育进行实践教学。
具体手段如下:
(1)开发适合教学使用的多媒体教学资源库和多媒体教学课件。
多媒体资源库建设主要包括课程网站建设。
内容有课程标准、课程整体设计、课程单元设计、项目活动载体设计、授课教案、多媒体教学课件、习题集、案例集、学生作品等资料。
(2)充分利用学院的校内实训基地,将教学与实训合一,满足学生综合能力培养的需要。
1.6考核与评价
根据我院《软件技术》专业教学标准人才培养的目标要求,本课程为《软件技术》专业核心课程。
在课程实施过程中,将主要内容组织设计为7个项目22个任务。
采用项目为载体,以“教、学、练、做”为一体的教学思路,培养学生的软件开发能力、团队合作精神。
本课程随着知识点不断的延伸,考核与评价采用以下三种形式:
(1)过程考核:
该考核贯穿于整个课程教学中,通过项目完成情况,对学生的知识掌握程度、知识应用能力、技能训练能力、项目开发能力以及态度的端正程度进行评价。
(2)任务成果展示:
通过项目展示使学生之间相互沟通,实现知识和经验的分享,从而考察学生的相互协作情况。
(3)综合项目设计:
全面考察学生技术应用能力、团队合作能力和岗位适应能力。
本课程的成绩评定通过课程考核成绩与职业技能认证成绩两个方面进行综合考核,最后汇总得出本课程的整体成绩。
各项分配比例如表1-10所示。
表1-10课程整体成绩表
考核类型
成绩
权重
课程整体成绩
课程考核成绩
100
0.6
100
职业技能认证
100
0.4
1.6.1课程考核
(1)《数据结构》课程考核按照项目分任务分别考核,各项目依据知识点的难易程度占有不同的权重,课程考核成绩由各项目的任务考核成绩累计得到。
(2)各项目中的每一任务分别从知识、技能、态度三方面进行考核。
项目X成绩=∑(任务Y成绩*任务权重)
其中,X为项目标号,Y为项目X中的任务标号;
对每一任务的考核从三方面进行评价:
1)知识
根据每一任务所涉及的知识点以及在本项目中所占比重,给出相应的权重;学生或教师可根据对知识的掌握情况和程序结果运行的正确性给出相应等级分值。
该部分占每个任务的40%。
掌握程度:
根据能否在任务中正确运用所涉及到的知识点做为考核标准。
运用正确者获得20分,否则为0分;
运行结果:
根据能否实现任务要求完成的功能做为考核标准。
功能实现者获得20分,否则为0分;
2)技能
技能考核是职业学生考核的重点。
在技能考核过程中,按软件设计中遵循的规范要求学生,并纳入技能考核标准。
技能考核分别从代码编排的规范性以及能否在规定时间内完成任务设计做为考核该项技能掌握的标准。
该部分占每个任务的40%。
代码编排规则:
根据代码编排规范,符合要求者得20分,否则为0分;
规定时间内完成设计任务:
根据能否在规定要求的时间内完成设计任务做为考核标准。
完成者获得20分,否则为0分。
3)态度
根据学生对待工作的态度给予公正、客观地评价。
该部分占每个任务的20%。
态度端正程度:
对待任务认真负责、具有创新意识和不怕困难的态度,获得20分,否则为0分。
课程考核成绩表如表1-11所示。
(3)实施过程性考核,可对每一任务的考核方式通过项目实际操作、计算机模拟、卷面等多种方式考核;考核形式可采取自评、互评、教师评等多种形式综合进行。
(4)成绩标准
优秀:
80分-100分;
合格:
60分(含60分);
不合格:
60分以下。
表1-11课程考核成绩表
项目名称
成绩
权重
项目成绩
项目成绩权重
课程考核成绩
项目一数据结构概述
知识
100
0.4
100
0.1
100
技能
100
0.4
态度
100
0.2
项目二线性表
知识
100
0.4
100
0.2
技能
100
0.4
态度
100
0.2
项目三特殊线性表
知识
100
0.4
100
0.2
技能
100
0.4
态度
100
0.2
项目四树结构
知识
100
0.4
100
0.1
技能
100
0.4
态度
100
0.2
项目五图结构
知识
100
0.4
100
0.1
技能
100
0.4
态度
100
0.2
项目六查找技术
知识
100
0.4
100
0.1
技能
100
0.4
态度
100
0.2
项目七排序技术
知识
100
0.4
100
0.2
技能
100
0.4
态度
100
0.2
1.6.2职业技能认证
本课程在学习结束后,应获得职业技能认证。
根据软件技术专业教学计划的安排,职业技能认证安排在第五学期的1~8周进行。
学生可根据自己对知识、技能的掌握情况,选择获取职业技能认证的方式。
获得职业技能认证的途径有以下三种:
(1)参加我院组织的《数据结构》职业技能认证考试,以“考试+项目成果”形式考核,按综合成绩的考核结果获得相应等级的“黄河水利职业技术学院精湛技能证书”。
其中:
考试成绩由笔试成绩和项目成绩两部分组成。
考试成绩=笔试成绩*50%+项目成绩*50%
项目成果成绩是根据学生对项目的分析、设计、编码、文档、答辩情况综合评定。
项目成果成绩采用百分制评定。
结合“考试+项目成果”两部分成绩,评定学生可获得的“黄河水利职业技术学院精湛技能证书”等级。
其等级标准如下:
初级:
设计期间态度比较认真,能够掌握大部分基本技能和基础知识,完成了设计的主要任务,达到技能规定的基本要求,能够完成设计文档,内容基本正确,考试成绩合格,具备了初步解决实际问题的能力。
中级:
设计期间态度比较认真,能够掌握绝大部分基本技能和基础知识,设计思路基本清晰,能完成大部分的设计任务,达到技能规定的主要要求,设计