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 | |
1.1.2. | Properties of Elements in Posets | |
1.1.3. | The Pigeonhole Principle |
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 Logical Expressions Using Karnaugh Maps | |
2.4.5. | 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 |
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. | The PMF of the Hypergeometric Distribution | |
4.15.3. | 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. | Sums of Infinite Geometric Series Given 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 |
6.23.1. | Introduction to Graphs | |
6.23.2. | Walks, Paths, and Distances | |
6.23.3. | Walks, Paths, and Distances in Directed Graphs | |
6.23.4. | The Degree of a Vertex | |
6.23.5. | The Handshaking Lemma | |
6.23.6. | Subgraphs |
6.24.1. | Cycles in Graphs | |
6.24.2. | Connected Graphs | |
6.24.3. | Cut Vertices and Cut Edges |
6.25.1. | Directed Acyclic Graphs | |
6.25.2. | Regular Graphs | |
6.25.3. | Platonic Graphs | |
6.25.4. | Planar Graphs |
6.26.1. | Incidence Matrices | |
6.26.2. | Adjacency Matrices | |
6.26.3. | Adjacency Matrices of Directed Graphs | |
6.26.4. | Distance Matrices |
6.27.1. | Trees and Forests | |
6.27.2. | Counting Trees | |
6.27.3. | Spanning Trees | |
6.27.4. | Counting Spanning Trees | |
6.27.5. | Minimum Spanning Trees |
7.28.1. | Breadth-First Search | |
7.28.2. | Depth-First Search | |
7.28.3. | Kahn's Algorithm |
7.29.1. | Kruskal's Algorithm | |
7.29.2. | Prim's Algorithm | |
7.29.3. | Applying Prim's Algorithm to a Distance Matrix |
7.30.1. | Shortest Paths in Unweighted Graphs | |
7.30.2. | Shortest Paths in Weighted Graphs | |
7.30.3. | The Bellman-Ford Algorithm | |
7.30.4. | Dijkstra's Algorithm | |
7.30.5. | A* Search |
7.31.1. | Eulerian Graphs | |
7.31.2. | Fleury's Algorithm | |
7.31.3. | The Chinese Postman Algorithm Applied to Eulerian Graphs | |
7.31.4. | The Chinese Postman Algorithm Applied to Semi-Eulerian Graphs |
7.32.1. | Hamiltonian Cycles and Tours | |
7.32.2. | The Traveling Salesperson Problem | |
7.32.3. | Computing Upper Bounds for the Traveling Salesperson Problem | |
7.32.4. | Computing Lower Bounds for the Traveling Salesperson Problem | |
7.32.5. | The Nearest Neighbor Algorithm |
7.33.1. | Matchings in Bipartite Graphs | |
7.33.2. | The Maximum Matching Algorithm | |
7.33.3. | Matchings in General Graphs |
8.34.1. | Mealy Machines | |
8.34.2. | Moore Machines |
8.35.1. | Deterministic Finite Automata | |
8.35.2. | Extending the Transition Function of a DFA to Strings | |
8.35.3. | Nondeterministic Finite Automata | |
8.35.4. | The Language of Automata | |
8.35.5. | Regular Expressions | |
8.35.6. | Context-Free Grammars | |
8.35.7. | Introduction to Turing Machines | |
8.35.8. | Working With Turing Machines | |
8.35.9. | Nondeterministic Turing Machines |
8.36.1. | Defining Big-O Notation | |
8.36.2. | Defining Big-Omega Notation | |
8.36.3. | Defining Theta Notation |