From ComputingForScientists

Jump to: navigation, search

1. Overview

This book covers using a computer programming language to solve scientific problems. The target audience of this book is a college-level freshman with no computer programming experience beyond the use of spreadsheets. The reader should have a mathematical competency at the level of trigonometry. Advanced mathematical concepts such as integration and differential equations are used implicitly or discussed, but familiarity is not required.

The programming language used is MATLAB; however, the examples will also run in the Octave programming language. The programming style used is one that translates easily to other commonly used scientific programming languages. In many cases shorter and faster-running programs could be written using the vector and matrix notation. However, such specialized notation is generally not emphasized.

Instead of being a book on using MATLAB, for which many resources available, this book should be considered as a first course on computing for scientists that uses MATLAB to demonstrate programming concepts that used in most scientific programming languages.

This book was written in a style that is similar to how this class in which this book is used has been taught. A minimal amount of basic information is presented that will allow students to solve many types of problems; more advanced topics that build on the basic concepts are relegated to the end-of-section problems. For example, in the section covering the binary representation of numbers, hexadecimal is not discussed in the body of the text. Instead, it is introduced in a series of problems.

In writing in this style, we have attempted to emulate how working scientists learn new information: They typically first seek out the minimal amount of information that will allow them to build a mental model of a system or a process. With this information, they attempt to interpret data or solve problems until a situation is encountered for which the model is not sufficient.

This book is an outgrowth of teaching CDS 130 - Computing for Scientists at George Mason University. Students enrolled in this course are typically freshman- or sophomore-level science majors with little relevant previous programming experience and a math background of at most pre-calculus.

2. Acknowledgments

Partial support for development work on the content on which this book is based was provided by a Faculty Development in the Space Sciences grant from NSF [1], a Curriculum for an Undergraduate Program in Data Sciences grant from NSF [2], and GMU's Center for Teaching Excellence Curriculum Innovation Grant Program [3].

Personal tools