Lecture, four hours; discussion, two hours; outside study, six hours. Requisite: course 131. Compiler structure; lexical and syntactic analysis; semantic analysis and code generation; theory of parsing. Letter grading.

Review Summary

Clarity
10.0 / 10
Organization
10.0 / 10
Time
5-10 hrs/week
Overall
10.0 / 10

Reviews

    Quarter Taken: Fall 2020 Online
    Grade: A+

    This is an amazing class! Professor Palsberg has the structure of the class absolutely nailed down to perfection. There are two exams for the class: a midterm and a final. Both of the exams are fully multiple choice, and if you have a decent understanding/handle of the LL(1) parsing algorithms we learn in class, you'll be 100% good to go for the midterm. The final has some questions about various other compiler concepts, so you may need to review lecture notes for that one. However, it is still quite straightforward and not very difficult.

    The assignments for the class consist of several Java projects, with each project being an implementation of one step in a compiler for MiniJava to some assembly language. These projects are quite long and time-consuming, but if you plan your project's structure and your class relationships ahead of time, they aren't too bad to do well on. Additionally, you can resubmit the projects to the grading server as much as you'd like, so you can ensure what grade you'll get. In my opinion, this is one of the best things about the class, since you can evaluate how close you are to getting full credit and whether or not it is worth it to expend the additional effort to find that last bug and get the final .4% toward the project grade.

    The lectures are also great: very interesting, clear, and structured. Palsberg's iPad notes occasionally can get a bit messy, but it's fine as long as you're following along (more or less). He's also great about answering questions, and is good at fitting all the material into the designated lecture period. Overall, I very highly recommend taking this class as one of your CS electives if you get the chance.

    Quarter Taken: Fall 2019 In-Person
    Grade: A+

    Professor Palsberg is very passionate about teaching and improving this course. The fact that the course has been offered continuously for decades by the same instructor means that nearly all the kinks have been worked out of class, and it is as such no surprise how polished the entire course feels.

    The course is more work-heavy than difficult, and grading is done fairly. For instance, even though more than 90% of the students got above a 90% on our midterm, the professor does not curve down the grades.

Course

Instructor
Jens Palsberg
Previously taught
24S 23S 21F 20F 19F 18F 17F 16F 16S 14F 12F 11F 10W 09S 08S 06F 05F 04F 03F

Grading Information

  • No group projects

  • Attendance not required

  • 1 midterm

  • Finals week final

  • 0% recommend the textbook