Discrete Mathematics

  1. Algorithms and Complexity
    1. Algorithm Design Techniques
      1. Greedy Algorithms
        1. Description and Characteristics
          1. Examples of Greedy Algorithms
            1. Activity Selection Problem
              1. Kruskal's Algorithm for Minimum Spanning Tree
                1. Huffman Coding
                2. Proof of Correctness
                  1. Greedy Choice Property
                    1. Optimal Substructure
                    2. Applications and Limitations
                    3. Divide and Conquer
                      1. Description and Characteristics
                        1. Examples of Divide and Conquer Algorithms
                          1. Merge Sort
                            1. Quick Sort
                            2. Designing Divide and Conquer Algorithms
                              1. Evaluating Performance
                              2. Dynamic Programming
                                1. Description and Characteristics
                                  1. Examples of Dynamic Programming Algorithms
                                    1. Fibonacci Sequence
                                      1. Longest Common Subsequence
                                        1. Knapsack Problem
                                        2. Identifying Overlapping Subproblems
                                          1. Memoization vs Tabulation
                                            1. Applications and Optimizations
                                          2. Computational Complexity
                                            1. Complexity Classes
                                              1. Definitions and Differences
                                                1. P (Polynomial Time)
                                                  1. NP (Non-deterministic Polynomial Time)
                                                    1. NP-complete
                                                      1. NP-hard
                                                      2. Famous Problems
                                                        1. Traveling Salesman Problem
                                                          1. Knapsack Problem
                                                            1. Boolean Satisfiability Problem (SAT)
                                                            2. Reductions and Completeness
                                                              1. Concept of Reduction
                                                                1. Cook-Levin Theorem
                                                              2. Analysis of Algorithms
                                                                1. Time Complexity
                                                                  1. Asymptotic Notation (Big O, Theta, Omega)
                                                                    1. Analyzing Loops, Conditionals, and Recursive Relations
                                                                    2. Space Complexity
                                                                      1. Concepts and Importance
                                                                        1. Examples with Algorithms
                                                                        2. Trade-offs between Time and Space
                                                                        3. Advanced Topics
                                                                          1. Approximation Algorithms
                                                                            1. Definition and Purpose
                                                                              1. Approximation Ratio
                                                                                1. Examples
                                                                                2. Randomized Algorithms
                                                                                  1. Types (Las Vegas vs Monte Carlo)
                                                                                    1. Applications and Use Cases
                                                                                    2. Heuristics
                                                                                      1. Definition and Role in Problem Solving
                                                                                        1. Common Heuristic Techniques
                                                                                    3. Cryptography
                                                                                      1. Classical Cryptography
                                                                                        1. Historical Background
                                                                                          1. Symmetric Key Cryptography
                                                                                            1. Caesar Cipher
                                                                                              1. Vigenère Cipher
                                                                                              2. Concepts of Encryption and Decryption
                                                                                              3. Public Key Cryptography
                                                                                                1. Principles and Innovations
                                                                                                  1. RSA Algorithm
                                                                                                    1. Key Generation
                                                                                                      1. Encryption and Decryption Process
                                                                                                        1. Mathematical Foundation
                                                                                                        2. Digital Signatures
                                                                                                          1. Definition and Importance
                                                                                                            1. Algorithms and Protocols
                                                                                                          2. Hash Functions
                                                                                                            1. Definition and Properties
                                                                                                              1. Cryptographic vs Non-Cryptographic Hash Functions
                                                                                                                1. Applications
                                                                                                                  1. Data Integrity
                                                                                                                    1. Cryptographic Protocols
                                                                                                                    2. Common Hash Functions
                                                                                                                      1. MD5
                                                                                                                        1. SHA Family
                                                                                                                      2. Modern Cryptographic Techniques
                                                                                                                        1. Elliptic Curve Cryptography
                                                                                                                          1. Basics and Advantages
                                                                                                                          2. Quantum Cryptography
                                                                                                                            1. Potential and Challenges
                                                                                                                            2. Blockchain and Cryptography
                                                                                                                              1. Role of Cryptography in Blockchain Technologies