澳大利亚新南威尔士大学数据结构算法课程的目标是加深学生对数据结构和算法的理解,以及如何在软件系统的设计中有效地运用相关知识。这是一门重要的课程,涵盖了一系列核心数据结构和算法,这些将在后面的课程中用到。学生可以在讲座、辅导、实验练习、测验和作业中探索这些想法。课程结束时,学生应该可以掌握一系列有用的数据结构和编程技术,并准备好继续进行进一步的专业学习。
一、关键主题
本课程介绍了一系列基本数据类型的结构、分析和使用,以及进行操作的核心算法。关键主题涉及:
递归;算法分析;抽象数据类型;二分搜索法树;平衡搜索树;图表;排序算法;堆;散列法。
二、课程目标
本课程的目的是让学生像计算机科学家一样思考。计算机科学家不只是试图理解计算机的结构和行为,而是更关心理解软件系统(以及软件和运行软件的硬件之间的交互)。此外,与其他科学家不同,计算机科学家经常构建他们研究的对象。
本课程将探讨创建、分析和理解软件的方法。最终,学生应该能够回答这个问题,“这个软件好吗?”,并且能够提供合理的理由来证明你的答案。
本课程是C程序设计入门课程的后续课程,涵盖了相关课程中没有涉及到的C编程语言的其他方面,并且还介绍了一些之前没有(详细)涉及到的编程工具。不过,本课程的重点在于所使用的数据结构和算法背后的思想和抽象。这门课涉及许多对该领域未来研究至关重要的概念。无论学生是在学习计算机科学、软件工程、生物信息学、计算机工程,甚至是计算机领域之外的学科,了解一系列算法和数据结构以及如何使用将使学生在未来成为更有效的计算机问题解决者。
三、学习成果
完成本课程后,学生将能够:
1、熟悉基本的数据结构和算法;
2、分析算法的性能特征;
3、测量程序的性能行为;
4、为给定的问题选择/开发适当的数据结构;
5、选择/开发适当的算法来操作选定的数据结构;
6、对解决给定问题的数据结构和算法的有效性进行推理;
7、将一组数据结构和算法打包成抽象数据类型;
8、用C语言开发和维护包含数千行代码的软件系统。
最终,澳大利亚新南威尔士大学数据结构算法课程将通过Labs、Quizzes、Assignment 1、Assignment 2,以及Final Exam对同学的学习成果进行评估。