Reliable computation in the presence of noise