《数据结构》课程是软件技术专业的一门必修的专业基础课。这门课程的主要特点是实践性很强,不仅要学习基本理论知识,更要注重上机实践,通过上机实践验证算法的正确性,掌握和巩固所学理论知识。设立本门课程的目的是通过学习,使学生学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步了解对算法的时间分析和空间分析技术。另一方面,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力,为后续课程,特别是软件课程打下坚实的知识基础。
数据结构的应用水平是区分软件开发、设计人员水平高低的重要标志之一,缺乏数据结构和算法的深厚功底,很难设计出高水平的具有专业水准的应用程序,因此学生对这门课程知识点的掌握、应用和拓展,将对毕业后编程能力的发展有着直接的影响;世界上公认的规模最大、水平最高的国际大学生程序设计竞赛ACM竞赛测试的就是参赛选手灵活使用数据结构和算法分析问题和解决问题的能力,我省自2005年起也举行了一年一次的ACM大学生程序设计竞赛;计算机软件资格考试中的设计师、程序员考试、计算机研究生、专升本的专业考试,很大部分考的都是数据结构的知识。所有的这些说明了在各种软件大规模使用的今天,数据结构和算法在计算机科学特别是软件开发科学中的核心地位。
课程采用最流行、最受欢迎的任务驱动式方法讲解,趣味引导、图文并茂,代码实现严格按面向对象语言(Java或C#)编程规范编写,学用一致:
典型任务:用与生活紧密相连、生动直观的典型任务创设学习情境,趣味引导
脉络清晰:课程内容置于由学习情境建构的以求解问题为主线的行动体系之中
大量图解:每一算法都配有详尽的图解,形象直观、语言通俗易懂
注重实现:代码规范、实现完整,每一单元都给出了详细的实现代码及运行结果
分层训练:按照验证性、训练性、设计性、创新性应用四个层次给出实践任务,引导读者分层次训练。
(一)总目标
《数据结构》课程以培养学生的数据抽象能力和复杂程序设计的能力为总目标。通过本课程的学习,学生可以学会分析研究计算机加工数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的运算,并初步掌握算法的时间分析和空间分析技术;另一方面,本课程的学习过程也是工程化能力培养的过程,要求学生按软件开发过程分析问题,设计算法,并编写结构清楚、正确易读,符合软件工程规范的程序。
(二)分目标
1.知识目标
通过本课程的学习,学生应比较系统地从数据结构的逻辑结构、存储结构和运算三个方面去掌握线性表、栈、队列、串、数组、树、图等常用的数据结构;掌握在各种常用的数据结构上实现得排序和查找算法,同时对算法的时间和空间复杂性有一定得分析能力;针对简单的应用问题,应能选择合适得数据结构及设计有效得算法解决,并为后续课程的学习打好基础。
2.能力目标
(1)具备用面向对象的思想进行数据结构和算法设计的能力。
(2)具备选择合适的数据结构和方法进行问题求解,开发高质量软件的能力。
3.素质目标
(1)提高数据结构的逻辑思维能力。
(2)养成良好的编程习惯。
《数据结构》是软件技术专业的一门专业基础课。课程的前导课程是《Java面向对象分析》或《C#面向对象编程》,本课程在后续软件开发类课程中起着非常重要的作用,其知识的应用将贯穿于本专业的两大主流方向Java方向和.net方向的所有课程。
雷军环、吴名星主编《数据结构(Java语言版)》清华大学出版社,2015年11月,ISBN:978-7-302-41482-9
雷军环、邓文达、刘震主编《数据结构(C#语言版)》清华大学出版社,2009年2月,ISBN:978-7-302-19047-9