This text is a semester course in the basic mathematical and theoretical foundations of computer science. A free online course from the author's website follows the text. Students who make heavy use of computing should learn these foundations well, setting a base for a follow-on course in algorithms. A solid theoretical and algorithmic foundation in computer science sets the stage for developing good programs, programs that work, always and efficiently. Each chapter is a lecture that has been taught as such. Part I starts with basic logic, proofs and discrete mathematics, induction, recursion, summation, asymptotics and number theory. We then continue with graphs, counting and combinatorics, and wrap up the coverage of discrete mathematics with discrete probability. Part II presents the blockbuster application of discrete the digital computer and a theory of computing. The goal is to understand what a computer can and cannot do. We start small, with automata, and end big with Turing Machines.
show more...Just click on START button on Telegram Bot