UNIT 1: Propositional Logic & Proof Strategies (15 Hrs)
UNIT 2: Number Theory & Boolean Functions (15 Hrs)
UNIT 3: Graph Theory Fundamentals (15 Hrs)
- Graphs and Graph Models
- Terminology & Special Types of Graphs
- Representation of Graphs
- Graph Isomorphism
- Connectivity
- Euler and Hamiltonian Paths
UNIT 4: Trees & Advanced Graph Concepts (15 Hrs)
- Introduction to Trees
- Tree Traversal
- Spanning Trees
- Minimum Spanning Trees
- Planar Graphs
- Graph Colouring
Practical/Lab Work (2 Credits, 60 Hours)
Logic and Proofs
- Truth Table Generator: Implement a program to generate truth tables for given propositional formulas
- Propositional Logic Solver: Implement a SAT solver for propositional logic formulas
Number Theory
- Prime Number Checker: Write a program to determine if a given number is prime using different algorithms (e.g., brute force, sieve of Eratosthenes)
- GCD and LCM Calculator: Implement functions to calculate the greatest common divisor (GCD) and least common multiple (LCM) of two numbers
- Modular Arithmetic Calculator: Create a program to perform arithmetic operations in modular arithmetic
- Number Theory Problems: Solve various number theory problems, such as finding prime factorization, modular exponentiation, and solving linear congruences
Boolean Functions
- Boolean Function Evaluator: Develop a program to evaluate Boolean functions given input values
- Logic Gate Simulator: Build a simulator for basic logic gates (AND, OR, NOT, XOR)
- Circuit Minimizer: Implement a simple circuit minimization algorithm (e.g., Karnaugh maps)
- Boolean Algebra Simplification: Implement algebraic simplification techniques for Boolean expressions
Graph Theory
- Graph Representation: Implement both adjacency matrix and adjacency list representations of graphs
- Find the degree of a vertex in a graph
- Find a path between two vertices in a graph
- Graph Traversal: Implement depth-first search (DFS) and breadth-first search (BFS) algorithms
- Connectivity Checker: Determine if a graph is connected or disconnected
- Shortest Path Finder: Implement Dijkstra’s algorithm to find the shortest path between two nodes
- Eulerian and Hamiltonian Path Finder: Check if a given graph has an Eulerian or Hamiltonian path
- Graph Isomorphism Checker: Develop a program to check if two graphs are isomorphic
Trees
- Tree Traversal: Implement pre-order, in-order, and post-order traversals for binary trees
- Traverse a binary tree using pre-order, in-order, or post-order traversal
- Minimum Spanning Tree: Implement Kruskal’s or Prim’s algorithm to find a minimum spanning tree
Advanced Graph Concepts
- Planarity Checker: Determine if a given graph is planar
- Graph Coloring: Implement a greedy algorithm for graph coloring
RECOMMENDED TEXTBOOKS
- Rosen, K. H. (2023). Discrete mathematics and its applications (9th ed., ISBN: 978-1260424718). New York, NY: McGraw-Hill.
- Data Structures in C, Yashwant Kanetkar