Teaching how to derive correct concurrent programs from state-based specifications and code patterns - Carro, M; Marino, J; Herranz, A; Moreno-Navarro, JJ; (Lecture Notes In Computer Science, 2004)