Logo ČVUT
Loading...
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2011/2012

Theoretical Computer Science

The course is not on the list Without time-table
Code Completion Credits Range Language
AD7B33TIN Z,ZK 5 14+6s Czech
Lecturer:
Tutor:
Supervisor:
Department of Cybernetics
Synopsis:

The course provides a basic overview of the concepts and tasks of graph theory, focusing primarily on algorithmic questions and solutions to graph problems, effectively using knowledge of programming techniques. The presented graph algorithms include depth-first and breadth-first search, algorithms of Jarnik and Boruvka (minimum spanning tree), Dijsktra (shortest path) or Ford-Fulkerson (maximum flow in networks). Additional important topics covered by the course are the theory of formal languages (finite automata, grammars, Chomsky hierarchy), computability (Turing machines, undecidable problems) and computational complexity (classes P and NP, NP-completeness).

Requirements:

Basic knowledge of programming.

Syllabus of lectures:

1. Theoretical models, undirected graphs, basic properties

2. Directed graphs, strong connectivity, topological sort

3. Graphs representation in memory, depth-first and breadth-first traversals

4. Dominating and independent sets, distance, trees, spanning trees, circles

5. Minimum spanning trees, binary trees, algorithms of Boruvka and Jarnik, Huffman coding

6. Shortest path algorithms, dynamic programming

7. Flows in networks, maximum network flow

8. State space searching, heuristic search

9. Regular languages and finite automata

10. Grammars, Chomsky hierarchy, context-free languages

11. Turing Machines - structure and behavior

12. Generalization of Turing machines, undecidable problems

13. Complexity classes P and NP, NP-completeness

14. Reserved

Syllabus of tutorials:

1. Using basic tools of mathematics (proof, induction, recurrence)

2. Operational complexity of algorithms, calculations with recurrences

3. Undirected graphs - basic properties

4. Graph traversals, decomposition into components

5. Directed graphs - basic properties, depth-first search

6. Decomposition into strong components

7. Dominance, independence, trees

8. Spanning trees, minimum spanning trees

9. Shortest paths

10. Application of dynamic programming

11. Maximal flow in network, heuristic search algorithms

12. Regular languages and finite automata

13. Non-determinism

14. Assessment

Study Objective:

The course aims to give theoretical foundations of computer science and to develop abstract thinking in the design of algorithms. Graphs are used as the basic structure - for their easy conceivability and wide applicability in practical problems. The course can be seen as preparation for lectures, which include advanced topics in theoretical computer science.

Study materials:

1. Cormen, T.H. et al. : Introduction to Algorithms. Cambridge, Mass.: MIT

Press. 1990

Note:
Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Generated on 2012-7-9
For updated information see http://bilakniha.cvut.cz/en/predmet1399806.html