Course detail

Algorithms

FEKT-BPC-ALGAcad. year: 2021/2022

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 exploition, queue, set, array, searching table, graph, binary tree.
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.
Ordering (sorting), principles, sorting without the moving of items, sorting with multiple keys. Most common methods of sorting: Select-sort, Bubble-sort, Heap-sort, Insert-sort and its variants, Shell-sort, recursive and non-recursive notation of the Quick sort, Merge-sort,List-merge-sort, Radix-sort.
Recursion and backtrack algorithms. Searching the patterns in the text. Proving of correctness of programs, construction of proved programs.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Student acquaints with the methods of analysing and designing simple computer algorithms. Student will introduced to the fundamental concepts of programming languages. Student gets up how to write programs in high programming languages. Student gets up how to use EBNF to describe programming language syntax. Student acquires basic English terminology of programming, syntax, and semantics of programming language.

Prerequisites

The subject knowledge on the secondary school level is required.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Requirements for completion of a course are specified by a regulation issued by the lecturer responsible for the course and updated for every.

Course curriculum

1. Overview of data structures. Abstract data type and its specification.
2. Specification, implementation and exploitation of ADT list.
3. Specification, implementation and exploitation of ADT stack, queue. Numeration of expressions with the use of stack.
4. ADT array, set, graph, binary tree.
5. Algorithms upon the binary tree.
6. Searching, sequential, in the array, binary search.
7. Binary search trees, AVL tree.
8. Hashing-tables.
9. Ordering (sorting), principles, without movement, multiple key.
10. Most common methods of sorting of arrays, sorting of files.
11. Recursion, backtracking algorithms.
12. Proving the programs, costruction of proved programmes.

Work placements

Not applicable.

Aims

To get acquainted with the methods of proving correctness of programs and with construction of proved programs. To learn the fundamentals of algorithm coplexity. To get acquainted with basic abstract data types and to command their implementation and exploition. To learn the principles of dynamic memory allocation. To learn and command recursive and non-recursive notation of basic algorithms. To overrule the implementation and analysis of the most used algorithms for searching and sorting.

Specification of controlled education, way of implementation and compensation for absences

The content and forms of instruction in the evaluated course are specified by a regulation issued by the lecturer responsible for the course and updated for every academic year.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Aho A.V., Hoppcroft J.E., Ullman J.D.: Data Structures and Algorithms.
Amsbury, W: Data Structures: From Arrays to Priority Queues.
Baase, S.: Computer Algorithms - Introduction to Design and Analysis. Addison Wesley, 1998
Cormen, T.H. ,Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms.
Honzík, J.,Hruška, T.,Máčel, M.: Vybrané kapitoly z programovacích technik, Ed.stř.VUT Brno,1991.
Horovitz, Sahni: Fundamentals of Data Structures.
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

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme BPC-AMT Bachelor's 0 year of study, winter semester, elective

  • Programme BPC-AUD Bachelor's

    specialization AUDB-TECH , 0 year of study, winter semester, elective
    specialization AUDB-ZVUK , 0 year of study, winter semester, elective

  • Programme BPC-ECT Bachelor's 0 year of study, winter semester, elective
  • Programme BPC-IBE Bachelor's 0 year of study, winter semester, elective
  • Programme BPC-MET Bachelor's 0 year of study, winter semester, elective
  • Programme BPC-SEE Bachelor's 0 year of study, winter semester, elective
  • Programme BPC-TLI Bachelor's 0 year of study, winter semester, elective

Type of course unit

 

Lecture

39 hod., optionally

Teacher / Lecturer

Syllabus

Overview of data structures. Abstract data type and its specification.
Specification, implementation and exploition of ADT list.
Specification, implementation and exploition of ADT stack, queue. Numeration of expressions with the use of stack.
ADT array, set, graph, 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, sorting of files.
Recursion, backtracking algorithms.
Proving the programs, construction of proved programs.

Project

13 hod., optionally

Teacher / Lecturer

Syllabus

Home assignments for pairs of students.
A project with a mini-defence for groups of four students.