I've already commented, but I feel compelled to comment again after looking at his homework assignments. They could easily be the basis for a practical textbook in compiler design and implementation.
For anyone who's never had a class in compilers, but wants to know more about them, Siek's material is a great way to start.
The course is taught by Jeremy Siek, who has done interesting research on generic programming and the design of concepts in C++. Take a look at his papers: http://ece-www.colorado.edu/~siek/publications.html
This is a great idea. One problem with the class upon first glance: the grading structure.
It's a compilers class, where you'll actually implement a compiler, for only 10% of your overall grade? The rest of the grade is made up by midterm, final, and quizzes.
Teachers not putting emphasis on the actual development often leads to students half-assing assignments and not getting the coding done. The compiler implementation is by far the most valuable experience in this class. The final isn't. The grading weight should reflect as much.
I actually took that specific course from Professor Siek last semester. (You can find my name on that page.)
Doing the homework was the only way to do decently on the quizes, or the exams. Most of the questions on those tests consisted of "write out the code for the $x portion of the compiler". So if you didn't already understand how that bit worked, you weren't going to figure it out in 10 minutes, and get any of the points.
The low emphasis on the homework allowed him to have basically no restrictions on students working together, which is rather handy for most folks. And it still required you actually develop an understanding of the content.
I really wish the videos from lectures like this were widely available. They would be a great resource for self learners along with the course material.
For anyone who's never had a class in compilers, but wants to know more about them, Siek's material is a great way to start.