Numerical methods for balance laws