Advanced algorithms
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
AE4M33PAL | Z,ZK | 6 | 2P+2C | English |
- Relations:
- During a review of study plans, the course A4M33PAL can be substituted for the course AE4M33PAL.
- It is not possible to register for the course AE4M33PAL if the student is concurrently registered for or has already completed the course A4M33PAL (mutually exclusive courses).
- It is not possible to register for the course AE4M33PAL if the student is concurrently registered for or has already completed the course B4M33PAL (mutually exclusive courses).
- It is not possible to register for the course AE4M33PAL if the student is concurrently registered for or has previously completed the course A4M33PAL (mutually exclusive courses).
- It is not possible to register for the course AE4M33PAL if the student is concurrently registered for or has previously completed the course B4M33PAL (mutually exclusive courses).
- Course guarantor:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Cybernetics
- Synopsis:
-
Basic graph algorithms and graph representation. Application of formal languages theory in computer science - syntax analysis and pattern matching. Selected topics of floating-point arithmetic.
- Requirements:
-
Individual implementation of data types and algorithms discussed in the lectures is an important part of the exercises. Thus, capabilty of programmatic manipulation of linked data structures in some of the prevalent languages (C/C++/Java/...) is indispensable.
- Syllabus of lectures:
-
Formal and informal analysis of the memory and time complexity of all data sructures and algorithms taught is an integral part of the course, it is not expicitely listed under particular topics.
1. Asymptotic complexity of algorithms. Graphs, their properties and memory representation.
2. Graph searching applications: Shortest path algorithms: weighted, unweighted, directed, undirected.
3. Directed graphs: Acyclic, topologically ordered, rooted trees. Algorithms and implementation.
4. Text searching and pattern matching. Algorithms KMP, BM, Karp-Rabin and their variants.
5. Pattern matching automata. Factor, prefix and suffix automata.
6. Text compression, Huffman coding, LZW algorithm.
7. Design and implementation of lexical analyzer.
8. LL and LL(1) grammars, parsing tables.
9. Syntax analysis algorithm., top-down parsing.
10. Floating-point representation of numbers, formats, operations, NaN, infinity. Propagation of rounding errors.
11. (Pseudo)random number generators, periodicity, distribution.
12. Estimation of rounding errors in numerical algorithms. Roots of functions, matrix inversion, system of linear equations
13. (Reserve) Exact calculation of mathematical function values, compatibility across architectures, languages and compilers.
- Syllabus of tutorials:
-
Exercises and related homeworks are devoted mostly to implementation of lecture topics. Consequently, the themes of each exercise formally correspond to those of respective lecture.
- Study Objective:
-
Fundamental overview and skills related to the topics of the course.
- Study materials:
-
R. Sedgewick: Algoritmy v C, SoftPress 2003,
T. H. Cormen, C. E. Leiserson, R. L. Rievest, C. Stein: Introduction to Algorithms, 2nd ed., MIT Press, 2001
B. Melichar: Jazyky a překlady, Praha , ČVUT 1996
J. E. Hopcroft, R. Motwani, J. D. Ullman: Introduction to Automata Theory, Languages, and Computation, 2nd ed., Addison-Wesley, 2001
- Note:
- Further information:
- http://cw.felk.cvut.cz/doku.php/courses/ae4m33pal/start
- No time-table has been prepared for this course
- The course is a part of the following study plans: