Just an addition to your course suggestion: Coursera has a compilers course too, taught by a Stanford professor! I'm working through it right now. The lectures are informative and the assignments have you build a working version of a COOL (professor's own language) to MIPS assembly compiler. It's been very enlightening so far!