Skip to main content
  • Textbook
  • © 2011

Programming for Engineers

A Foundational Approach to Learning C and Matlab

Authors:

  • The book is appropriate for undergraduate students of engineering and computer science, and graduate students of other disciplines
  • The author introduces pointer-based memory manipulation in the first chapter, so that students learn and practice this essential skill at an early stage
  • The presentation flows from C into Matlab/Octave programming, important for engineers in all fields
  • Includes supplementary material: sn.pub/extras

Buy it now

Buying options

eBook USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 69.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (11 chapters)

  1. Front Matter

    Pages I-XIII
  2. Memory: The Stack

    • Aaron R. Bradley
    Pages 1-30
  3. Control

    • Aaron R. Bradley
    Pages 31-45
  4. Arrays and Strings

    • Aaron R. Bradley
    Pages 47-80
  5. Debugging

    • Aaron R. Bradley
    Pages 81-92
  6. I/O

    • Aaron R. Bradley
    Pages 93-112
  7. Memory: The Heap

    • Aaron R. Bradley
    Pages 113-136
  8. Abstract Data Types

    • Aaron R. Bradley
    Pages 137-159
  9. Linked Lists

    • Aaron R. Bradley
    Pages 161-180
  10. Introduction to Matlab

    • Aaron R. Bradley
    Pages 181-198
  11. Exploring ODEs with Matlab

    • Aaron R. Bradley
    Pages 199-214
  12. Exploring Time and Frequency Domains with Matlab

    • Aaron R. Bradley
    Pages 215-230
  13. Back Matter

    Pages 231-235

About this book

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.

Reviews

"This book builds a well-defined computation model that allows concepts that are important in technical and scientific applications -- like pointers, arrays and recursion -- to be gradually and rigorously introduced. The languages covered by the book, C and MATLAB, are highly relevant to engineering applications.

Clarity of exposition, numerous well-chosen examples, pedagogical savvy, and logical sequencing of the topics all help the reader's progress through the chapters and make for an enjoyable learning experience. This book prepares one well to deal with advanced programming language constructs and the design of large, complex applications by promoting mastery of the fundamentals, by covering important practical aspects of a programmer's activity, and by instilling good design and implementation habits. It is therefore ideally suited for self-study or as a textbook in an introductory college-level programming course for engineers and similarly technically-mindedstudents."

Fabio Somenzi (University of Colorado at Boulder)

Authors and Affiliations

  • University of Colorado, Boulder, USA

    Aaron R. Bradley

About the author

Dr. Aaron R. Bradley obtained his PhD in Stanford University under the supervision of Prof. Zohar Manna, with whom he cowrote the graduate textbook "The Calculus of Computation". From 2008 to 2011 he was on the staff of the Dept. of Electrical, Computer, and Energy Engineering at the University of Colorado, Boulder where he taught the undergraduate engineering course on programming. He is now on the staff of the Summit Charter Middle School in Boulder, teaching mathematics.

Bibliographic Information

Buy it now

Buying options

eBook USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book USD 69.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access