Discrete Mathematics

Course Code: UGCOA22J603

Credits: 6 (Theory: 4, Practical: 2)

Type: Major

UNIT 1: Propositional Logic & Proof Strategies (15 Hrs)


UNIT 2: Number Theory & Boolean Functions (15 Hrs)


UNIT 3: Graph Theory Fundamentals (15 Hrs)


UNIT 4: Trees & Advanced Graph Concepts (15 Hrs)



Practical/Lab Work (2 Credits, 60 Hours)

Logic and Proofs

  1. Truth Table Generator: Implement a program to generate truth tables for given propositional formulas
  2. Propositional Logic Solver: Implement a SAT solver for propositional logic formulas

Number Theory

  1. Prime Number Checker: Write a program to determine if a given number is prime using different algorithms (e.g., brute force, sieve of Eratosthenes)
  2. GCD and LCM Calculator: Implement functions to calculate the greatest common divisor (GCD) and least common multiple (LCM) of two numbers
  3. Modular Arithmetic Calculator: Create a program to perform arithmetic operations in modular arithmetic
  4. Number Theory Problems: Solve various number theory problems, such as finding prime factorization, modular exponentiation, and solving linear congruences

Boolean Functions

  1. Boolean Function Evaluator: Develop a program to evaluate Boolean functions given input values
  2. Logic Gate Simulator: Build a simulator for basic logic gates (AND, OR, NOT, XOR)
  3. Circuit Minimizer: Implement a simple circuit minimization algorithm (e.g., Karnaugh maps)
  4. Boolean Algebra Simplification: Implement algebraic simplification techniques for Boolean expressions

Graph Theory

  1. Graph Representation: Implement both adjacency matrix and adjacency list representations of graphs
  2. Find the degree of a vertex in a graph
  3. Find a path between two vertices in a graph
  4. Graph Traversal: Implement depth-first search (DFS) and breadth-first search (BFS) algorithms
  5. Connectivity Checker: Determine if a graph is connected or disconnected
  6. Shortest Path Finder: Implement Dijkstra’s algorithm to find the shortest path between two nodes
  7. Eulerian and Hamiltonian Path Finder: Check if a given graph has an Eulerian or Hamiltonian path
  8. Graph Isomorphism Checker: Develop a program to check if two graphs are isomorphic

Trees

  1. Tree Traversal: Implement pre-order, in-order, and post-order traversals for binary trees
  2. Traverse a binary tree using pre-order, in-order, or post-order traversal
  3. Minimum Spanning Tree: Implement Kruskal’s or Prim’s algorithm to find a minimum spanning tree

Advanced Graph Concepts

  1. Planarity Checker: Determine if a given graph is planar
  2. Graph Coloring: Implement a greedy algorithm for graph coloring

  1. Rosen, K. H. (2023). Discrete mathematics and its applications (9th ed., ISBN: 978-1260424718). New York, NY: McGraw-Hill.
  2. Data Structures in C, Yashwant Kanetkar