Discrete mathematics plays a key role in machine learning and algorithms. You can use it to find the shortest path (graph theory), encrypt files, compress data, and to do many other things.
We just posted a discreet mathematics course on the freeCodeCamp.org YouTube channel. Karol Kurek teaches this course. He is a former math teacher and senior Python developer.
This field is constantly evolving along with the development of its key application: computer science. This course is an introduction to this group of mathematical sciences, and we will focus on the most important issues on which other branches of discrete mathematics are based: combinatorics, number theory, prime numbers, and several selected topics: pigeonhole principle, stars and bars principle, Stirling's number, and the Chinese remainder theorem.
At the end of the course, there are tips and encouragement for further exploration of this field.
Here are the sections in this course:
Introduction to Discrete Mathematics
Permutations: Definition and Examples
Applications of Permutations
Cycles and Multiset Permutations
Counting Permutations: The Formulas
Permutations in Python with itertools
Custom Python Function for Counting Permutations
Heap's Algorithm
K-Permutations and K-Tuples
The Rule of Product
The Rule of Sum
Exercises: Rule of Product & Sum
The Inclusion-Exclusion Principle
Exercises: Inclusion-Exclusion Principle
Mathematical Notations (Sigma & Pi)
Equinumerosity & Countable Sets
Proving Rational Numbers are Countable
Prime Numbers & Sieve of Eratosthenes
Prime Number Generation in Python
Advanced Properties of Prime Numbers
GCD & LCM (Greatest Common Divisor & Least Common Multiple)
Co-prime Numbers
Congruences (Modular Arithmetic)
Binomial Coefficients & Pascal's Triangle
Combinations
Solving a Complex Combinatorics Problem
Stirling Numbers
Bell Numbers
The Chinese Remainder Theorem
Conclusion & What's Next
Watch the full course on the freeCodeCamp.org YouTube channel (9-hour watch).