.. _preparations: ============================================ Items for the Class ============================================ Hardware (hardly free) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * A computer: desktop or laptop (but not a tablet PCs). It is ideal if you already have a Linux machine or a machine that runs a Unix-based operating system, e.g., macOS. For a Windows PC, you will need to install some packages to run a Linux-based operating system on your PC. Please consult the instructions at :ref:`ch01-platforms`, or with the instructor or TA if you only have a Windows PC. If you do not have access to an appropriate computer please contact the instructor as early as possible. Software (mostly free) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Essential software (required, free): * Linux, macOS with Xcode, or Windows with a functioning WSL setup/VM. * Compilers for Fortran 90, C/C++ (e.g., gfortran, gcc, and g++ from the `GNU compiler collection `_) * Debuggers (`gdb `_ , `valgrind `_, etc.) * Python and its scientific libraries (e.g., `Anaconda `_, `NumPy `_, `SciPy `_, `Matplotlib `_, etc.) * Version control system: `Git `_ (compare to `SVN `_) * Text editors: * traditional ones: `GNU emacs `_, `vim `_/`nvim `_; * modern *fancy* ones: `Visual Studio Code `_ (recommend), `sublime `_, etc. * VS Code is a particularly good choice for WSL users. See `this getting started guide `_ for more information. Extra software (optional, mostly free): * Software package manager * For Linux this will depend on your particular distribution, `Aptitude `_ for Ubuntu and Debian, `DNF `_ for Fedora, `Pacman `_ for ArchLinux and Manjaro, etc. The appropriate manager will be installed by default in whatever distribution you are using. * For MacOS `Homebrew `_. * LaTeX packages * Often available through your package manager via `Texlive `_, see `CTAN `_ to download packages directly. * On MacOS `texshop `_, and `LaTeXiT `_ may be of use. * `Matlab `_ or `GNU Octave `_ could occasionally be useful to rapidly experiment with ideas. We will *not* directly use either of these in this course. Feel free to ignore them. Others (absolutely free) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Most importantly, your passion and energy to learn new things.