ETH Zurich

ETH Hoenggerberg, HIT E51, Zurich
Feb 28-Mar 1, 2014
9:00 am - 5:30 pm

Instructors: Stefano Cozzini, Sam Thomson

What: Our goal is to help scientists and engineers become more productive by teaching them basic computing skills like program design, version control, testing, and task automation. In this two-day bootcamp, short tutorials will alternate with hands-on practical exercises. Participants will be encouraged both to help one another, and to apply what they have learned to their own research problems during and between sessions. Attendants are offered online office hours: regular events to get one-on-one help from Software Carpentry instructors, online.

Who: The course is aimed at postgraduate students and other scientists who are familiar with basic programming concepts (like loops, conditionals, arrays, and functions) but need help to translate this knowledge into practical tools to help them work more productively.

Requirements: Participants must bring a laptop with a few specific software packages installed. (The list will be sent to participants a week before the bootcamp.)

Content: The syllabus for this bootcamp will include:

Contact: Please mail admin@software-carpentry.org for more information.


Setup

The Bash Shell

Bash is a commonly-used shell. Using a shell gives you more power to do more tasks more quickly with your computer.

Editor

When you're writing code, it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words. We recommend Sublime Text 2, which is available as a free trial on Mac OS X, Linux (and Windows). For editing within the terminal, nano is easy to get started with than most. (You probably already have nano installed; open a terminal, type nano and hit enter. Hold ctrl+x to quit.)

Python

Python is becoming more and more popular in scientific computing, and it's a great language for teaching general programming concepts due to its easy-to-read syntax. We will be using Python version 2.7. Installing all the scientific packages for Python individually can be a bit difficult, so we recommend using an all-in-one installer.

Nose

Nose is a unit testing framework for Python. Unit tests are automated pieces of code which check the smallest unit of functionality, e.g. a function or method, against known inputs and their results.

Git

Git is a state-of-the-art version control system. It lets you track who made changes to what when and has options for easily updating a shared or public version of your code on github.com.

Make

Make is a utility which creates libraries and executable programs from source code by reading makefiles. These specify how to build, or make, the target program.

Mac OS X

Mac OS X / Bash

The default shell in all versions of Mac OS X is bash, so no need to install anything. You access bash from the Terminal (found in /Applications/Utilities). You may want to keep Terminal in your dock for this workshop.

Mac OS X / Git

Installing Git requires you to first install XCode. This is a very large download (several gigabytes), so please do it before arriving at the bootcamp.

For Mac OS X 10.9:

You can install the Xcode command line tools directly from a terminal window. Simply run xcode-select --install and select install from the popup. This will also install make (along with a bunch of other stuff).

For Mac OS X 10.7 and 10.8 (and 10.9):

Go to the Xcode website. Get XCode from the App Store making certain to install the command line tools (from the Download pane in Xcode's preferences). Git is included in the command line tools, along with make.

For Mac OS X 10.6

You need an Apple ID linked to a Developer account. Then, first get XCode by going to the Apple developer site. Sign in with an Apple ID linked to a Developer account. Once you log in, go to page 9 and find "XCode 3.2.6 and iOS SDK 4.3 for Snow Leopard". Click to open that section, and then download the .dmg file. Mount it, run the installer and make sure you select to install all components. Alternatively, install just git, but note that Xcode command line tools are required for make.

Mac OS X / Make

If you do not already have access to make from within your shell, you will need to install Xcode (which is free, but over a gigabyte to download). See the above section on installing git for details.

Mac OS X / Python (All-in-one)

We recommend the all-in-one scientific Python installer Anaconda, particularly for users of OS X 10.7+. (Installation requires using the shell and if you aren't comfortable doing the installation yourself just download the installer and we'll help you at the bootcamp.)

  1. Download the installer that matches your operating system and save it in your home folder.
  2. Open a terminal window.
  3. Type
    bash Anaconda-
    and then press tab. The name of the file you just downloaded should appear.
  4. Press enter. You will follow the text-only prompts. When there is a colon at the bottom of the screen press the down arrow to move down through the text. Type yes and press enter to approve the license. Press enter to approve the default location for the files. Type yes and press enter to prepend Anaconda to your PATH (this makes the Anaconda distribution the default Python).

Mac OS X / Python

If you do not wish to use the Anaconda Python distrubution, you should install:

  • Python (Note: we recommend installing Python 2.7.x rather than Python 3.x for maximum compatibility, though all up-to-date versions of the packages required should be 3.x compatible)
  • NumPy
  • matplotlib
  • iPython (Note: first install pip, and then run sudo easy_install ipython[all])

Mac OS X / Nose

If you are not using the above Anaconda Python distrubution, first install Python and other related packages (see above), then install pip.

Then, run:

$ pip install nose

and check:

$ nosetests
----------------------------------------------------------------------
Ran 0 tests in 0.003s
OK

Linux

Linux / Bash

The default shell is usually bash, but if your machine is set up differently you can run it by opening a terminal and typing bash. There is no need to install anything.

Linux / Git

If Git is not already available on your machine you can try to install it via your distro's package manager (e.g. sudo apt-get install git or sudo yum install git).

Linux / Make

You will almost certainly already have make installed. Open a terminal and (try to) run make. If you see make: command not found... then you can install it via your distro's package manager (e.g. sudo apt-get install make or sudo yum install make).

Linux / Nose

If you are not using the above Anaconda Python distrubution, first install Python and other related packages (see right), then install pip.

Then, run:

$ pip install nose

and check:

$ nosetests
----------------------------------------------------------------------
Ran 0 tests in 0.003s
OK

Linux / Python (All-in-one)

We recommend the all-in-one scientific Python installer Anaconda. (Installation requires using the shell and if you aren't comfortable doing the installation yourself just download the installer and we'll help you at the boot camp.) This will include all Python-related software you need for the bootcamp.

  1. Download the installer that matches your operating system and save it in your home folder.
  2. Open a terminal window..
  3. Type
    bash Anaconda-
    and then press tab. The name of the file you just downloaded should appear.
  4. Press enter. You will follow the text-only prompts. When there is a colon at the bottom of the screen press the down arrow to move down through the text. Type yes and press enter to approve the license. Press enter to approve the default location for the files. Type yes and press enter to prepend Anaconda to your PATH (this makes the Anaconda distribution the default Python).

Linux / Python

If you do not wish to use the Anaconda Python distrubution, you should install:

  • Python (Note: we recommend installing Python 2.7.x rather than Python 3.x for maximum compatibility, though all up-to-date versions of the packages required should be 3.x compatible)
  • NumPy
  • matplotlib
  • iPython
Most are likely available via your distro's package manager, e.g.
  • Ubuntu:
    sudo apt-get install python2.7 python-numpy python-matplotlib And:
    sudo apt-get install ipython-notebook
  • Fedora:
    sudo yum install python numpy python-matplotlib
    And:
    sudo yum install python-ipython-notebook
If you install iPython via your package manager, it may need updating. First, install pip, and then run sudo pip install ipython[all] --upgrade
Facebook Google+ Twitter GitHub RSS License Bug Report