Easily the best textbook I've read on the topic is "Programming Language Application and Interpretation" or PLAI. It uses Racket to walk you through the implementation of different programming language features, while delving into the theory behind them.
I've only actually read the book. It's definitely thorough enough to stand on its own, but if you're having trouble understanding some of the sections (It's not easy material!), I could see the lectures being a valuable resource to turn to.
It's available for free on Brown's website - http://cs.brown.edu/courses/cs173/2012/book/
I couldn't recommend it more highly.