Lecturer(s)


Beránek Ladislav, doc. Ing. CSc.

Geyer Jakub, Mgr.

Course content

1. Basic algorithmic structures 2. Methods of project of the algorithm 3. Algorithmic structures a. For the work with sequences b. For the work with matrices 4. Data structures a. Compact and linked list b. Stack, queue, heap 5. Algorithms for internal selection a. Direct methods b. Quicksort, heapsort 6. Sorting algorithms a. Bucket sort b. Radix sort 7. Skiplist 8. AVL + RedBlack tree 9. Btrees 10. Hashing table

Learning activities and teaching methods

Monologic (reading, lecture, briefing), Demonstration
 Class attendance
 56 hours per semester
 Preparation for exam
 28 hours per semester
 Semestral paper
 14 hours per semester
 Preparation for credit
 14 hours per semester
 Preparation for classes
 28 hours per semester

Learning outcomes

The students become acquainted in this course with the basic data structures and their usage for effective algorithm design. Students will master the basic algorithmic constructions and procedures for algorithm development. The overview of basic abstract data type (field, list, tree, dictionary) and often used algorithms aimed above all on data organization (sorting, searching) is in practice the main part of this course. Also binary search trees, AVL trees, RB trees, B trees and hash tables will be introduced.
The graduate of the course will understand basic principles of algorithms; he will be able to create simple algorithms and to use them when creating his proper programmes.

Prerequisites

Introductory course  knowledge of high school mathematics

Assessment methods and criteria

Combined exam, Interim evaluation
Working out a seminar work (design of program in any programming language with a chosen algorithm), fulfillment of final written test.

Recommended literature


Goodrich, M. T.  Tamassia, R.:. Data Structures and Algorithms in Java. John Wiley & Sons, 2001.

Lafore, R. Data Structures & Algorithms in Java. Sams, 2003.. Sams, 2003.

Mareš, M., Valla, T. PRŮVODCE LABYRINTEM ALGORITMŮ. Praha, 2017. ISBN 788088168225.

MCMILLAN, M. Data Structures and Algorithms Using C#. New York: Cambridge University Press, 2007.. Cambridge: University Press, 2007. ISBN 0521547652.

SEDGEWICK, R., WAYNE, K.D. Algorithms. AddisonWesley Professiona, 2015. ISBN 9780134384689.

Wróblewski, P. Algoritmy. Praha: Computer Press, 2015. ISBN 9788025141267.
