Unedited Testimonial #1 This is a great class on a topic that is likely to touch on some aspect of your research, no matter what your interests are. For almost any domain that we study in CS, there is something to be gained by formally defining a language that lets you describe and reason about problems in the domain more abstractly. This is the class that teaches you how to do just that. As for the class itself, the workload is reasonable, and perhaps more importantly, the homework assignments and the longer readings are loaded into the front half of the semester. That way, they don't get in the way of doing your semester project during the second half. Speaking of the project, the semester projects are done INDIVIDUALLY, which I've never seen before in grad school but which makes it much, much easier to tailor the project to your own research interests. (Last time I checked, the purpose of graduate classes is to equip you to do research, after all.) Getting back to the homeworks, the only assignment for this class that really takes up a lot of time is the final one. However, the final assignment pays off by actually walking you through the development of a working bug-finding program analysis tool, which is a really rewarding result. Notes on the instructor: Wes does tend to speak quickly, and his lectures are littered with geek-culture references that can be very amusing if you get them (and probably very distracting if you don't). He tries to make it very clear which parts of the material are really the essential things that you will need to take away and remember for later, and his office door in Olsson is almost always open if you want to go and follow up with questions about the details. All in all, I recommend this class. You may find the class more or less entertaining depending on how well you can keep up with jokes taken from Babylon 5 or The Princess Bride, but you will find this class to be a good investment of your time no matter what. Unedited Testimonial #2 Don't take this class unless you want to improve your writing skills a bit, listen to a few biased comments on PL research, and learn about both formal theory and its practical applications. Overall this is an awesome class. The instructor is energetic and smart. He's reachable and willing to help. In this class you get to learn semantics, type theory and a little bit theorem proving and model checking. The basics of lambda calculus and functional language seems to be a prerequisite. The way the homeworks were designed was also novel to me. You get extra credits if your code beats others'. Even your final presentation was evaluated by peers.