Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software Professional Computing Series, Addison-Wesley, 1995.
Matthias Felleisen and Dan Friedman, A Little java with Patterns, MIT Press, 1998.
A short document that John Fiskio-Lasseter wrote in 1999 for CIS 211 students.
Glynn Winskel, The Formal Semantics of Programming
Carl Gunter, Semantics of Programming Languages
Winskell devotes a separate chapter to each of the three basic approaches to the specification of semantics, with a lot of detail. This is more than you need to know, so unless you're enjoying yourself and want to know more, just read Winskell's Preface, and Gunter's Introduction (Ch. 1).