Main page | Study Branches/Specializations | Groups of Courses | All Courses | Roles                Instructions

A course is the basic teaching unit, it's design as a medium for a student to acquire comprehensive knowledge and skills indispensable in the given field. A course guarantor is responsible for the factual content of the course.
For each course, there is a department responsible for the course organisation. A person responsible for timetabling for a given department sets a time schedule of teaching and for each class, s/he assigns an instructor and/or an examiner.
Expected time consumption of the course is expressed by a course attribute extent of teaching. For example, extent = 2 +2 indicates two teaching hours of lectures and two teaching hours of seminar (lab) per week.
At the end of each semester, the course instructor has to evaluate the extent to which a student has acquired the expected knowledge and skills. The type of this evaluation is indicated by the attribute completion. So, a course can be completed by just an assessment ('pouze zápočet'), by a graded assessment ('klasifikovaný zápočet'), or by just an examination ('pouze zkouška') or by an assessment and examination ('zápočet a zkouška') .
The difficulty of a given course is evaluated by the amount of ECTS credits.
The course is in session (cf. teaching is going on) during a semester. Each course is offered either in the winter ('zimní') or summer ('letní') semester of an academic year. Exceptionally, a course might be offered in both semesters.
The subject matter of a course is described in various texts.

BIK-GRA Graph Algorithms Extent of teaching: 13KP+4KC
Instructor: Completion: Z,ZK
Department: 18101 Credits: 5 Semester: L

Annotation:
Students get an overview of typical usages of graph models in computing. They learn algorithmic methods of solution of graph problems, using the programming techniques presented in the BI-EFA module. They understand algorithms for the key application domains of graph theory (flows in networks, heuristic search, approximation of complex problems, matching problems). Students get basic competence in computer science background: they understand Turing machine models and issues of NP-completeness and NP-hardness.

Lecture syllabus:
1. Graph models, graphs, isomorphism. Degree, connectedness, components, digraphs.
2. Strong connectedness, acyclic graphs, graph representation and traversal. Depth-first traversal, topologic sort, strong components.
3. Euler graphs, dominating and independent sets, graph coloring, distance. Trees, spanning trees, circuits, minimal spanning trees.
4. Shortest paths, algorithms for 1 ? n shortest paths. Algorithms for 1 ? n shortest paths, planarity.
5. Flows in networks, maximum flow algorithm. Cheapest circulation, matchings, assignment problem.
6. Problem state space, heuristic search. Turing machines.
7. Complexity classes, NP-complete problems. Approximation algorithms.

Seminar syllabus:
1. Induction, recursion, recurrence. Trees and their computer representation, tree traversals. Graph properties (isomorfism, connectedness, components, node degrees). Strong connectedness, decomposition into strong components, topological sort. Computer graph representations and traversals. Eulerian trail, Chinese postman problem, semestral work selection. Independence, dominance, chromatic number, cyclomatic number.
2. Trees, spanning trees and minimal spanning trees. Shortest paths. Shortest paths, planarity, semestral work (consultation). Flows in networks, circulations, matchings. Heuristic search algorithms. Turing machines.

Literature:
1. Kolář, J. ''Theoretical Computer Science''. Praha: ČVUT, 1998. ISBN 80-01-01788-5.
3. Cormen, T. H., Leiserson, C. E., Rivest, R. L. ''Introduction to Algorithms''. The MIT Press, 2001. ISBN 0262032937.
4. Sedgewick, R. ''Algorithms in Java, Part 5: Graph Algorithms (3rd Edition)''. Addison-Wesley Professional, 2003. ISBN 0201361213.

Requirements:
We assume a working knowledge of basic abstract data types, its efficient implementation and application to solve graph problems. Students are assumed to have a passive knowledge of basic proof techniques used in mathematics (proof by induction, by contradiction, constructive) and apart from being able to design a new or modify an existing algorithm, they should be able to analyse its complexity.

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-FIP/
https://courses.fit.cvut.cz/BI-GRA/
Opozdicům:
Dvojici předmětů EFA + GRA lze uznat, jestliže student úspěšně absolvuje dvojici předmětů AG1 + AG2. Student o to může požádat na studijním oddělení.
Student, kterému chybí předmět GRA si musí zapsat předmět AG2 a podrobit se rozdílové zkoušce.
Opakujícím studentům, kterým byl uznán předmět GRA, si musí zapsat předmět AG2 a požádat u uznání zápočtu.

The course is also part of the following Study plans:
Study Plan Study Branch/Specialization Role Recommended semester
BIK-WSI-SI.2015 Web and Software Engineering V 4
BIK-SPOL.2015 Unspecified Branch/Specialisation of Study VO 4
BIK-BIT.2015 Computer Security and Information technology V 4
BIK-BIT.2020 Computer Security and Information technology V 4


Page updated 26. 4. 2024, semester: Z/2020-1, L/2021-2, L/2019-20, L/2022-3, Z/2019-20, L/2020-1, L/2023-4, Z/2022-3, Z/2021-2, Z/2023-4, Z/2024-5, Send comments to the content presented here to Administrator of study plans Design and implementation: J. Novák, I. Halaška