To learn to program is to be initiated into an entirely new way of thinking about engineering, mathematics, and the world in general. Computation is integral to all modern engineering disciplines, so the better you are at programming, the better you will be in your chosen field. The author departs radically from the typical presentation by teaching concepts and techniques in a rigorous manner rather than listing how to use libraries and functions...