Teaching Concurrency: Theory in Practice