Discrete mathematics is a cornerstone of the undergraduate mathematics curriculum, like calculus and abstract algebra. Modern computer science relies heavily on discrete mathematics, especially combinatorics & graph theory, for its mathematical foundation. This implies that students will require a strong foundation in these areas in order to master the basic algorithms employed by the computer programmers. In the case of algebra, learners are often given a list of formulas and algorithms to memorize (such as the quadratic formula or the algorithm for the solving systems of the linear equations by substitution, for example), while in geometry, students are often given a list of definition > theorem > proof exercises to complete by rote (such as the infamous ‘Two-Column Proof’). While it’s true that the concepts being covered are very essential, at the beginning level they don’t exactly inspire mathematical imagination. Discrete mathematics, on the other hand, encourages pupils to think beyond the box from the get-go. There aren’t a lot of formulae to learn, but there are a lot of core ideas that can be used in numerous contexts. Finally, the lingua franca of computer scientists and programmers is discrete mathematics and algorithms. Since these ideas are fundamental to the area as a whole, they are often discussed amongst professionals and make up a significant portion of technical interviews.