Reviews for CS152

Difficulty: 7.13 / 10.0

Take this class (compilers) after taking automata

avoid song. Just good advice in general. Any class you take with song will be terrible. Song is a terrible professor regardless of class content. I have no idea what this class was really about. Its kind of like an extension of cs150 so if you could handle that class this one shouldn't be too bad.

Song is the worst professor. The fact that only 25% of the students shows that his lectures are boring and you probably learn more by reading the slides yourself. The lab is terrible. You have to build a compiler from scratch and there is not enough resources on how to do it, especially phase 3, which is 25% of the whole grade. Absolutely one of the most difficult CS classes I have ever taken.

Took this with Zhijia Zhao. The tests weren't too bad if you studied the homework and the practice problems he provided. First two phases of the project were basically a joke and could easily be done in a day. The third one's definitely much more challenging and you should start early on that one.

Took this class with Gupta, Winter 2020, good guy. The material was hard but his slides are very to-the-point for exams. As expected, phases 1 and 2 of the project were chill but phase 3 was the hardest. If you didn't finish phase 3, you get 70% if it compiles properly with no errors. The end of winter 2020 was when shit hit the fan with COVID-19, so the final he made take-home, but still difficult imo. Midterm was chill. Gupta typically gives a VERY generous curve at the end, but don't take this class lightly, definitely put aside time for this class, especially the project.

Gupta, Winter 2021. The previous review still holds up. Slides are straightforward for the exams so learn the examples well. Lecture content is dense. Final is non-cumulative. Phase 1 and 2 could be done in a single day if you wanted to. For Phase 3, they give you a good example in the slides that's completed in C++. You can choose to complete Phase 3 in C++ or C, but you need to take extra steps to implement in C++. There's some good info about that on stackoverflow and the bison documentation. You will get at least 70/100 points on Phase 3 if you implement enough stuff, so even if it doesn't pass the test cases, you should be fine if the implementation makes sense. It also has to compile on the bolt server without errors or else you will get a 0; they won't fix your makefile for you. Overall, the class isn't too stressful until you reach those last couple of weeks with phase 3.

Took this class online with prof Gupta, first half of the class plus the midterm is fairly easy. The second half is pretty tough in the sense that there are a few real examples you can practice for the final. But prof was really accessible for asking questions. Most of the project is pretty easy until you reach phase 3, start that early if you value your sanity. Curves grades based on class average.

Gupta, Summer 2021. Good guy. His lecture are jam-packed with info. Everything said about him and this class is true. Start early on the phases. Phase 1 and 2 can be done in a day, but Phase 3 will take a while. The entire compiler project takes about 20 hours total for each partner. The exams are hard though, but he tries to give 50% of the class at least a B+.

Neftali Watkinson Medina was easily one of the best professor's I've had. Makes the class very understandable and is a pretty reasonable professor

Take this class with Rajiv Gupta. I had him Spring 2022 and lectures were in person and not recorded, however, he kept his summer lecture recordings on canvas and the material was exactly the same. He has the ability to explain very complex topics in a way that makes them easy to understand, a mark of a very good teacher. Very fair grader and will really try to give you as many points as he can. He's always available for help and will even explain things through email if he cannot zoom with you. All in all, he wants you to succeed in his class and will put in effort to make that happen as long as you do too. The class is curved depending on what the average for the exams was. I recommend starting phase 3 early as it is pretty confusing and really long and debugging is an absolute nightmare. Overall was a very fun class!

I took with professor Zhao, he is super nice and understanding, class was fair, but the final project was super hard, make sure you find people who are committed to meeting up and working together efficiently.

Took it with Medina, great professor. However, I was cursed with the most useless project groupmates of all time and ended up doing all 4 phases by myself. If you don't want to suffer greatly, make sure you find some decent groupmates, or take the course with reliable people you know. The project itself increases in difficulty with the phases, phase 3 and 4 are the hardest, as they consist of converting the code from the language you've created into intermediate code which is basically assembly. As for concepts and lecture, if you did well in 150, you should be fine in understanding the concepts introduced in this course.

This class felt relatively simple. There is a quarter long project which is constructing your own compiler during lab and you may team up with 2 or 1 other people. Professor Neftali Watkinson was teaching the class (S24) and I can't recommend him enough for you to take him. Participation is graded in terms of homework and readings, but that's it. There is no curve since the class is relatively easy in terms of material, and I mean the professor was ahead of schedule in lectures since the material wasn't that confusing. Exams are weighted the same as the project, but they include extra credit points so study up if you want the points! Definitely watch out for the project. Other than that, it's as easy as CS150.