Course detail
Algorithms (in English)
FIT-IALeAcad. year: 2024/2025
Overview of fundamental data structures and their exploitation. Principles of dynamic memory allocation. Specification of abstract data types (ADT). Specification and implementation of ADT's: lists, stack and its exploitation, queue, searching table. Algorithms upon the binary trees. Searching: sequential, in the ordered and in not ordered array, searching with the guard (sentinel), binary search, search tree, balanced trees (AVL). Searching in hash-tables. Sorting (ordering), principles, sorting without the moving of items, sorting with multiple keys. Most common methods of sorting: Select-sort, Bubble-sort, Heap-sort, Insert-sort a jeho varianty, Shell-sort, recursive and non-recursive notation of the Quick sort, Merge-sort, List-merge-sort, Radix-sort.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Offered to foreign students
Entry knowledge
- Basic knowledge of the programming in procedural programming language (knowledge of programming language C will be essential for solving homework problems).
- Knowledge of secondary school level mathematics.
Rules for evaluation and completion of the course
- Two evaluated home assignments - 25 points
- Mid-term written examination - 14 point
- Final written examination - 51 points
- Elaboration of short tasks in lectures - 10 points
- Accreditation - a minimum of 15 points per semester is required for credit to be awarded.
Aims
- Student will acquaint with the methods of proving of correctness of programs and with construction of proved programms and learn their significance.
- Student will learn the fundamentals of algorithm coplexity and their intention.
- He/she acquaints with basic abstract data types and to commands its implementation and exploitation.
- Student will learn the principles of dynamic memory allocation.
- He/she learns and commands recursive and non recursive notation of basic algorithms.
- Student overrules the implementation and analysis of most used algorithms for searching and sorting.
- Student learns terminology in Czech ane English language
- Student learns to participate on the small project as a member of small team
- Student learns to present and defend the results of the small project
Study aids
Prerequisites and corequisites
- recommended prerequisite
Introduction to Programming Systems
Basic literature
Recommended reading
Baase, S.: Computer Algorithms - Introduction to Design and Analysis. Addison Wesley, 1998
Cormen, T.H., Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms, Cambridge: MIT Press, 2009
Horowitz, Sahni: Fundamentals of Data Structures in C, University Press, 2010
Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 1968
Kruse, R.L.: Data Structures and Program Design. Prentice- Hall,Inc. 1984
Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1976
Elearning
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Overview of data structures, introduction to methods for evaluating the time complexity of algorithms.
- Abstract data type and its specification.
- Specification, implementation and exploitation of ADT list.
- Specification, implementation and exploitation of ADT stack, queue. Numeration of expressions with the use of stack.
- ADT search table.
- Binary tree, algorithms upon the binary tree.
- Searching, sequential, in the array, binary search.
- Binary search trees, AVL tree.
- Hashing-tables.
- Ordering (sorting), principles, without movement, multiple key.
- Most common methods of sorting of arrays.
Project
Teacher / Lecturer
Syllabus
- Two home assignments
Elearning