Learn mathematical techniques for reasoning about quantities that are discrete rather than continuous. Encounter graphs, algorithms, and other areas of math that are widely applicable in computer science.
1.1.1. | Partial Order |
2.2.1. | Boolean Functions | |
2.2.2. | Boolean Functions And Logical Operations | |
2.2.3. | Disjunctive Normal Forms | |
2.2.4. | Principal Disjunctive Normal Forms | |
2.2.5. | Conjunctive Normal Forms | |
2.2.6. | Principal Conjunctive Normal Forms | |
2.2.7. | Boolean Polynomials |
2.3.1. | Truth-Preserving Boolean Functions | |
2.3.2. | Self-Dual Boolean Functions | |
2.3.3. | Monotonic Boolean Functions | |
2.3.4. | Affine Boolean Functions | |
2.3.5. | Functionally Complete Sets | |
2.3.6. | Post's Functional Completeness Theorem |
2.4.1. | Introduction to Logic Circuits | |
2.4.2. | Simplifying Logic Circuits | |
2.4.3. | Logic Gates and Combinational Circuits | |
2.4.4. | Simplifying Combinational Circuits | |
2.4.5. | Simplifying Logical Expressions Using Karnaugh Maps | |
2.4.6. | Simplifying Logical Expressions Using Quine-McCluskey Algorithm |
3.5.1. | Binary Integers | |
3.5.2. | Adding and Subtracting Binary Integers | |
3.5.3. | Multiplying and Dividing Binary Integers | |
3.5.4. | Binary Fractions | |
3.5.5. | Hexadecimal Integers | |
3.5.6. | Converting Between Binary and Hexadecimal | |
3.5.7. | Integers in Arbitrary Bases | |
3.5.8. | Floating Point Fractions in Arbitrary Bases |
3.6.1. | Fermat's Little Theorem | |
3.6.2. | Euler's Totient Function | |
3.6.3. | Euler's Theorem |
3.7.1. | The Caesar Cipher | |
3.7.2. | The Linear Cipher | |
3.7.3. | Diffie-Hellman Shared Secret Exchange Protocol | |
3.7.4. | RSA Cryptosystem | |
3.7.5. | Rabin Cryptosystem | |
3.7.6. | ElGamal Cryptosystem |
4.8.1. | Probability Mass Functions of Discrete Random Variables | |
4.8.2. | Cumulative Distribution Functions for Discrete Random Variables | |
4.8.3. | Expected Values of Discrete Random Variables |
4.9.1. | The Discrete Uniform Distribution | |
4.9.2. | Mean and Variance of the Discrete Uniform Distribution | |
4.9.3. | Modeling With Discrete Uniform Distributions |
4.10.1. | The Bernoulli Distribution | |
4.10.2. | Mean and Variance of the Bernoulli Distribution |
4.11.1. | The Binomial Distribution | |
4.11.2. | Modeling With the Binomial Distribution |
4.12.1. | The Poisson Distribution | |
4.12.2. | Modeling With the Poisson Distribution |
4.13.1. | The Geometric Distribution | |
4.13.2. | Modeling With the Geometric Distribution |
4.14.1. | The Negative Binomial Distribution | |
4.14.2. | Modeling With the Negative Binomial Distribution |
4.15.1. | The Hypergeometric Distribution | |
4.15.2. | Modeling With the Hypergeometric Distribution |
4.16.1. | Bayes' Theorem | |
4.16.2. | Extending Bayes' Theorem | |
4.16.3. | The Law of Total Probability | |
4.16.4. | Extending the Law of Total Probability |
4.17.1. | Permutations With Repetition | |
4.17.2. | Applications of the Multinomial Theorem | |
4.17.3. | K Permutations of N With Repetition | |
4.17.4. | Combinations With Repetition | |
4.17.5. | The Inclusion-Exclusion Principle | |
4.17.6. | Counting Integer Solutions of a Constrained Equation | |
4.17.7. | Partitions |
5.18.1. | Infinite Series and Partial Sums | |
5.18.2. | Finding the Sum of an Infinite Geometric Series | |
5.18.3. | Writing an Infinite Geometric Series in Sigma Notation | |
5.18.4. | Finding the Sum of an Infinite Geometric Series Expressed in Sigma Notation |
5.19.1. | Introduction to the Generalized Binomial Theorem | |
5.19.2. | Working With the Generalized Binomial Theorem | |
5.19.3. | Determining the Range of Validity for a Generalized Binomial Expansion | |
5.19.4. | Approximating Numerical Values Using the Generalized Binomial Theorem |
5.20.1. | The Multinomial Theorem | |
5.20.2. | Calculating the Number of Terms in a Multinomial Expansion |
5.21.1. | Introduction to Recurrence Relations | |
5.21.2. | First-Order Recurrence Relations | |
5.21.3. | First-Order Recurrence Relations With Polynomial Forcing | |
5.21.4. | First-Order Recurrence Relations With Exponential Forcing | |
5.21.5. | First-Order Recurrence Relations With Mixed Forcing | |
5.21.6. | Second-Order Homogeneous Recurrence Relations: Characteristic Equations with Distinct Real Roots | |
5.21.7. | Second-Order Homogeneous Recurrence Relations: Characteristic Equations with Repeated Roots | |
5.21.8. | Second-Order Homogeneous Recurrence Relations: Characteristic Equations with Complex Roots | |
5.21.9. | Second-Order Recurrence Relations with Polynomial Forcing | |
5.21.10. | Second-Order Recurrence Relations with Exponential Forcing |
5.22.1. | Generating Functions | |
5.22.2. | Generating Functions of Homogeneous Recurrence Relations | |
5.22.3. | Determining the General Term of a Sequence Given Its Generating Function | |
5.22.4. | Generating Functions for Inhomogeneous Recurrence Relations | |
5.22.5. | Solving Homogeneous Recurrence Relations Using Generating Functions | |
5.22.6. | Solving Inhomogeneous Recurrence Relations Using Generating Functions |
7.23.1. | Introduction to Graphs | |
7.23.2. | Edges and Vertices | |
7.23.3. | The Degree of a Vertex | |
7.23.4. | The Handshaking Lemma | |
7.23.5. | Subgraphs |
7.24.1. | Weighted Graphs | |
7.24.2. | Simple Graphs | |
7.24.3. | Directed Graphs | |
7.24.4. | Directed Acyclic Graphs | |
7.24.5. | Complete Graphs | |
7.24.6. | Regular Graphs | |
7.24.7. | Platonic Graphs | |
7.24.8. | Graph Complements | |
7.24.9. | Bipartite Graphs | |
7.24.10. | Complete Bipartite Graphs | |
7.24.11. | Isomorphic Graphs | |
7.24.12. | Graph Automorphisms | |
7.24.13. | Planar Graphs |
7.25.1. | Incidence Matrices | |
7.25.2. | Adjacency Matrices | |
7.25.3. | Distance Matrices |
7.26.1. | Paths, Walks, and Trails | |
7.26.2. | Cycles in Graphs | |
7.26.3. | Girth | |
7.26.4. | Connected Graphs | |
7.26.5. | Connected Components | |
7.26.6. | Cut Edges | |
7.26.7. | Cut Vertices |
7.27.1. | Breadth-First Search | |
7.27.2. | Depth-First Search |
7.28.1. | Trees and Forests | |
7.28.2. | Counting Trees | |
7.28.3. | Spanning Trees | |
7.28.4. | Counting Spanning Trees | |
7.28.5. | Minimum Spanning Trees |
8.29.1. | Kruskal's Algorithm | |
8.29.2. | Prim's Algorithm | |
8.29.3. | Applying Prim's Algorithm to a Distance Matrix |
8.30.1. | Shortest Paths in Unweighted Graphs | |
8.30.2. | Shortest Paths in Weighted Graphs | |
8.30.3. | The Bellman-Ford Algorithm | |
8.30.4. | Dijkstra's Algorithm | |
8.30.5. | A* Search |
8.31.1. | Eulerian Graphs | |
8.31.2. | Semi-Eulerian Graphs | |
8.31.3. | Fleury's Algorithm | |
8.31.4. | The Chinese Postman Algorithm Applied to Eulerian Graphs | |
8.31.5. | The Chinese Postman Algorithm Applied to Semi-Eulerian Graphs |
8.32.1. | Hamiltonian Cycles and Tours | |
8.32.2. | Hamiltonian Graphs | |
8.32.3. | The Traveling Salesperson Problem | |
8.32.4. | Computing Upper Bounds for the Traveling Salesperson Problem | |
8.32.5. | Computing Lower Bounds for the Traveling Salesperson Problem | |
8.32.6. | The Nearest Neighbor Algorithm |
8.33.1. | Modeling a Project Using an Activity Network | |
8.33.2. | Using Dummy Activities in Activity Networks | |
8.33.3. | Applying Forward and Backward Passes to Activity Networks | |
8.33.4. | Identifying Critical Activities in Activity Networks | |
8.33.5. | Determining Floats in Activity Networks | |
8.33.6. | Constructing Gantt Charts | |
8.33.7. | Using Gantt Charts to Solve Problems | |
8.33.8. | Scheduling Diagrams |
8.34.1. | Matchings in Bipartite Graphs | |
8.34.2. | The Maximum Matching Algorithm | |
8.34.3. | Matchings in General Graphs |
8.35.1. | Introduction to Network Flows | |
8.35.2. | Cuts in Networks | |
8.35.3. | Finding Initial Flows Through Networks | |
8.35.4. | Increasing Flows Through Networks | |
8.35.5. | Menger's Theorem | |
8.35.6. | The Maximum-Flow Minimum-Cut Theorem | |
8.35.7. | Increasing Flows Through Networks With Multiple Sources/Sinks |
9.36.1. | Mealy Machines | |
9.36.2. | Moore Machines |
9.37.1. | Deterministic Finite Automata | |
9.37.2. | Nondeterministic Finite Automata | |
9.37.3. | Finite Automata With Epsilon Transitions | |
9.37.4. | Regular Expressions | |
9.37.5. | Context-Free Grammars | |
9.37.6. | Introduction to Turing Machines | |
9.37.7. | Nondeterministic Turing Machines | |
9.37.8. | Undecidable Problems |
9.38.1. | Defining Big-O Notation | |
9.38.2. | Properties of Big-O Notation | |
9.38.3. | Defining Big-Omega Notation | |
9.38.4. | Properties of Big-Omega Notation | |
9.38.5. | Defining Theta Notation | |
9.38.6. | Properties Theta Notation | |
9.38.7. | Time Complexity of Mathematical Procedures | |
9.38.8. | P vs. NP Problems |