Discrete math is typically a requirement in computer science undergraduate programs. It deals with logical arguments, sets, counting and combinatorics and shortest path algorithms (also known as graph theory). There are a lot of overlapping ideas that are directly relatable to programming concepts, here’s how.