- Home
- Search
- Majid Sarrafzadeh
- All Reviews

Majid Sarrafzadeh
AD
Based on 85 Users
Would not recommend. Majid is a spiteful person who made my blood curdle every time he spoke.
Majid is the GOAT. This has by far been my favorite class at UCLA, regardless of what grade I get at the end. Almost every lecture was engaging, and Majid keeps it entertaining with jokes. He only lectures for 1:30 instead of the full 2, so ending early is always nice. The homework usually took me about 5-6 hours to complete, and require a good understanding of the material so its def not easy. His midterm was easy (you should be fine by just practicing his sample and other previous midterms) but the final was a lot harder (as the reviews before me have made clear). Dynamic programming is definitely the hardest topic in this class, and I'd recommend a lot of practice with a variety of problems.
One criticism I have is that he covers a lot in class that may not be in the textbook (esp proofs). Make sure you attend all classes, and if you can't, get your hands on a good set of notes. Overall would 100% recommend.
Do not take CS 148 with Majid. He is horrible at teaching this class and spends most of the lecture time talking about irrelevant bs. He also made a final that includes topics not covered in his lecture. When students called him out on that, he straight up deleted all the lecture recording on CCLE so students cannot prove he didn't cover those stuff. He also disabled chats during lectures and makes it mandatory for everyone to turn on the camera. Overall I get a manipulative vibe from him. I took his 180 2 years ago and he was great at that time. I don't know what happened to him.
The only good things about this class is that the projects are interesting and the TAs are helpful.
Majid is clearly super experienced with teaching this course. He’s very engaging and funny without trying to be. When explaining solutions, he likes to go over wrong approaches before arriving at the final correct one so it really sticks in your head why other approaches were wrong. Homework was almost all based on textbook problems and took maybe 7-9 hours each week - find study groups for this course! Midterm was almost all questions we could find from test banks (but he realized that soon after sooo), and the final was REALLY tough, but a bit more generously curved. I found my TA to be quite helpful even though each discussion had less than 5 students attending at a time. Concepts in this class are crucial for job interviews so I highly recommend attending. I think Majid for 180 is the best choice, regardless of what grade I got.
Fuck this class. It's fucking useless.
This is a review for CS M148 with Majid. If it wasn't for Lionel being an awesome TA, this class would be completely worthless. Take M146 with Sankararaman instead. M148 is a lot easier than M146, but you don't actually learn the concepts and then get blindsided by the exam which covers material never discussed in lectures. The first two projects were easy, basically given to you by the TAs in discussions. The third project was way too vague. I learned a lot of the same stuff in more depth in M146.
Grading: 15% Homeworks (Doable in < 2 hrs)
40% Projects (Easy project 0, and 3 projects over the course of the quarter)
40% Exam
5% Participation
Overall, I would say I like what they are going for in this class. They try and do a mix of teaching you the theoretical aspects of data science, while also giving you practical data science projects in python. Professor was absolutely horrible, though. His lectures were really hard to pay attention to and he was not clear in what he was teaching at all. At the end of this class, I would say I obtained a light understanding of the data science/ML theory and a good understanding of how to actually create models and using data science libraries.
He's such a CS legend. End of proof.
Boring and useless class. But like what others said, a good TA (and parter) will save you tons of effort. The projects are fairly easy and the spec is mostly clear (unlike the shitty 152B). You can find past solutions online. Writing reports is tedious, time-consuming but not difficult. For the final project which you can make on your own, I suggest working on something simple, because a complicated one will not bring you much grade boost and will likely cause trouble.
Off the bat; if you can, take this class with Prof Sarrafzadeh in person. And it's a fair bet to say that he's the best so far at UCLA for CS 180.
I took it with him online and well, there are too many challenges that he faces with regards to the online structure. You can't ask clarifying questions during the online exams, you can't ask him questions easily during lectures (and he keeps the chat off), and you can't "hang around" in office hours to learn from other people's questions cause if no questions are left he'll just shut down the zoom link (this is from my experience, at least).
In the bright event that no one has to ever consider taking CS 180 online after 2020, here's my review of the class:
Content:
Hella useful. The course content is really really practical, specially if you want to land in the industry. The algorithmic paradigms he'll use are here to stay for a while and the way you'll have to force yourself to ask clarifying questions in the course will be an immense boost during an interview. Plus dynamic programming is your not-so-brute-but-totally-brute-force way out of a lot of hard problems that an interviewer can throw at you. Basically, CS 32 data structures and CS 180 algorithms are your best friends for an interview. From personal experience, I landed a big-n internship thanks to the greedy and DP paradigms.
Will Prof Sarrafzadeh teach it to that level? No. He'll give you the paradigm, and if you do the hw questions and tackle them for hours on end, you will get a certain amount of intuition. It's really the only way; practice and practice.
Exams:
They will be fair. If you have a strong understanding of the algorithm proofs done in class and have practiced dynamic programming well enough, you'll be fine. Revise the homework, the proofs, and the questions he's done in class. And actually rewrite the class notes religiously, it helps SO MUCH for retention and will save you precious week 10 time when you start preparing.
Curve:
None. :-|. I've even heard he's down curved this time and have 88 and 89% raw scores a B. This should be online specific though; normally he'd give a decent curve I'd assume.
Book:
Read it. If you don't understand something from lecture, you'll find it here. If you understand everything from lecture, you'll find a great revision here.
All that said, this is a very important class and a very interesting one. But also very time consuming. 6 questions only in the homework, but each one took me 4-5 hours. It'll be worth it at the end though.
Shoutout to Lionel for being all round amazing, enthusiastic, and awesome, and for doing all he could to make it as less stressful as possible. Oh and, shoutout to Sai and Evan too for having such awesome office hours! (I didn't interact much with the others haha).
Majid is the GOAT. This has by far been my favorite class at UCLA, regardless of what grade I get at the end. Almost every lecture was engaging, and Majid keeps it entertaining with jokes. He only lectures for 1:30 instead of the full 2, so ending early is always nice. The homework usually took me about 5-6 hours to complete, and require a good understanding of the material so its def not easy. His midterm was easy (you should be fine by just practicing his sample and other previous midterms) but the final was a lot harder (as the reviews before me have made clear). Dynamic programming is definitely the hardest topic in this class, and I'd recommend a lot of practice with a variety of problems.
One criticism I have is that he covers a lot in class that may not be in the textbook (esp proofs). Make sure you attend all classes, and if you can't, get your hands on a good set of notes. Overall would 100% recommend.
Do not take CS 148 with Majid. He is horrible at teaching this class and spends most of the lecture time talking about irrelevant bs. He also made a final that includes topics not covered in his lecture. When students called him out on that, he straight up deleted all the lecture recording on CCLE so students cannot prove he didn't cover those stuff. He also disabled chats during lectures and makes it mandatory for everyone to turn on the camera. Overall I get a manipulative vibe from him. I took his 180 2 years ago and he was great at that time. I don't know what happened to him.
The only good things about this class is that the projects are interesting and the TAs are helpful.
Majid is clearly super experienced with teaching this course. He’s very engaging and funny without trying to be. When explaining solutions, he likes to go over wrong approaches before arriving at the final correct one so it really sticks in your head why other approaches were wrong. Homework was almost all based on textbook problems and took maybe 7-9 hours each week - find study groups for this course! Midterm was almost all questions we could find from test banks (but he realized that soon after sooo), and the final was REALLY tough, but a bit more generously curved. I found my TA to be quite helpful even though each discussion had less than 5 students attending at a time. Concepts in this class are crucial for job interviews so I highly recommend attending. I think Majid for 180 is the best choice, regardless of what grade I got.
This is a review for CS M148 with Majid. If it wasn't for Lionel being an awesome TA, this class would be completely worthless. Take M146 with Sankararaman instead. M148 is a lot easier than M146, but you don't actually learn the concepts and then get blindsided by the exam which covers material never discussed in lectures. The first two projects were easy, basically given to you by the TAs in discussions. The third project was way too vague. I learned a lot of the same stuff in more depth in M146.
Grading: 15% Homeworks (Doable in < 2 hrs)
40% Projects (Easy project 0, and 3 projects over the course of the quarter)
40% Exam
5% Participation
Overall, I would say I like what they are going for in this class. They try and do a mix of teaching you the theoretical aspects of data science, while also giving you practical data science projects in python. Professor was absolutely horrible, though. His lectures were really hard to pay attention to and he was not clear in what he was teaching at all. At the end of this class, I would say I obtained a light understanding of the data science/ML theory and a good understanding of how to actually create models and using data science libraries.
Boring and useless class. But like what others said, a good TA (and parter) will save you tons of effort. The projects are fairly easy and the spec is mostly clear (unlike the shitty 152B). You can find past solutions online. Writing reports is tedious, time-consuming but not difficult. For the final project which you can make on your own, I suggest working on something simple, because a complicated one will not bring you much grade boost and will likely cause trouble.
Off the bat; if you can, take this class with Prof Sarrafzadeh in person. And it's a fair bet to say that he's the best so far at UCLA for CS 180.
I took it with him online and well, there are too many challenges that he faces with regards to the online structure. You can't ask clarifying questions during the online exams, you can't ask him questions easily during lectures (and he keeps the chat off), and you can't "hang around" in office hours to learn from other people's questions cause if no questions are left he'll just shut down the zoom link (this is from my experience, at least).
In the bright event that no one has to ever consider taking CS 180 online after 2020, here's my review of the class:
Content:
Hella useful. The course content is really really practical, specially if you want to land in the industry. The algorithmic paradigms he'll use are here to stay for a while and the way you'll have to force yourself to ask clarifying questions in the course will be an immense boost during an interview. Plus dynamic programming is your not-so-brute-but-totally-brute-force way out of a lot of hard problems that an interviewer can throw at you. Basically, CS 32 data structures and CS 180 algorithms are your best friends for an interview. From personal experience, I landed a big-n internship thanks to the greedy and DP paradigms.
Will Prof Sarrafzadeh teach it to that level? No. He'll give you the paradigm, and if you do the hw questions and tackle them for hours on end, you will get a certain amount of intuition. It's really the only way; practice and practice.
Exams:
They will be fair. If you have a strong understanding of the algorithm proofs done in class and have practiced dynamic programming well enough, you'll be fine. Revise the homework, the proofs, and the questions he's done in class. And actually rewrite the class notes religiously, it helps SO MUCH for retention and will save you precious week 10 time when you start preparing.
Curve:
None. :-|. I've even heard he's down curved this time and have 88 and 89% raw scores a B. This should be online specific though; normally he'd give a decent curve I'd assume.
Book:
Read it. If you don't understand something from lecture, you'll find it here. If you understand everything from lecture, you'll find a great revision here.
All that said, this is a very important class and a very interesting one. But also very time consuming. 6 questions only in the homework, but each one took me 4-5 hours. It'll be worth it at the end though.
Shoutout to Lionel for being all round amazing, enthusiastic, and awesome, and for doing all he could to make it as less stressful as possible. Oh and, shoutout to Sai and Evan too for having such awesome office hours! (I didn't interact much with the others haha).