Teaching Coloured Petri Nets- A Gentle Introduction to Formal Methods in a Distributed Systems Course