Discrete Mathematics
Mathematical Foundation For CS
Discrete mathematics is the branch of mathematics dealing with objects that can assume only distinct (discrete) values. The mathematics of modern computer science is built almost entirely on discrete math, in particular Boolean algebra, combinatorics and graph theory. This means that in order to learn the fundamental algorithms used by computer programmers, students will need a solid background in these subjects.
Many of the USACO problems, particularly in the higher divisions, rely on knowledges and problem solving skills in discrete math.
In this course, we will introduce the important topics in Discrete Math that are most relevant for USACO, including but not limited to Combinations & Permutations. Complementary Counting, Pigeonhole Principle, Modular Math, Boolean algebra, Disjoint Sets & Union Find, Inductive Reasoning and Proof by Induction, Recursion, Functional Graph. and MST.
Discrete mathematics has little or no dependence on the subjects of continuous math, and therefore can be learned independently.