Course detail

Algorithms (in English)

FIT-IALeAcad. year: 2023/2024

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

English

Number of ECTS credits

5

Mode of study

Not applicable.

Offered to foreign students

Of all faculties

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
  • Elaboration of short tasks in lectures - 10 points
  • Accreditation - a minimum of 15 points per semester is required for credit to be awarded.
  • Final written examination - 51 points

Aims

To become familiar with the basic principles of algorithm complexity. To learn the principles of dynamic memory allocation. To learn about, implement and use basic abstract data types and structures. Learn recursive and non-recursive notations for basic algorithms. Learn to create and analyze search and sort algorithms.

  • The student will understand the basic principles and meaning of complexity of algorithms.
  • The student will become familiar with basic abstract data types and structures and learn how to implement and use them.
  • The student will learn the principles of dynamic memory allocation.
  • Learn recursive and non-recursive notations for basic algorithms.
  • Learn to create and analyze search and sort algorithms.

Study aids

Not applicable.

Prerequisites and corequisites

Basic literature

Not applicable.

Recommended reading

Cormen, T.H., Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms, Cambridge: MIT Press, 2009
Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 1968
Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1976
Horowitz, Sahni: Fundamentals of Data Structures in C, University Press, 2010
Aho A.V., Hoppcroft J.E., Ullman J.D.: Data Structures and Algorithms, Addison Wesley, 1983.
Kruse, R.L.: Data Structures and Program Design. Prentice- Hall,Inc. 1984
Baase, S.: Computer Algorithms - Introduction to Design and Analysis. Addison Wesley, 1998

eLearning

Classification of course in study plans

  • Programme IT-BC-1H Bachelor's

    specialization BCH , any year of study, summer semester, recommended

Type of course unit

 

Lecture

39 hours, optionally

Teacher / Lecturer

Syllabus

  1. Overview of data structures, introduction to methods of evaluating time complexity of algorithms.
  2. Abstract data type and its specification.
  3. Specification, implementation and usage of ADT list.
  4. Specification, implementation and usage of ADT stack, queue. Enumeration of expressions using the stack.
  5. ADT search table.
  6. Binary tree, algorithms over binary tree.
  7. Search, sequential in array, binary search.
  8. Binary search trees, AVL tree.
  9. Searching in hash tables.
  10. Sorting, principles, no movement, multiple key.
  11. Common sorting methods for arrays I
  12. Common sorting methods for arrays II.

Project

13 hours, compulsory

Teacher / Lecturer

Syllabus

  • Two home assignments

eLearning