Programming for Mathematicians by Raymond Seroul