Skip to content
lectern.tv
MIT18.200Mathematicsundergraduate· 2025

Principles of Discrete Applied Mathematics

Peter Shor

Combinatorial and algebraic methods in applied mathematics, covering generating functions, probabilistic method, extremal graph theory, linear programming duality, and error-correcting codes.

Start Lecture 120 lectures · 25h total
Syllabus progress0 of 20 watched
MIT 18.200: Principles of Discrete Applied Mathematics

Syllabus

20
Lecture 1· 1:13:47

Pigeonhole Principle

This lecture introduces the pigeonhole principle, demonstrating its applications and briefly covering foundational concepts in probability and sample spaces within discrete mathematics.

Lecture 2· 1:10:58

Independence and Conditioning

This session elaborates on event independence, conditional probability, Bayes' rule, random variables, and the crucial concept of linearity of expectation in probabilistic analysis.

Lecture 3· 1:19:29

Inclusion-Exclusion

The lecture explains and proves the principle of inclusion-exclusion, applying it to the hat check problem and discussing the coupon collector's problem and independence of random variables.

Lecture 4· 1:18:26

Counting

This lecture explores combinatorial counting techniques, focusing on binomial coefficients, bijections, and dual counting methods, demonstrating how Catalan numbers enumerate Dyck paths and various tree structures.

Lecture 5· 1:11:45

More Counting and Generating Functions

The Cayley tree theorem is proved through double counting. The lecture then introduces generating functions, detailing their basic structure and methods for combination, such as addition and multiplication.

Lecture 6· 1:19:54

More on Generating Functions

This lecture demonstrates the application of generating functions to solve linear recurrence equations, deriving an expression for Fibonacci numbers, and introduces two-variable generating functions.

Lecture 7· 1:11:49

Generating Functions for Catalan Numbers

This lecture focuses on deriving the generating function for Catalan numbers and subsequently using it to obtain their explicit formula, a key result in combinatorial mathematics.

Lecture 8· 1:20:53

Tail Bounds

The lecture covers tail bounds, specifically Markov's and Chebyshev's inequalities, to estimate the probability of a random variable deviating from its mean, proving the weak law of large numbers.

Lecture 9· 55:18

Chernoff Bounds

This lecture introduces and proves Chernoff's theorem, a powerful tail bound for sums of independent random variables, offering tighter estimations than previous bounds.

Lecture 10· 1:18:50

Modular Arithmetic

This lecture covers modular arithmetic, including finding modular inverses using the Euclidean algorithm, the extended Euclidean algorithm, and applying the Chinese Remainder Theorem.

Lecture 11· 1:15:24

Basic Group Theory

This lecture introduces fundamental concepts of group theory, defining groups, subgroups, and cosets, and culminates in the proof of Lagrange's theorem and its application to Fermat's Little Theorem.

Lecture 12· 1:14:04

Introduction to Linear Programming

This lecture introduces linear programs, illustrates with diet and bake sale examples, defines standard and canonical forms, and provides an initial discussion of dual linear programs.

Lecture 13· 1:16:12

Duality in Linear Programming

This lecture extends duality theory to arbitrary linear programs, introduces complementary slackness, offers a physics-inspired proof of strong duality, and uses it to prove Koenig's theorem.

Lecture 14· 1:14:18

Zero-Sum Games

The lecture introduces zero-sum games, defining payoff matrices and illustrating with examples like matching pennies, concluding with an explanation of the Nash equilibrium concept.

Lecture 15· 1:17:52

Max-Flow Min-Cut Theorem

This lecture explains the maximum flow problem, demonstrating that max-flow is bounded by min-cut, and proves their equality by formulating the max-flow as a linear program and taking its dual.

Lecture 16· 1:08:50

Data Compression and Shannon’s Noiseless Coding Theorem

Beginning with data compression history, this lecture defines first-order sources and entropy, then states and proves Shannon's noiseless coding theorem for optimal compression ratios.

Lecture 17· 1:17:59

Huffman Coding

Reviewing Shannon's theorem, this lecture introduces prefix-free codes and their binary tree decoding, then details Huffman's algorithm for constructing optimal prefix-free codes.

Lecture 18· 1:12:21

Transmitting Information Reliably over a Noisy Channel & Shannon’s Noisy Coding Theorem

This lecture explores reliable information transmission over noisy channels, beginning with repetition codes, and proves Shannon's noisy coding theorem for the binary symmetric channel.

Lecture 19· 1:18:31

Error-Correcting Codes—Hamming Codes

This lecture demonstrates error correction in noisy channels through Hamming codes, detailing the 7-bit Hamming code's operation, defining linear codes, and discussing general Hamming codes.

Lecture 20· 1:05:47

Reed-Solomon Codes

This lecture introduces Reed-Solomon codes, explaining their polynomial construction, how the fundamental theorem of algebra determines their minimum distance, and methods for decoding.