The goal of the course is to explain the basic techniques of discrete mathematics which are used in computer science.
1. Set Theory and Combinatorics (1.1 Set algebra, Functions and Relations, Mathematical Induction, Elementary counting methods, Permutations and Combinations, The Inclusion-Exclusion Principle.)
2. Probability Theory (2.1 Probability Space, Conditional Probability, Independence and Bayes’ Theorem)
3. Recurrence Relations (3.1 Solving problems by iteration, First and second order recurrence relations, Reccurrences in Algorithms)
4. Graph Theory (4.1 Introduction to graphs, Basic graph terminology, Adjacency Matrices, Paths and connectivity, Connected components, Shortest path problems in weighted graphs, Dijkstra’s Algorithm. Trees and spanning trees, Breadth-first search, Kruskal’s and Prim’s Algorithms for a minimal spanning tree, Euler and Hamilton paths, Fleury’s Algorithm for constructing Euler circuits, Estimates for Hamilton circuits)
5. Matrices and Linear Transformations (5.1 Linear equations and elementary row operations, Elementary matrices and Gaussian elimination, Echelon matrices, Eigenvectors and eigenvalues)
By the end of the course, students should be able to do the following:
Curriculum explorer: Click here
SCQF Level: 7
Credits: 15