PHYS 5P10 - Introduction to Scientific Computing

Most problem solving in science and engineering uses scientific computing. A scientist might devise a system of differential equations to model a physical system, then use a computer to calculate their solutions. An engineer might develop a formula to predict cost as a function of several variables, then use a computer to find the combination of variables that minimizes that cost. A scientist or engineer needs to know science or engineering to make the models. He or she needs the principles of scientific computing to find out what the models predict.

Scientific computing is challenging partly because it draws on many parts of mathematics and computer science. Beyond this knowledge, it also takes discipline and practice. A problem-solving code is built and tested procedure by procedure. Algorithms and program design are chosen based on onsiderations of accuracy, stability, robustness, and performance. Modern software development tools include programming environments and debuggers, visualization, profiling, and performance tools, and high-quality libraries. The training, as opposed to just teaching, is in integrating all the knowledge and the tools and the habits to create high quality computing software “solutions.”

Principles of Scientific Computing, by David Bindel and Jonathan Goodman

Linux is the (invisible) operating system layer

[R.Stallman]
R.Stallman
[L.Torvalds]
L.Torvalds

Linux has a hierarchical architecture

[Linux architecture]

From www.tutorialspoint.com/unix/

Linux is a "collection of small programs that do one thing well"

Open a terminal window to interact with Linux [Linux architecture]

Linux file system

[Linux filesystem]

Typical Linux directories

A tutorial on basic shell commands

By next Thursday: