Course Title: Discrete Structures
Course Description: This course introduces students to the fundamental concepts
of discrete mathematics that are used in computer science. Topics include logic,
sets, functions, algorithms, counting principles, relations, graphs, and trees.
Course Objectives: By the end of this course, students will be able to:
1. Understand and apply the principles of logic and set theory.
2. Construct and analyze mathematical proofs.
3. Use combinatorial techniques to solve counting problems.
4. Work with relations and functions.
5. Understand and apply graph theory and tree structures in computer science.
Prerequisites:
Mathematics for the Modern World
Course Outline:
1: Introduction to Discrete Mathematics
Course overview
Importance of discrete mathematics in computer science
Basic terminology and definitions
2: Logic and Propositional Calculus
Propositions and logical connectives
Truth tables
Logical equivalence and implications
Quantifiers and predicate logic
Methods of proof: direct, indirect, contradiction, and contraposition
3: Set Theory
Basic definitions and notation
Operations on sets: union, intersection, difference, and complement
Venn diagrams
Cartesian products
Power sets
Set identities and proofs involving sets
4: Functions and Relations
Functions: definitions, types (one-to-one, onto, bijective), and properties
Composition of functions and inverse functions
Relations: definitions, properties (reflexive, symmetric, transitive), and types
Equivalence relations and partitions
Partial orderings
5: Algorithms and Complexity
Introduction to algorithms and their importance
Pseudocode for algorithm representation
Big-O notation and time complexity a00nalysis
Basic algorithm examples and analysis
6: Counting and Combinatorics
Basic counting principles: addition and multiplication rules
Permutations and combinations
Binomial theorem and Pascal’s triangle
Applications of combinatorics in computing
7: Graph Theory
Graphs: definitions, types (simple, directed, weighted), and properties
Representation of graphs: adjacency matrix and list
Graph traversal algorithms: Breadth-First Search (BFS) and Depth-First Search
(DFS)
Shortest path algorithms: Dijkstra’s and Bellman-Ford
Applications of graph theory in computer science
8: Trees
Definitions and properties of trees
Binary trees and tree traversal algorithms (preorder, inorder, postorder)
Binary search trees and their operations
Spanning trees and minimum spanning tree algorithms (Kruskal's and Prim's)
Applications of trees in computer science