A Programmer's Introduction to Mathematics