Text this: A Short course in computational science and engineering : C++, java and octave numerical programming with free software tools