Teaching beginners predicate transformer semantics for imperative languages is not a trivial task. For Computer Science majors, the teaching of the theoretical material must be supported by suitable practical course work. For this, we need a suitable language with appropriate tool support. In this paper, we describe our experience of using SPARK and its tools for this purpose. Our experience has been a very positive one. Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education—Computer Science Education General Terms Experimentation Keywords Imperative Programming, Predicate Transformer Semantics