Some other resources for people who find that this piques their interest and that they want to go deeper:
* Formal Reasoning About Programs ("FRAP") by Adam Chlipala - available for free here: http://adam.chlipala.net/frap/. Forms the basis for 6.822 at MIT, and comes with an accompanying Coq formalisation (as well as psets in Coq).
* The Formal Semantics of Programming Languages: An Introduction by Glynn Winskel.