**Aaron R. Bradley ...**238 pages -

**Publisher:**Springer; (October, 2011) ...

**Language:**English -

**ISBN-10:**3642233023 -

**ISBN-13:**978-3642233029 ...

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. He
presents pointers in the very first chapter as part of the development
of a computational model that facilitates an ab initio presentation of
subjects such as function calls, call-by-reference, arrays, the stack,
and the heap. The model also allows students to practice the essential
skill of memory manipulation throughout the entire course rather than
just at the end. As a result, this textbook goes further than is typical
for a one-semester course -- abstract data types and linked lists, for
example, are covered in depth. The computational model will also serve
students in their adventures with programming beyond the course: instead
of falling back on rules, they can think through the model to decide
how a new programming concept fits with what they already know. The
book is appropriate for undergraduate students of engineering and
computer science, and graduate students of other disciplines. It
contains many exercises integrated into the main text, and the author
has made the source code available online.