Mathematical Foundations for Computing

  1. Graph Theory
    1. Introduction to Graphs
      1. Definition of a Graph
        1. Vertices and Edges
          1. Graph Notation
          2. Types of Graphs
            1. Undirected Graphs
              1. Directed Graphs
                1. Simple Graphs
                  1. Multigraphs
                    1. Pseudographs
                      1. Weighted Graphs
                        1. Complete Graphs
                          1. Bipartite Graphs
                          2. Graph Terminology
                            1. Vertices and Edges
                              1. Adjacency and Incidence
                                1. Degree of a Vertex
                                  1. Loops and Multiple Edges
                                    1. Subgraphs
                                      1. Graph Complements
                                    2. Representing Graphs
                                      1. Adjacency Lists
                                        1. Structure and Implementation
                                          1. Space Complexity
                                          2. Adjacency Matrices
                                            1. Matrix Representation
                                              1. Space and Time Trade-offs
                                              2. Incidence Matrices
                                                1. Definition and Properties
                                                2. Edge Lists
                                                  1. Simple Representation
                                                    1. Use Cases
                                                  2. Graph Isomorphism
                                                    1. Definition of Isomorphism
                                                      1. Invariants Under Isomorphism
                                                        1. Testing for Isomorphism
                                                          1. Automorphisms
                                                          2. Connectivity
                                                            1. Paths and Walks
                                                              1. Definitions
                                                                1. Simple Paths
                                                                  1. Path Length
                                                                  2. Cycles and Circuits
                                                                    1. Simple Cycles
                                                                      1. Circuit Properties
                                                                      2. Connectedness in Undirected Graphs
                                                                        1. Connected Graphs
                                                                          1. Distance Between Vertices
                                                                          2. Connected Components
                                                                            1. Definition and Properties
                                                                              1. Finding Connected Components
                                                                              2. Connectivity in Directed Graphs
                                                                                1. Strong Connectivity
                                                                                  1. Weak Connectivity
                                                                                    1. Strongly Connected Components
                                                                                  2. Euler and Hamilton Paths
                                                                                    1. Euler Paths and Circuits
                                                                                      1. Definition and Properties
                                                                                        1. Necessary and Sufficient Conditions
                                                                                          1. Hierholzer's Algorithm
                                                                                          2. Hamilton Paths and Circuits
                                                                                            1. Definition and Properties
                                                                                              1. Existence Criteria
                                                                                                1. Dirac's Theorem
                                                                                                  1. Ore's Theorem
                                                                                                    1. Computational Complexity
                                                                                                  2. Shortest-Path Problems
                                                                                                    1. Single-Source Shortest Paths
                                                                                                      1. Problem Definition
                                                                                                        1. Dijkstra's Algorithm
                                                                                                          1. Bellman-Ford Algorithm
                                                                                                          2. All-Pairs Shortest Paths
                                                                                                            1. Floyd-Warshall Algorithm
                                                                                                              1. Matrix Multiplication Approach
                                                                                                              2. Properties of Shortest Paths
                                                                                                                1. Optimal Substructure
                                                                                                                  1. Triangle Inequality
                                                                                                                2. Trees
                                                                                                                  1. Introduction to Trees
                                                                                                                    1. Definition and Properties
                                                                                                                      1. Tree Characterizations
                                                                                                                      2. Properties of Trees
                                                                                                                        1. Number of Edges
                                                                                                                          1. Unique Paths
                                                                                                                            1. Leaf and Internal Nodes
                                                                                                                            2. Rooted Trees
                                                                                                                              1. Root Selection
                                                                                                                                1. Parent-Child Relationships
                                                                                                                                  1. Siblings and Ancestors
                                                                                                                                    1. Levels and Height
                                                                                                                                      1. Binary Trees
                                                                                                                                      2. Spanning Trees
                                                                                                                                        1. Definition and Properties
                                                                                                                                          1. Number of Spanning Trees
                                                                                                                                          2. Minimum Spanning Trees
                                                                                                                                            1. Problem Definition
                                                                                                                                              1. Prim's Algorithm
                                                                                                                                                1. Kruskal's Algorithm
                                                                                                                                                  1. Cut Property
                                                                                                                                                    1. Cycle Property
                                                                                                                                                  2. Tree Traversal
                                                                                                                                                    1. Depth-First Traversals
                                                                                                                                                      1. Pre-order Traversal
                                                                                                                                                        1. In-order Traversal
                                                                                                                                                          1. Post-order Traversal
                                                                                                                                                          2. Breadth-First Traversal
                                                                                                                                                            1. Level-order Traversal
                                                                                                                                                              1. Queue-based Implementation
                                                                                                                                                              2. Applications of Tree Traversal
                                                                                                                                                                1. Expression Trees
                                                                                                                                                                  1. File System Traversal