Elements of Discrete Mathematics
Code  Completion  Credits  Range  Language 

BIEZDM  Z,ZK  5  2P+2C  English 
 Lecturer:
 Josef Kolář (guarantor)
 Tutor:
 Josef Kolář (guarantor)
 Supervisor:
 Department of Applied Mathematics
 Synopsis:

Students get both a mathematical sound background, but also practical calculation skills in the area of combinatorics, value estimation and formula approximation, and tools for solving recurrent equations.
 Requirements:

Fundamentals of calculus and algorithmics.
 Syllabus of lectures:

1. Sets, cardinality, countable sets, power set of a finite set and its cardinality.
2. Power set of the set of natural numbers  uncountable set.
3. Exclusion and inclusion, its use to determine cardinality.
4. „Pigeonhole principle“, number of structures, i.e., number of maps, relations, trees (on finite structures).
5. Function estimates (factorial, binomial coefficients, ...).
6. Relation, equivalence relation (examples of equivalence of connected/strongly connected components).
7. Relation matrix, relational databases.
8. Mathematical induction as a tool for determining the number of finite objects.
9. Mathematical induction as a tool for proving algorithm correctness.
10. Mathematical induction as a tool for solving recursive problems.
11. Structural induction.
12. Runtime complexity of recursive algorithms  solving recursive equations with constant coefficients, homogeneous equations.
13. Solving nonhomogeneous recursive equations with constant coefficients.
 Syllabus of tutorials:

1. Cardinality calculations.
2. Countability, uncountability.
3. Inclusion and exclusion principle.
4. Numbers of structures over finite sets.
5. Asymptotic function behavior.
6. Relations and directed graphs.
7. Basic proofs by induction.
8. Application of proofs by induction in combinatorics.
9. Application of proofs by induction in programming.
10. Induction and recursive algorithms.
11. Uses of induction in formal language theory.
12. Runtime complexity calculations.
13. Solving linear recurrent equations.
 Study Objective:

The aim of the module is to learn students methods of combinatoric, asymptotic mathematic and mathematical induction as a basic tool for proofing correctness or deriving complexity of algorithms.
 Study materials:

1. Johnsonbaugh, R. ''Discrete Mathematics (4th Edition)''. Prentice Hall, 1998. ISBN 0130805505.
2. Rosen, K. H. ''Discrete Mathematics and its Applications''. McGrawHill, 1998. ISBN 0072899050.
3. Cormen, T. H., Leiserson, C. E., Rivest, R. L. ''Introduction to Algorithms''. The MIT Press, 2001. ISBN 0262032937.
 Note:
 Further information:
 https://courses.fit.cvut.cz/BIEZDM/
 Timetable for winter semester 2019/2020:

06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Mon Tue Fri Thu Fri  Timetable for summer semester 2019/2020:
 Timetable is not available yet
 The course is a part of the following study plans:

 Bc. Branch Security and Information Technology, Presented in English, Version 2015 to 2020 (compulsory course in the program)
 Bc. Branch WSI, Specialization Software Engineering, Presented in English, Version 20152020 (compulsory course in the program)
 Bc. Branch Computer Science, Presented in English, Version 2015 to 2020 (compulsory course in the program)