From the first chapter, this text blends computational and conceptual topics, accompanied by applications to provide context. The book includes numerous representative examples, over and above those used to introduce topics, and over 2500 exercises across different areas and difficulty levels.