Discrete mathematical structures