This self-contained tutorial on Z, a formal notation for modeling, specifying and designing computer systems and software, presents realistic case studies emphasizing safety-critical systems. It includes exercises with solutions, reference materials and a guide to further reading.