Computing for Scientists: Principles of Programming with Fortran 90 and C++