- Home
- Search
- Majid Sarrafzadeh
- All Reviews
Majid Sarrafzadeh
AD
Based on 144 Users
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.
CS180 is a hard class. But overall I think that Majid does a good job at teaching the material. If you want to know exactly what your grade will be throughout the class and not worry about the curve coming into save you, I wouldn't recommend this class. However, if you really want learn the algorithms taught and are less worried about gaining points to your grade then I would recommend this professor.
Lectures are engaging and short. He usually does not use the full 2 hours to teach however for me this was perfect as the lectures were digestible and students got a lot of extra time to ask questions about the lecture content. He was patient answering questions sometimes going back over the algorithm 3 or 4 times to make sure that everyone understood it. I was disappointed when he cut content tho because he didn't use the full time to teach.
Homework questions are harder than exam questions. However, all homework questions are findable on the internet if you need some inspiration of how to approach them. I would recommend actually understanding the approach of solving them though and not just copy pasting. Budget 6 hours if you do all of the problems intended. I found that the discussions were very helpful to review the lecture material and make sure you understood it, in addition with going over new problems. However, you need to find the good TA, shoutout Vincent.
Exam questions are hard to do in the window provided. But they are generous with partial credit linked to key words. I would recommend going over all of the problems done in lecture and all practice problems provided as some of them will be verbatim on the test. If you have time pick some textbook problems too because there was 1 verbatim from the textbook. In addition, he curves at least a letter grade. For example we had an average of about 75 on the midterm post regrades and he said that 80 would be an A. I would say don't worry about problems that you and the majority of your classmates got wrong on the test, with the curve he basically throws out 1-2 problems on the exam which compensates for your grade.
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.
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.
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.
FUCK MY LIFE
Overall not a good experience. Majid is incredibly unaccommodating with students' circumstances, he often ends lectures early, and is extremely vague about what material is important.
The homework is pretty difficult, but often times they do not help you too much with the exam questions. Moreover he gave us an optional homework 7 for review, but none of the concepts were tested on the final. What is even more ridiculous is none of the last two weeks concepts were even touched...
The final had 6 questions, and 3 questions (50% percent) were about dynamic programming, I would just say its very badly structured.
Please godsend take another professor if you can.
Majid is definitely a great professor. Be prepared to spend a lot of time on assignments. For me, I'd always look at the assignments earlier in the week, see that they're just 6 problems and think that it would be a breeze. But that's never the case. The assignments are going to make you want to claw out your eyes if you really put in the time to try and solve them correctly without just Googling the answer, and that's a really good thing. I felt like I really learned a ton from them. The tests are not so scary if you've done all the homeworks well, although the remote proctoring of the test were pretty scary, especially during the final when for some reason Majid made everyone turn on their Zoom mics during the test. Overall, from what I've heard about the other 180 professors, taking the class with Majid is absolutely the move.
Pros:
1. Majid is a good lecturer, although he is quite snarky sometimes
2. Majid covers more than most 180 professors (e.g. max flow)
Cons:
1. If your solution is not the one explicitly listed on the rubric, you will lose points. The rubric often does not contain the best solution, and you will have to frequently submit regrade requests to get points back during this course.
2. The exams are poorly worded and Majid has a strict policy of no clarifications. Some TAs are generous and will give you full marks for having reasonable interpretations. Other TAs will give you zero points for interpreting it differently from how Majid intended.
3. If you are sick or must miss a lecture/exam, good luck. There are no recordings/notes and getting a makeup exam is up to the whims of Majid.
Suggestions:
1. Majid and the TAs should be more open-minded towards alternative solutions. A simple word of assurance that alternative solutions may exist and that they will be reviewed fairly is enough. Feeling like you constantly have to fight for your grade is very taxing, and it feels terrible to have a regrade request denied with zero justification.
2. TAs should proofread exam questions beforehand and ensure that they are unambiguous. The guessing game of whether omitted details can be ignored or if there are extra assumptions you should be making is frustrating. For instance, one question on the midterm asked about "real numbers". When I asked if we can assume that "real numbers" can be hashed, I was told that that is not a question they can answer during the exam. The intended solution used hashing.
Summary:
Good lecture content, poor experience with TAs and Majid's old-fashioned policies. Unfortunately, most of the professors who teach this course do not care about you as a student. It's a shame, as algorithms are legitimately interesting and widely applicable.
I think where Majid's lectures shine is his focus on giving you a good theoretical grasp of the material without being bogged down in the details. Implementation, corner cases, etc. you'll have to figure out yourself if you really care, but Majid just wants to know whether or not you understand when to apply different algorithmic paradigms.
There were some underwhelming parts to this class, however. It wasn't as comprehensive as I would have liked, and the whole wishy-washy many words = perfect proof grading scheme was a bit sketch. I swear all you have to do to get full credit for the proofs is to structure is with as many bullet points as you can for as many sub-proofs by contradiction, or proof by induction if you're doing anything recursion or DP related - the actual words you write can be gibberish.
Anyways, let's be real here...whether it's Majid or some other CS 180 prof, the best way you are going to learn algorithms is by practicing yourself.
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.
CS180 is a hard class. But overall I think that Majid does a good job at teaching the material. If you want to know exactly what your grade will be throughout the class and not worry about the curve coming into save you, I wouldn't recommend this class. However, if you really want learn the algorithms taught and are less worried about gaining points to your grade then I would recommend this professor.
Lectures are engaging and short. He usually does not use the full 2 hours to teach however for me this was perfect as the lectures were digestible and students got a lot of extra time to ask questions about the lecture content. He was patient answering questions sometimes going back over the algorithm 3 or 4 times to make sure that everyone understood it. I was disappointed when he cut content tho because he didn't use the full time to teach.
Homework questions are harder than exam questions. However, all homework questions are findable on the internet if you need some inspiration of how to approach them. I would recommend actually understanding the approach of solving them though and not just copy pasting. Budget 6 hours if you do all of the problems intended. I found that the discussions were very helpful to review the lecture material and make sure you understood it, in addition with going over new problems. However, you need to find the good TA, shoutout Vincent.
Exam questions are hard to do in the window provided. But they are generous with partial credit linked to key words. I would recommend going over all of the problems done in lecture and all practice problems provided as some of them will be verbatim on the test. If you have time pick some textbook problems too because there was 1 verbatim from the textbook. In addition, he curves at least a letter grade. For example we had an average of about 75 on the midterm post regrades and he said that 80 would be an A. I would say don't worry about problems that you and the majority of your classmates got wrong on the test, with the curve he basically throws out 1-2 problems on the exam which compensates for your grade.
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.
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.
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.
Overall not a good experience. Majid is incredibly unaccommodating with students' circumstances, he often ends lectures early, and is extremely vague about what material is important.
The homework is pretty difficult, but often times they do not help you too much with the exam questions. Moreover he gave us an optional homework 7 for review, but none of the concepts were tested on the final. What is even more ridiculous is none of the last two weeks concepts were even touched...
The final had 6 questions, and 3 questions (50% percent) were about dynamic programming, I would just say its very badly structured.
Please godsend take another professor if you can.
Majid is definitely a great professor. Be prepared to spend a lot of time on assignments. For me, I'd always look at the assignments earlier in the week, see that they're just 6 problems and think that it would be a breeze. But that's never the case. The assignments are going to make you want to claw out your eyes if you really put in the time to try and solve them correctly without just Googling the answer, and that's a really good thing. I felt like I really learned a ton from them. The tests are not so scary if you've done all the homeworks well, although the remote proctoring of the test were pretty scary, especially during the final when for some reason Majid made everyone turn on their Zoom mics during the test. Overall, from what I've heard about the other 180 professors, taking the class with Majid is absolutely the move.
Pros:
1. Majid is a good lecturer, although he is quite snarky sometimes
2. Majid covers more than most 180 professors (e.g. max flow)
Cons:
1. If your solution is not the one explicitly listed on the rubric, you will lose points. The rubric often does not contain the best solution, and you will have to frequently submit regrade requests to get points back during this course.
2. The exams are poorly worded and Majid has a strict policy of no clarifications. Some TAs are generous and will give you full marks for having reasonable interpretations. Other TAs will give you zero points for interpreting it differently from how Majid intended.
3. If you are sick or must miss a lecture/exam, good luck. There are no recordings/notes and getting a makeup exam is up to the whims of Majid.
Suggestions:
1. Majid and the TAs should be more open-minded towards alternative solutions. A simple word of assurance that alternative solutions may exist and that they will be reviewed fairly is enough. Feeling like you constantly have to fight for your grade is very taxing, and it feels terrible to have a regrade request denied with zero justification.
2. TAs should proofread exam questions beforehand and ensure that they are unambiguous. The guessing game of whether omitted details can be ignored or if there are extra assumptions you should be making is frustrating. For instance, one question on the midterm asked about "real numbers". When I asked if we can assume that "real numbers" can be hashed, I was told that that is not a question they can answer during the exam. The intended solution used hashing.
Summary:
Good lecture content, poor experience with TAs and Majid's old-fashioned policies. Unfortunately, most of the professors who teach this course do not care about you as a student. It's a shame, as algorithms are legitimately interesting and widely applicable.
I think where Majid's lectures shine is his focus on giving you a good theoretical grasp of the material without being bogged down in the details. Implementation, corner cases, etc. you'll have to figure out yourself if you really care, but Majid just wants to know whether or not you understand when to apply different algorithmic paradigms.
There were some underwhelming parts to this class, however. It wasn't as comprehensive as I would have liked, and the whole wishy-washy many words = perfect proof grading scheme was a bit sketch. I swear all you have to do to get full credit for the proofs is to structure is with as many bullet points as you can for as many sub-proofs by contradiction, or proof by induction if you're doing anything recursion or DP related - the actual words you write can be gibberish.
Anyways, let's be real here...whether it's Majid or some other CS 180 prof, the best way you are going to learn algorithms is by practicing yourself.