http://www.dbuke.com/an-introduction-to-discrete-mathematics/