Applied Discrete Structures - Part 2- Algebraic Structures