The mathematical material covered includes the basics of number theory (including unique factorization, congruences, the distribution of primes, and quadratic reciprocity) and of abstract algebra (including groups, rings, fields, and vector spaces). It also includes an introduction to discrete probability theory—this material is needed to properly treat the topics of probabilistic algorithms and cryptographic applications.
This textbook contains the content of a two semester course in discrete structures, which is typically a second-year course for students in computer science or mathematics, but it does not have a calculus prerequisite. The material for the first semester is in chapters 1-10 and includes logic, set theory, functions, relations, recursion, graphs, trees, and elementary combinatorics. The second semester material in chapters 11-16 deals with algebraic structures: binary operations, groups, matrix algebra, Boolean algebra, monoids and automata, rings and fields.
In this post, there is a playlist of video lectures that supplement the book.
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital worlds? This book focuses on a range of programming strategies and techniques behind computer simulations of natural systems, from elementary concepts in mathematics and physics to more advanced algorithms that enable sophisticated visual results.
Read The Book