Custom cover image
Custom cover image

Programming for Engineers : A Foundational Approach to Learning C and Matlab / by Aaron R. Bradley

By: Resource type: Ressourcentyp: Buch (Online)Book (Online)Language: English Series: SpringerLink BücherPublisher: Berlin, Heidelberg : Springer-Verlag Berlin Heidelberg, 2011Description: Online-Ressource (XIII, 235p. 27 illus, digital)ISBN:
  • 9783642233036
Subject(s): Genre/Form: Additional physical formats: 9783642233029 | Buchausg. u.d.T.: Programming for engineers. Berlin : Springer, 2011. XIII, 235 S.DDC classification:
  • 005.1
RVK: RVK: ST 601 | ST 240LOC classification:
  • QA76.758
DOI: DOI: 10.1007/978-3-642-23303-6Online resources:
Contents:
Programming for Engineers; Preface; Contents; 1 Memory: The Stack; 1.1 Playing with Memory; 1.1.1 A First Foray into Programming; 1.1.2 Introduction to Pointers; 1.1.3 Pointers to Pointers; 1.1.4 How to Crash Your Program; 1.2 Functions and the Stack; 1.2.1 Introduction to Functions; 1.2.2 A Protocol for Calling Functions; 1.2.3 Call-by-Value and Call-by-Reference; 1.2.4 Building Fences; 1.3 Bits, Bytes, and Words; 2 Control; 2.1 Conditionals; 2.2 Recursion; 2.3 Loops; 3 Arrays and Strings; 3.1 Arrays
3.1.1 Introduction to Arrays; 3.1.2 Looping over Arrays; 3.1.3 Arrays as Parameters; 3.1.4 Further Adventures with Arrays; 3.2 Strings; 3.2.1 Strings: Arrays of chars; 3.2.2 Programming with Strings; 3.2.3 Further Adventures with Strings; 4 Debugging; 4.1 Write-Time Tricks and Tips; 4.1.1 Build Fences Around Functions; 4.1.2 Document Code; 4.1.3 Prefer Readability to Cleverness; 4.2 Compile-Time Tricks and Tips; 4.3 Runtime Tricks and Tips; 4.3.1 GDB: The GNU Project Debugger; 4.3.2 Valgrind; 4.4 A Final Word; 5 I/O
5.1 Output; 5.2 Input; 5.2.1 Command-Line Input; 5.2.2 Structured Input: Integer Data; 5.2.3 Structured Input: String Data; 5.3 Working with Files; 5.4 Further Adventures with I/O; 6 Memory: The Heap; 6.1 Review of Matrices; 6.2 Matrix: A Specification; 6.3 Matrix: An Implementation; 6.3.1 Defining the Data Structure; 6.3.2 Manipulating the Data Structure; 6.4 Debugging Programs That Use the Heap; 7 Abstract Data Types; 7.1 Revisiting Matrices; 7.2 FIFO Queue: A Specification; 7.3 FIFO Queue: A First Implementation
8 Linked Lists; 8.1 Introduction to Linked Lists; 8.2 FIFO Queue: A Second Implementation; 8.3 Priority Queue: A Specification; 8.4 Priority Queue: An Implementation; 8.5 Further Adventures with Linked Lists; 9 Introduction to Matlab; 9.1 The Command-Line Interface; 9.2 Programming in Matlab; 9.2.1 Generating a Pure Tone; 9.2.2 Making Music; 10 Exploring ODEs with Matlab; 10.1 Developing an ODE Describing Orbits; 10.1.1 Developing the ODE; 10.1.2 Converting into a System of First-Order ODEs; 10.2 Numerical Integration
10.3 Comparing Numerical Methods; 11 Exploring Time and Frequency Domains with Matlab; 11.1 Time and Frequency Domains; 11.2 The Discrete Fourier Transform; 11.3 De-hissing a Recording; Index
Summary: Aaron R. BradleySummary: 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. 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.PPN: PPN: 1651054541Package identifier: Produktsigel: ZDB-2-SCS
No physical items for this record