- Home
- Search
- Majid Sarrafzadeh
- All Reviews

Majid Sarrafzadeh
AD
Based on 85 Users
I never attended class and used the textbook for everything and got an A. However, I also got some notes from friends and on each test there were a couple questions from the lectures verbatim. So either attend lecture or have a friend give you the notes and you should do well. Tests were also super easy.
If you can take 180 with him, take it with him.
- Never be late on HW submissions
- Prepare 1-2 days in advance for tests
- Get the class notes even if you don't attend
I actually liked and enjoyed his teaching method but some others found him slow. He does elaborate on each topic so whatever he covers he teaches well.
Strongly recommended
Majid is the best instructor for a CS class since Smallberg and Nachenberg.
Majid gives very clear and concise lectures. He stresses on ways of thinking instead of individual algorithms, which is very helpful for CS majors. For me, when I see leetcode questions, I will try to think systematically before writing down any code. For example, what type of question is this? How do I approach it using blablabla method?
Majid is very funny during his lectures. He encourages students to answer questions and often jokes about "Are you willing to bet your grade on that?" When he talks about important concepts, he will say something like, "If you tell your boss that you don't understand this, you get fired." It's an 8 am class, but I can hardly fall asleep because the lecture is so funny and engaging.
Majid doesn't write often on the board, so you have to write down what he says quickly. The textbook is very dry and a little bit hard to understand, but he gives us very clear lectures so we don't usually need to read the textbook to understand materials.
Homework is very long and hard, but they really help you practice that way of thinking. Thinking through those questions will not only help you with your exams, but also with your interviews. Do not look at "solutions" before you really think hard about those problems!
Sarrafzadeh is, without a doubt, one of the best CS professors I have ever had. For CS 180, he always keeps his lectures short (one and a half hours max) and he makes a lot of jokes during class. His explanations are clear and concise, and he has always seemed very willing to go over a concept more than once if students are still confused. Be sure to attend class because exams are based primarily off lecture material (also, in both my midterm and final, he used one of the problems/applications from class as an exam question, so pay attention!). It helps that his lectures are very engaging and genuinely interesting. That said, you will have to rely on yourself to do well in this class - do all the homeworks by yourself and be sure you understand exactly how each algorithm works. It may be a lot of work but it will be worth it in the end. The TA's for the class are usually extremely helpful as well, so it doesn't hurt to attend discussion. The only bad thing I can think of is that he's usually busy during his scheduled office hours.
Sarrafzadeh is a solid professor. Lectures consist of mostly him going over problems and their solutions to demonstrate whatever chapter we're focusing on. There's not as much conceptual background but he's very clear and well-organized in going through the questions.
The midterm was fairly easy. Majority of the questions were literally problems he did in class, or otherwise extremely straightforward (ex. show the steps of BFS on this graph). The final was more difficult - I recommend going to UPE's review session to get a better grasp of the course material.
Overall I was disappointed with this class. It's clear Majid means well and cares about student's learning, but in my opinion he goes about it poorly.
Firstly, I found the lectures to often be confusing. He teaches by introducing problems, and intentionally going down dead ends in order to illustrate how to go through the problem solving process. Sometimes this works well, but a lot of the time it's just confusing, especially for someone who already has a basic understanding of the concepts from internships / personal projects. There were many times I was confused in class, but after I'd just do a google search and find a really concise and clear answer. Personally I think it'd help a lot if he just gave the simple overview first as a primer, and then went into the problems.
Secondly, there are a lot of organizational annoyances in this class. Firstly, you have to submit your homework as a physical copy immediately before class starts, and it won't be accepted after the start time. Your only other option is to hunt down your TA and give it to them before that time. This makes it really easy to accidentally miss a submission if you oversleep or something happens. He could easily fix this just by using Gradescope or having a homework drop-box, so I'm not really sure why he does this. Secondly, he refuses to post his lectures online, and tells his TAs to not post their slides. He says this is because forcing students to come to class makes them learn better, but I find it counterproductive to intentionally keep learning materials from your students. Lastly, often the grading of homeworks and tests in this class is subjective and poorly done. In his defense, most of the errors would be corrected after requesting regrades. But there were still times I lost points even though I couldn't be given a clear answer why I lost them.
So in summary, Majid wasn't an awful teacher, but in my opinion he wasn't a particularly good one either. I'd probably still take it with him again because I'm not sure how the other professors compare, but I wouldn't specifically try to take this class with him either.
Don't miss class! Make sure you give enough time and attention to this class. I had a terrible and stressful quarter and I'm probably going to retake it just to show myself I can do it :/ Also, make sure you like your TA. I stopped going to discussion and missed out on a lot of review and practice because I thought my TA wasn't very helpful and going would be wasting my time.
And here's a resource: https://www.cs.princeton.edu/~wayne/kleinberg-tardos/ . Use it together with the textbook. Good luck.
Sarrafzadeh is the best professor to take for CS 180 (though his class isn't perfect). He doesn't cover too many concepts in each lecture, and he lectures in a sort-of narrative style, showing us erroneous ways to solve a problem before revealing the correct method. You have to pay attention to what he's saying, because he doesn't write sentences on the board/screen. Our midterm was easy— we had already seen all of the problems except one. The final was harder, but I found that reading the (really marvelous) textbook helped for it. I liked this class.
I got an A in this class, but honestly I did not like it very much. The professor gives engaging lectures, but often times when I would look back over my notes for the class, I realized that they are very surface level, and I didn't actually learn much about proofs and stuff like that in class. I have no idea why everyone loves the prof so much, he is a cool guy but I learned WAY WAY more from the textbook (which is amazing) and from podcasted lectures online I found on youtube.
The homework is a good difficulty -- I did it the night before for most of the weeks, and most of the answers are online, so it really isn't too bad. However, it teaches you a decent amount. It's worth a lot, so make sure you check your answers online (they are easily available on stack overflow and other free resources) before you turn it in. I would try not to copy because they are fairly similar to midterm/final questions.
The professor initially says its important to attend his lectures every class. This is NOT true. Everything he covers is in the textbook, except P/NP, which is extensively covered online. He even tells you the chapters he covers for the midterm/final. I skipped a fair bit of lectures because I realized I was learning nothing from his class, and the textbook covers it a lot better at times. However, he will keep you entertained in lecture, and a few key points (which he covers really fast) are pretty insightful, so maybe in the future I would skip less if I had to take the class again.
The midterm was an absolute joke. I actually have no clue how everyone didn't get a 100% on the midterm. The tests are crazy similar to a few tests easily available on test banks, and the practice midterm. So just review those and you should be fine.
Finally, the final. Honestly, it was a complete shitshow. I swear I got every question wrong but somehow the graders gave me an insane amount of points on every question, it made no sense. I'm posting this before regrade requests come in, because I know a lot of my friends got screwed over for no reason, but for me, I somehow got a good score? Final breakdown: 1 (very easy) network flow question, 1 (lowkey impossible) P/NP, 2 DP, and 2 divide and conquer. Honestly they need to grade the final better because there were 0 comments on any of the questions, and I still have no idea how I got so many points.
So, all in all I'd take this class because the hws/midterm are ez 100%s, and that is 60% of the final grade. And the avg for the class is crazy high, something like median A- or something. But I don't think Majid is really that good of a lecturer, I felt like I didn't learn in depth much from any lecture, just a weak surface level understand. So be prepared to rely on the textbook + online resources for this class, hope you do well on the final, and feel free to skip lectures, and you should be chilling with an ez A.
A lot of reviews are from people who got A's, which is around the top 1/3 of the class. I was literally in the MIDDLE of the class, so maybe I can offer a more accurate perspective. Majid is a decent professor. Not super-amazing like some of these reviews say, but not that bad either. His lectures are good, and the textbook is good too. The homeworks are hard and time-consuming, but doable. I recommend splitting the problems into 2 or 3 sittings rather than trying to do all the problems in a single sitting. The midterm wasn't too bad — it was mostly based on problems he did in class. I got the exact average score on it. The final was much harder and was unfortunately cumulative. I did much worse on it, but so did most of the class. I ended up getting the exact average score once again. Now, Majid often jokes about how he'll only give 1 or 2 points of partial credit for 20 point problems if you don't get everything right, but THIS IS NOT TRUE! He's actually a pretty lenient grader. I got a problem completely wrong on the final but he gave me half-credit just for TRYING the problem. So he's nicer than he seems!
I never attended class and used the textbook for everything and got an A. However, I also got some notes from friends and on each test there were a couple questions from the lectures verbatim. So either attend lecture or have a friend give you the notes and you should do well. Tests were also super easy.
If you can take 180 with him, take it with him.
- Never be late on HW submissions
- Prepare 1-2 days in advance for tests
- Get the class notes even if you don't attend
I actually liked and enjoyed his teaching method but some others found him slow. He does elaborate on each topic so whatever he covers he teaches well.
Strongly recommended
Majid is the best instructor for a CS class since Smallberg and Nachenberg.
Majid gives very clear and concise lectures. He stresses on ways of thinking instead of individual algorithms, which is very helpful for CS majors. For me, when I see leetcode questions, I will try to think systematically before writing down any code. For example, what type of question is this? How do I approach it using blablabla method?
Majid is very funny during his lectures. He encourages students to answer questions and often jokes about "Are you willing to bet your grade on that?" When he talks about important concepts, he will say something like, "If you tell your boss that you don't understand this, you get fired." It's an 8 am class, but I can hardly fall asleep because the lecture is so funny and engaging.
Majid doesn't write often on the board, so you have to write down what he says quickly. The textbook is very dry and a little bit hard to understand, but he gives us very clear lectures so we don't usually need to read the textbook to understand materials.
Homework is very long and hard, but they really help you practice that way of thinking. Thinking through those questions will not only help you with your exams, but also with your interviews. Do not look at "solutions" before you really think hard about those problems!
Sarrafzadeh is, without a doubt, one of the best CS professors I have ever had. For CS 180, he always keeps his lectures short (one and a half hours max) and he makes a lot of jokes during class. His explanations are clear and concise, and he has always seemed very willing to go over a concept more than once if students are still confused. Be sure to attend class because exams are based primarily off lecture material (also, in both my midterm and final, he used one of the problems/applications from class as an exam question, so pay attention!). It helps that his lectures are very engaging and genuinely interesting. That said, you will have to rely on yourself to do well in this class - do all the homeworks by yourself and be sure you understand exactly how each algorithm works. It may be a lot of work but it will be worth it in the end. The TA's for the class are usually extremely helpful as well, so it doesn't hurt to attend discussion. The only bad thing I can think of is that he's usually busy during his scheduled office hours.
Sarrafzadeh is a solid professor. Lectures consist of mostly him going over problems and their solutions to demonstrate whatever chapter we're focusing on. There's not as much conceptual background but he's very clear and well-organized in going through the questions.
The midterm was fairly easy. Majority of the questions were literally problems he did in class, or otherwise extremely straightforward (ex. show the steps of BFS on this graph). The final was more difficult - I recommend going to UPE's review session to get a better grasp of the course material.
Overall I was disappointed with this class. It's clear Majid means well and cares about student's learning, but in my opinion he goes about it poorly.
Firstly, I found the lectures to often be confusing. He teaches by introducing problems, and intentionally going down dead ends in order to illustrate how to go through the problem solving process. Sometimes this works well, but a lot of the time it's just confusing, especially for someone who already has a basic understanding of the concepts from internships / personal projects. There were many times I was confused in class, but after I'd just do a google search and find a really concise and clear answer. Personally I think it'd help a lot if he just gave the simple overview first as a primer, and then went into the problems.
Secondly, there are a lot of organizational annoyances in this class. Firstly, you have to submit your homework as a physical copy immediately before class starts, and it won't be accepted after the start time. Your only other option is to hunt down your TA and give it to them before that time. This makes it really easy to accidentally miss a submission if you oversleep or something happens. He could easily fix this just by using Gradescope or having a homework drop-box, so I'm not really sure why he does this. Secondly, he refuses to post his lectures online, and tells his TAs to not post their slides. He says this is because forcing students to come to class makes them learn better, but I find it counterproductive to intentionally keep learning materials from your students. Lastly, often the grading of homeworks and tests in this class is subjective and poorly done. In his defense, most of the errors would be corrected after requesting regrades. But there were still times I lost points even though I couldn't be given a clear answer why I lost them.
So in summary, Majid wasn't an awful teacher, but in my opinion he wasn't a particularly good one either. I'd probably still take it with him again because I'm not sure how the other professors compare, but I wouldn't specifically try to take this class with him either.
Don't miss class! Make sure you give enough time and attention to this class. I had a terrible and stressful quarter and I'm probably going to retake it just to show myself I can do it :/ Also, make sure you like your TA. I stopped going to discussion and missed out on a lot of review and practice because I thought my TA wasn't very helpful and going would be wasting my time.
And here's a resource: https://www.cs.princeton.edu/~wayne/kleinberg-tardos/ . Use it together with the textbook. Good luck.
Sarrafzadeh is the best professor to take for CS 180 (though his class isn't perfect). He doesn't cover too many concepts in each lecture, and he lectures in a sort-of narrative style, showing us erroneous ways to solve a problem before revealing the correct method. You have to pay attention to what he's saying, because he doesn't write sentences on the board/screen. Our midterm was easy— we had already seen all of the problems except one. The final was harder, but I found that reading the (really marvelous) textbook helped for it. I liked this class.
I got an A in this class, but honestly I did not like it very much. The professor gives engaging lectures, but often times when I would look back over my notes for the class, I realized that they are very surface level, and I didn't actually learn much about proofs and stuff like that in class. I have no idea why everyone loves the prof so much, he is a cool guy but I learned WAY WAY more from the textbook (which is amazing) and from podcasted lectures online I found on youtube.
The homework is a good difficulty -- I did it the night before for most of the weeks, and most of the answers are online, so it really isn't too bad. However, it teaches you a decent amount. It's worth a lot, so make sure you check your answers online (they are easily available on stack overflow and other free resources) before you turn it in. I would try not to copy because they are fairly similar to midterm/final questions.
The professor initially says its important to attend his lectures every class. This is NOT true. Everything he covers is in the textbook, except P/NP, which is extensively covered online. He even tells you the chapters he covers for the midterm/final. I skipped a fair bit of lectures because I realized I was learning nothing from his class, and the textbook covers it a lot better at times. However, he will keep you entertained in lecture, and a few key points (which he covers really fast) are pretty insightful, so maybe in the future I would skip less if I had to take the class again.
The midterm was an absolute joke. I actually have no clue how everyone didn't get a 100% on the midterm. The tests are crazy similar to a few tests easily available on test banks, and the practice midterm. So just review those and you should be fine.
Finally, the final. Honestly, it was a complete shitshow. I swear I got every question wrong but somehow the graders gave me an insane amount of points on every question, it made no sense. I'm posting this before regrade requests come in, because I know a lot of my friends got screwed over for no reason, but for me, I somehow got a good score? Final breakdown: 1 (very easy) network flow question, 1 (lowkey impossible) P/NP, 2 DP, and 2 divide and conquer. Honestly they need to grade the final better because there were 0 comments on any of the questions, and I still have no idea how I got so many points.
So, all in all I'd take this class because the hws/midterm are ez 100%s, and that is 60% of the final grade. And the avg for the class is crazy high, something like median A- or something. But I don't think Majid is really that good of a lecturer, I felt like I didn't learn in depth much from any lecture, just a weak surface level understand. So be prepared to rely on the textbook + online resources for this class, hope you do well on the final, and feel free to skip lectures, and you should be chilling with an ez A.
A lot of reviews are from people who got A's, which is around the top 1/3 of the class. I was literally in the MIDDLE of the class, so maybe I can offer a more accurate perspective. Majid is a decent professor. Not super-amazing like some of these reviews say, but not that bad either. His lectures are good, and the textbook is good too. The homeworks are hard and time-consuming, but doable. I recommend splitting the problems into 2 or 3 sittings rather than trying to do all the problems in a single sitting. The midterm wasn't too bad — it was mostly based on problems he did in class. I got the exact average score on it. The final was much harder and was unfortunately cumulative. I did much worse on it, but so did most of the class. I ended up getting the exact average score once again. Now, Majid often jokes about how he'll only give 1 or 2 points of partial credit for 20 point problems if you don't get everything right, but THIS IS NOT TRUE! He's actually a pretty lenient grader. I got a problem completely wrong on the final but he gave me half-credit just for TRYING the problem. So he's nicer than he seems!