Lecturer(s)
|
-
Schlecht Miroslav, doc. Ing. Ph.D.
|
Course content
|
- The evaluation of algorithms, time and memory complexity, the robustness of algorithms. - The accuracy of numerical calculations, Horner scheme, singular cases. - Common redundant, time-consuming operations in the code and their elimination. - Memory management. Memory allocation, deallocation, garbage collector, memory leaks. Too large data sets (they do not fit the memory). - Matrix and vector operations (Strassen formula, dot and cross product). Linear and non-linear systems of equations (including overspecified systems). - Cache in the current computers and its efficient use (bricking technique) - Introduction to parallel and GPU programming. Space division, median. - Recursion and its elimination. Binary vs. interpolation search. - Reduction of problem space dimension (space-filling curves, PCA). Data sampling, Soboly sequences. - Graph representations, Dijkstra and Floyd-Warshall algorithms. Graph matching - Hungarian marriage. State machine, pruning. - Practical importance of compression, Freeman code. Checksums (LUHN, CRC, Adler32, MD5).
|
Learning activities and teaching methods
|
Interactive lecture, One-to-One tutorial, Seminar classes, Individual study
- Individual project (40)
- 40 hours per semester
- Contact hours
- 26 hours per semester
- Preparation for an examination (30-60)
- 30 hours per semester
|
prerequisite |
---|
Knowledge |
---|
Students are supposed to be interested in the topic and have the fundamental programming knowledge. |
learning outcomes |
---|
Upon completion of the course, students should have knowledge about common problems of the current software such as: ineffective use of computational power, not necessarily large memory requirements or unstable calculation; should master the basic principles of designing the code to avoid these problems and gain the experience in the design of various algorithms (some of those are from the ACM Contest). |
teaching methods |
---|
Interactive lecture |
Individual study |
One-to-One tutorial |
Seminar classes |
assessment methods |
---|
Written exam |
Seminar work |
Recommended literature
|
-
McConnell, Jeffrey. Analysis of algorithms: an active learning approach. Jones & Bartlett Publishers, 2007. ISBN 978-0763707828.
-
McConnell, Steve. Dokonalý kód : umění programování a techniky tvorby software. Vyd. 1. Brno : Computer Press, 2005. ISBN 80-251-0849-X.
-
Sedgewick, Robert. Algorithms in Java. pt. 5, Graph algorithms. 3rd ed. Boston : Addison-Wesley, 2004. ISBN 0-201-36121-3.
-
Wróblewski, Piotr. Algoritmy : datové struktury a programovací techniky. Vyd. 1. Brno : Computer Press, 2004. ISBN 80-251-0343-9.
|