From the course description: Programming-oriented course on effectively using modern computers to solve scientific computing problems arising in the physical/engineering sciences and other fields. Provides an introduction to efficient serial and parallel computing using Fortran 90, OpenMP, MPI, and Python, and software development tools such as version control, Makefiles, and debugging.
Workload: 5-10 hours/week
Taught In: English
Subtitles Available In: English

Course Sylabus

The use of a variety of languages and techniques will be integrated throughout the course as much as possible, rather than taught linearly. The topics below will be covered at an introductory level, with the goal of learning enough to feel comfortable starting to use them in your everyday work. Once you've reached that level, abundant resources are available on the web to learn the more advanced features that are most relevant for you.

Working at the command line in Unix-like shells (e.g. Linux or a Mac OSX terminal).

Version control systems, particularly git, and the use of Github and Bitbucket repositories.

Work habits for documentation of your code and reproducibility of your results.

Interactive Python using IPython, and the IPython Notebook.

Python scripting and its uses in scientific computing.

Subtleties of computer arithmetic that can affect program correctness.