NETB208 Структури от данни
Анотация:
This course is intended for students in the third semester in the bachelor program Networking Technologies. Students who attend the course must be already familiar with procedural and object-oriented programming with the programming language C++. The purpose of the course is to cover the fundamental topics of data structures, and to give the link to their application in the algorithms that apply them. The course explains the design of the data structures, gives the tools to perform their analysis, and provides the working examples that show how they are implemented. Main part of the curriculum is the implementation of the data structures that are covered in the topics.
The tools used during the course are a Linux-based OS, GCC compile collection, and programming language C++. The annotation of the source code is performed using the tool for documentation generator Doxigen. The usage of MS Windows and any IDE is not allowed during the course.
The course is composed by two review topics and twelve main topics that are split into a lecture part and computer labs part.
Преподавател(и):
доц. Ласко Ласков д-р
Описание на курса:
Компетенции:
Understand and be able to implement the basic and intermediate complexity data structures.
Предварителни изисквания:
Computer programming, programming in C++, object-oriented programming, discrete mathematics.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Analysis of algorithms.
- Arrays, linked lists and recursion.
- Vectors, lists and sequences. Abstract data types.
- Stacks, queues and deques.
- Trees and tree traversal algorithms.
- Binary trees.
- Priority queues.
- Heaps and adaptive priority queues.
- Maps and hash tables.
- Dictionaries.
- Binary search trees and AVL trees.
- (2, 4) trees and red-black trees.
Литература по темите:
Goodrich M. T., R. Tamassia, D. M. Mount (2011). Data Structures and Algorithms in C++, (2nd ed.), Wiley, ISBN: 978-0-470-38327-8.
Cormen, T. H., C. E. Leiserson, R. L. Rivest, and C. Stein, (2009). Introduction to Algorithms (3rd ed.). The MIT Press, ISBN-13: 978-0262033848, ISBN-10: 9780262033848.
Sedgewick, R. (1997) Algorithms in C: Parts 1-4, Fundamentals, Data Structures, Sorting, and Searching (3rd ed.). Addison-Wesley Longman Publishing Co., Inc., USA, ISBN-13: 978-0201314526, ISBN-10: 0201314525.
Средства за оценяване:
Three theoretical tests, three practical exams, three homework assignments, and a course project.