Course Description
The course introduces the basic concepts of discrete mathematics such as introductory logic, proofs, sets, relations, functions, counting and probability, with an emphasis on applications in information technology.
Course Objectives
The main objective of the course is to introduce basic concepts of discrete mathematics, understand the concepts of graphs, functions, relations and number theory respectively and explore applications of discrete mathematics in information technology.
Course Contents
Propositional Logic: Propositional Logic, Propositional Equivalences, Rule of inferences, Valid Arguments
Predicate Logics: Predicates and Quantifiers, Negation of Quantified Statements, Proof of quantified statements, Nested Quantifiers, Rules of Inferences, Translating English Sentence to predicate logic expressions.
Proof Methods: Basic Terminologies, Proof Methods (Direct Proof, Indirect Proof, Proof by Contradiction, Proof By Contraposition, Exhaustive Proofs and Proof by Cases), Mistakes in Proof
Sets: Sets and Subsets, Power Set, Cartesian Product, Set Operations, Venn Diagram, Inclusion-Exclusion Principle, Computer Representation of Sets.
Relations: Relations and their Properties, N-ary Relations with Applications, Representing Relations, Closure of Relations, Equivalence Relations, Partial Ordering
Functions: Basic Concept, Injective and Bijective Functions, Inverse and Composite Functions, Graph of Functions, Functions for Computer Science (Ceiling Function, Floor Function, Boolean Function, Exponential Function)
Induction: Mathematical Induction, Strong Induction and Well Ordering, Induction in General
Recursive Definitions and Structural Induction, Recursive Algorithms, Proving Correctness of Recursive Algorithms
Integers: Integers and Division, Primes and Greatest Common Divisor, Extended Euclidean Algorithm, Integers and Algorithms
Applications of Number Theory (Linear Congruences, Chinese Remainder Theorem, Computer Arithmetic with Large Integers)
Matrices: Zero-One Matrices, Boolean Matrix Operations
Counting: Basics of Counting, Pigeonhole Principle, Permutations and Combinations, Two Element Subsets, Counting Subsets of a Set, Binomial Coefficients, Generalized Permutations and Combinations, Generating Permutations and Combinations with examples.
Discrete Probability: Introduction to Discrete Probability, Probability Theory, Probability Calculation in Hashing, Expected Value and Variance, Randomized Algorithms
Advanced Counting: Recurrence Relations, Solving Recurrence Relations (Homogeneous and Non-Homogeneous equations)
Graphs: Graphs Basics, Graph Types, Graph Models, Graph Representation, Graph Isomorphism, Connectivity in Graphs, Euler and Hamiltonian Path and Circuits, Matching Theory, Shortest Path Algorithm (Dijkstra’s Algorithm), Travelling Salesman Problem, Graph Coloring
Trees: Introduction and Applications, Tree Traversals, Spanning Trees, Minimum Spanning Trees (Kruskal’s Algorithm)
The laboratory work consists of implementing the algorithms and concepts discussed in the class.
Student should implement problems with following concepts;
• Set Operations, relations and functions
• Primality Testing, Number Theory Algorithms, and Operations on Integers
• Counting and Some Recursive Algorithms
• Predicate Logic
• Algorithms for Tree, Graphs
Text / Reference Books:
1. Kenneth H. Rosen, Discrete mathematics and its applications, Seventh Edition McGraw Hill Publication, 2012.
2. Bernard Kolman, Robert Busby, Sharon C. Ross, Discrete Mathematical Structures, Sixth Edition Pearson Publications, 2015
3. Joe L Mott, Abraham Kandel, Theodore P Baker, Discrete Mathematics for Computer Scientists and Mathematicians, Prentice Hall of India, Second Edition, 2008