Course details

# Algorithms

IAL Acad. year 2020/2021 Winter semester 5 credits

Overview of fundamental data structures and their exploitation. Specification of abstract data types (ADT). Specification and implementation of ADT's: lists, stack and its exploitation, queue, 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 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. Graph algorithms. Dynamic programming. Proving of the correctness of programs, construction of proved programs.

5 ECTS credits represent approximately 125-150 hours of study workload:

• 39 hours of lectures
• 26 hours for two home assignments
• 35 hours of project work
• 20 hours of continual study
• 30 hours of study for the midterm and final examination

Guarantor

Deputy Guarantor

Language of instruction

Czech

Completion

Credit+Examination (written)

Time span

39 hrs lectures, 13 hrs projects

Assessment points

51 exam, 14 mid-term test, 35 projects

Department

Lecturer

Instructor

Subject specific learning outcomes and competences

• The student will acquaint with the methods of proving of the correctness of programs and with the construction of proved programs and learn their significance.
• The student will learn the fundamentals of algorithm complexity and their intention.
• He/she acquaints with basic abstract data types and to commands its implementation and exploitation.
• 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.

Generic learning outcomes and competences

• The student learns terminology in Czech and English language
• The student learns to participate on the small project as a member of a small team
• Student learns to present and defend the results of the small project

Learning objectives

The student will learn the fundamentals of algorithm complexity and will be able to use gained knowledge in the design of programmes. Student acquaints with basic abstract data types and to command its implementation and exploitation. The student learns and commands recursive and non-recursive notation of basic algorithms and will be able to use gained knowledge in the design of programmes. Student understands the implementation and analysis of most of the used algorithms for searching and sorting. The student will learn the selected graph algorithms, the dynamic programming and the basic concepts of construction of proved programs (Dijkstra).

Why is the course taught

Almost all computer programs need to store data during their execution. Students will make familiar with common data structures and understand their properties. It allows them later to choose the right data structure for a particular purpose. Students also learn algorithms associated with discussed data structures and will be able to analyse and evaluate them using the asymptotic time complexity method.

Prerequisite kwnowledge and skills

• Basic knowledge of the programming in C programming language
• Knowledge of secondary school level mathematics

Study literature

• Honzík, J., Hruška, T., Máčel, M.: Vybrané kapitoly z programovacích technik, Ed.stř.VUT Brno,1991.
• Mareš, M., Valla, T.: Průvodce labyrintem algoritmů. CZ.NIC, 2017. ISBN 978-80-88168-19-5. http://pruvodce.ucw.cz/

Fundamental literature

• Knuth, D.: The Art of Computer programming, Vol.1,2,3. Addison Wesley, 1968
• Wirth, N.: Alorithms+Data Structures=Programs, Prentice Hall, 1976
• Horovitz, Sahni: Fundamentals of Data Structures.
• Amsbury, W: Data Structures: From Arrays to Priority Cormen, T. H., Leiserson, Ch.E., Rivest, R.L.: Introduction to Algorithms.
• Aho A.V., Hoppcroft J.E., Ullman J.D.: Data Structures and Algorithms.
• Kruse, R.L.: Data Structures and Program Design. Prentice- Hall,Inc. 1984
• Baase, S.: Computer Algorithms - Introduction to Design and Analysis. Addison Wesley, 1998

Syllabus of lectures

1. Overview of data structures. Abstract data type and its specification.
2. Specification, implementation and exploitation of the ADT list.
3. Specification, implementation and exploitation of ADT stack, queue. Numeration of expressions with the use of the 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 - beginning.
11. Most common methods of sorting of arrays - continuation, sorting of files.
12. Recursion, backtracking algorithms.
13. Proving the programs, construction of proved programs.

Syllabus - others, projects and individual work of students

• Two home assignments
• Project with a mini-defence for a team of students.

Progress assessment

• Home assignments - 20 points
• Mid-term written examination - 14 point
• Evaluated project with the defence - 15 points
• Final written examination - 51 points; The minimal number of points which can be obtained from the final written examination is 24. Otherwise, no points will be assigned to a student.

Controlled instruction

In case of illness or another serious obstacle, the student should inform the faculty about that and subsequently provide the evidence of such an obstacle. Then, it can be taken into account within evaluation:

• The student can ask the responsible teacher to extend the time for the home assignment.
• If a student cannot attend the mid-term exam, (s)he can ask to derive points from the evaluation of his/her first attempt of the final exam. To enter the final exam in this case, at least 14 points from home assignments and project are required.
• If a student cannot attend the defense of the project and the other team members agree with that (s)he can earn the same points from the project defence as for present members.

Exam prerequisites

• to earn min. 20 points within the semester

Plagiarism and not allowed cooperation will cause that involved students are not classified and disciplinary action can be initiated.

Schedule

DayTypeWeeksRoomStartEndLect.grpGroupsInfo
Monexam2021-02-01 A112 A113 A218 C228 D0206 D0207 D105 E112 G108 G202 L314 M103 M104 M105 N103 N104 N105 N203 N204 N205 O204 09:0010:50 2BIA 2BIB 3BIT 2. oprava
Tuelecturelectures E104 E105 E112 15:0017:50 2BIB 3BIT xx
Tuelecture2., 3., 4., 5., 6., 7., 8., 10., 11., 12., 13. of lectures E112v 15:0017:50YT, ZP
Tueexam2021-01-19 A112 A113 D0206 D0207 D105 E104 E105 E112 M104 M105 N103 N104 N105 N203 N204 N205 17:0018:50 2BIA 2BIB 3BIT 1. oprava
Tueexam2021-01-19 A112 A113 D0206 D0207 D105 E104 E105 E112 M104 M105 N103 N104 N105 N203 N204 N205 19:0020:50 2BIA 2BIB 3BIT 1. oprava
Wedother2021-01-27 C236 10:0015:50Reklamace zkoušky
Wedother2021-02-10 C236 10:0015:50Reklamace zkoušky
Wedlecturelectures E104 E105 E112 14:0016:50 2BIA 3BIT xx
Wedlecture2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13. of lectures E112v 14:0016:50YT, ZP
Thuother2021-01-14 C236 10:0015:50Reklamace zkoušky
Thuexam2021-01-07 C236 12:0018:50Schůzka dozory IAL
Thuexam2021-01-07 A218 C228 G108 L314 M103 M104 M105 N103 N104 N105 N203 N204 N205 O204 13:0014:50 2BIA 2BIB 3BIT řádná
Thuexam2021-01-07 A112 A113 A218 C228 D0206 D0207 D105 E104 E105 E112 G108 G202 L314 M103 M104 M105 N103 N104 N105 N203 N204 N205 O204 15:0016:50 2BIA 2BIB 3BIT řádná
Thuexam2021-01-07 A112 A113 D0206 D0207 D105 E112 G202 M103 M104 M105 N103 N104 N105 N205 O204 17:0018:50 2BIA 2BIB 3BIT řádná
Frilecture2020-10-02 E104 E105 E112 18:0020:50 2BIB 3BIT xx

Course inclusion in study plans

• Programme BIT, 2nd year of study, Compulsory
• Programme IT-BC-3, field BIT, 2nd year of study, Compulsory