The course will use a brand new text book, but PhD students should get to
know alternative approaches. As a matter of fact, PhD students should
learn to read texts on their own in case they must work on something not
quite familiar but in their area---that's the essence of a PhD program.
Felleisen, Findler, Flatt.
Semantics Engineering with PLT Redex.
MIT Press 2009.
Programming Languages: Applications and Interpretation.
Essentials of Programming Languages (Third edition).
MIT Press 2008.
The course will assume that you know how to design (recursive) programs
(systematically) and that you have encountered inductive proofs in your
undergraduate education. At Northeastern, most of the relevant material is
covered in the freshman courses on programming and computing (Fundamentals
I) and logic in computing. In case you have doubts, consider reading the
book below quickly---where "reading" means PhD-level reading ("read and
solve the exercises").
Felleisen, Findler, Flatt, Krishnamurthi.
How to Design Programs.
MIT Press 2001.
Parts I-IV and VI are essential for understanding the course.