Discrete Mathematical Structure with Applications to Computer Science