, "Big Oh" notation, and polynomial transformations, providing a theoretical foundation for understanding "hard" computational problems. Why It Matters for Computer Science

Understanding Introductory Discrete Mathematics by V. K. Balakrishnan