Fundamentals of Informatics
The goal of the course is to acquire/refresh basic knowledge on the mathematical basis of Informatics, such as Logic and Discrete Mathematics, as well as of the important notions and concepts of Algorithmics, Computability, and Complexity theory.
The course gives an introduction into the main theoretical topics in Computer Science. Contents: - Mathematical Basis - Propositional Logic - Discrete Mathematics - Algorithmics - Asymptotic Runtime Analysis - Divide-and-Conquer - Finite Automata - Computability - Turing-Machines and Church Thesis - Undecidable Problems - Complexity - P, NP, NP-Complete Complexity classes
The course will contain lectures and practical sessions.
There will be a written final exam covering the material of the course. It will contain theory questions alone with the practical exercises similar to homework assignments.
- D. Velleman, How to Prove It: A Structured Approach (2nd Ed), Cambridge University Press 1994, 2006 (Required)
- Michael Sipser, Introduction to the Theory of Computation; MIT Press, Cambridge, USA, second edition, 2006 (Required)
- Thomas H. Cormen, Clifford Stein, Charles E. Leiserson, Robert L. Rivest. "Introduction to Algorithms". MIT Press, Cambridge, USA, 3rd edition, 2009. (Recommended)