"The mathematics of modern computer science is built almost entirely on discrete mathematics, in particular combinatorics and graph theory." David Patrick for the Art of Problem Solving in Why Discrete Mathematics is Important
When software engineers design and implement computer programs, they use, for instance, higher-order, lambda, and generating functions to create and manipulation of discrete structures (e.g., numbers, lists, and dictionaries) that have distinct values. When engineers describe a discrete structure using formal mathematical notation, it better enables them to see both the trade-offs in the structure's design and implementation and the connection between one structure and another. As pointed out by the The Art of Problem Solving team in the article Why Discrete Mathematics is Important, "the mathematics of modern computer science is built almost entirely on discrete mathematics." This course will give you a foundation in both programming and discrete mathematics!
In the context of Python programming, this course teaches you how to use functions and the discrete structures that form their input and output. Leveraging this knowledge of discrete structures and functions, you will learn how to read and translate concepts expressed in natural language, formal mathematical notation, and Python programs. Positioning you for successful work in both theoretical and practical computer science, this course imparts to a learner an applied understanding of topics like Boolean logic, set theory, and probability theory. You will combine your knowledge of the aforementioned topics as you specify, design, document, implement, and test Python programs that employ the best practices for efficiency, correctness, and understandability.
Let's first proactively explore the learning objectives for a course in discrete structures!