- Home
- Search
- Majid Sarrafzadeh
- COM SCI 180
AD
Based on 86 Users
TOP TAGS
There are no relevant tags for this professor yet.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Grade distributions are collected using data from the UCLA Registrar’s Office.
Sorry, no enrollment data is available.
AD
The exam is extremely hard. The average is like 60ish.
The hw is time-consuming, each taking about 4-6 hours straight work.
The professor is good at the content. However, he seems to have more important stuff to do rather than caring his students.
i'll try to be concise.
1. Lecturing
majid is a good lecturer. it would be nice if he cared more about it and took up the full time. two lectures were wasted with TA review sessions (he doesn't show up), he skipped Bellman Ford (altering the syllabus to do so), and he cancelled a Tuesday (of Thanksgiving) because he went the full lecture time T/Th of the previous week and went through DP (way too quickly).
tldr; he's good at teaching, but he doesn't care and use the full class time.
2. Grading
this was an unclear point throughout the class; in particular, the way the final was handled was abysmal. There are grading mistakes on every HW and exam -- you will have to submit regrades. In response to Q6 on the final, which many students emailed TAs about, he had a strict rubric and would not consider any other correct algorithms. This was his copypasta email response to students who contacted him regarding it:
We reviewed your explanation: no additional points will be given.
despite clearly not reviewing any of them (these emails were sent within a span of 2 minutes to everyone requesting a regrade).
tldr; poor grading, poor schemes, downright incorrect, and highly uncoordinated.
3. Conclusion
Majid is a good lecturer, and I'd like to believe he's a nice person (deep down), but he truly does not care about this course or the students, and it really shows in how short he is with us and how he handles the running of the class and his lectures. He clearly would rather be doing something else.
I don't regret taking the course with him. I only wish he were better about this stuff, because he really is a good lecturer and I thoroughly enjoyed his lectures, despite them being 8 AM.
Terrible class organization, lectures were just a worse version of reading the textbook, lackluster communication about final grades.
Just take it with someone else if you don't want to hate algorithms
A fine class. This is probably one of the harder classes to grade fairly, but it seems like the graders don't care that much about precision, which should be very important. You can drop some keywords and kind of allude to your answer in general terms, which may even be wrong, and get some credit.
On the surface, this class is just ok. Honestly, Majid is a decent lecturer, and going to lectures is fairly useful most of the times. The course content is interesting too, and I definitely learned/got better at algorithms this quarter. I think the homeworks are "fair", take an appropriate length of time (not too long, not too short, but can be quite unreasonably difficult sometimes), and test relevant topics most of the times. Homework sets were 6 questions, usually 4-5 textbook questions and 1-2 leetcode questions. For each problem described, you need to describe an algorithm to solve it (no writing code, just words), describe the algorithm's time complexity, and prove the algorithm's correctness. The discussion sections are useful and while I didn't attend any, I think I should've, as they would definitely let me do better in the class.
That's where my praise for this class ends though.
Majid first of all refuses to record lectures or post any form of lecture notes, so you have to go to class or else you'd have no idea what is covered in class. This was especially bad since the course was 8-10AM this quarter, and I definitely had to skip a few lectures. Bafflingly though, he refuses to use the full two hours allotted for the class and just ends class early every lecture?? Honestly, you could see this as a good thing but I am so confused as we definitely could have covered 150% of this course's content if we actually used the lecture times that we had. He even randomly canceled one lecture to go to Malibu (I support that tbh), but didn't make any announcement of this outside of the previous lecture?? Altogether, this made determining what we actually covered and needed to know very difficult if you ever missed a single lecture.
Most of the TAs for this class were also terrible. I remember having to submit a regrade request on almost EVERY SINGLE homework assignment and exam, not because I believed the grading was unfair, but because there were just simple math/notation errors in their grading. One time, the deadline for a homework was moved FORWARD 5 hours with the midterm on the following day, with the reasoning that the TAs would release answers to the homework that we could study with during those 5 hours. Well guess what. Half of those homework answers were just plain wrong. On the midterm, we were initially marked off 9 points out of 20 for literally reciting an algorithm exactly like how Majid described it in class???
I think that the midterm was a pretty fair exam, but the final exam was an entirely different story oh boy...
The final was 2 hours instead of a normal 3 (what's the point of that?), and had 6 problems. This gives us 20 minutes per question, which imo is an incredibly tight time when there are multiple network flow and dynamic programming problems on the final. Oh yeah, not to mention that certain topics that Majid and the TAs emphasized for us to study just never showed up on the final whatsoever. But sure, maybe that isn't the worst thing ever.
People were marked off a lot for giving entirely correct answers to a question on the final just because it didn't agree with the TA's answer.
The first question on final name-dropped an algorithmic problem, and refused to elaborate. As in, almost nobody knew what it was actually asking. It was asking about a problem covered in discussion slides, NOT EVEN A PROBLEM COVERED IN LECTURE. We went over a different problem during lecture and the professor called it almost the same name as the one in the final, leading to an immense amount of confusion. I don't think I know anyone who actually knew what that question was even asking about. During the final, Majid would refuse to give any clarification about any question unless there was a typo, so we were very lost. I have no idea how you're supposed to actually know what that question was asking about even if you did go to lecture and discussion...
Overall, I think this professor is not horrible at teaching. But combining his test questions with these god-awful TAs made this class probably the worst CS class I've taken so far. And that's sad to say, because I do think that I learned a lot from this class and I could've learned a lot more.
Reviews about the HW being graded easily are completely wrong. It not only takes 6+ hours of work, the stingy TAs grade the FUCK out of the hw and take off every little point they can find FOR EVERY HW. Fuck the TAs more than the prof. At this point, they're just spiteful of their shitty discussions because no one goes to them.
We had 6 difficult but easily graded homeworks, all textbook and GeeksForGeeks questions. Midterm, final, and homeworks are basically all the same, you write an algorithm and then prove it and discuss its time complexity.
CS 180 is known for being a difficult course at UCLA. Majid boils it down to its purest form, algorithm design, and his tests are the definition of fair. In the beginning of the year, Majid told us all that attendance was mandatory, but that he wouldn't take attendance. The way that he would take attendance would be by putting examples from lecture directly on the test. Well, midterm and final rolls around and it's exactly that.
The draconian grading (marking people down a full 19% on the final or a full 11% in the class for swapping the direction of proving something) is completely different from their lax grading policy on hw but put in the time to study lecture well and you should be golden.
This class was tough, but doable. First major thing: you do not write ANY code. It's all paper algorithms and proofs and time analysis. We learned graph traversal stuff in the first half, and common algorithmic paradigms (DP, divide and conquer, greedy, etc) in the second half. We got exposed to a lot of important concepts for CS in this class, especially for technical interview prep. 6 assignments, 1 per week-ish. They were pretty doable but some of the harder problems can take some time to think through. Some are directly from the textbook, which are like 4 paragraph problem explanation word salads that only confuse you more, some are "creative problems" that I'm pretty sure are just all from GeeksForGeeks. But they prepare you for the tests somewhat well. Exams were tough but nothing super unreasonable? Final grading was too harsh but after some complaints they loosened up the rubric. Overall, I definitely learned what I was meant to in the class. Getting an A felt kind of tough, but learning the material wasn't too painful.
Majid is a clear lecturer and most likely one of the better professors you'll find for this course. He's good at walking you through problems and breaking them down in a way that's fairly understandable. Attending lectures is important -- tests are worth 80% of your grade (35% midterm, 45% final, 20% homework) and much of the test is either a word-for-word copy of what he went over in class or an application of a problem he went over in class.
Majid didn't come off as someone who genuinely cared about students/learning outside of class. Apparently he barely showed up for his office hours, and he refused to record lectures despite being in a room that could Bruincast and despite the fact that there was still a LOT of COVID cases this quarter. For homework, TA's were apparently not given a solution key, so office hours weren't always helpful.
I suspect that there was no official rubric for the tests either, and since each TA graded a different question, there were vast differences in grading between each question. I probably wouldn't mind this usually, but considering how much exams are weighted, I kind of just think this is irresponsible. (For both the midterm and the final, there was one TA who would take off 10/20 points in a problem if you didn't find the optimal solution, despite the question not ASKING you to find the optimal solution. This was not consistent with other TAs' grading. I'm sure you're thinking "this is an algorithms class, of course you need to find the optimal solution." Yeah, I would have, too, but in the beginning of the course, Majid would show us a brute force method and go on and on about how we just need to answer what was asked of us, and to not needlessly overcomplicate a problem. When this egregious grading was escalated to him, though, he was dismissive and said "this course has always been about finding the optimal solution." Bro. I got 5 points back in regrade requests, but consider that those 5 points taken off in the midterm cost me an overall 2% of my grade and was the difference between my B and a B+/A-. This is why I'm so annoyed about the lack of clarity or consistency in grading.)
My biggest suggestion is to thoroughly know the algorithms, runtimes, and proofs he goes over in class. Know what keywords or hints point you towards a type of algorithm (like if a question asks you to solve in an O(n) runtime, you're probably going to need a greedy algorithm). I also suggest making a masterlist of algorithms that he goes over—it was pretty difficult to go through my notes and figure out each algorithm he'd covered. If you miss a lecture, be sure to get notes from someone else, though I will say it's not really the same as sitting in class. (We had lecture at 8 am and I got into the lovely habit of falling asleep in class after week 5, and studying for the final off my friends' notes was so bad; algorithms are just lowkey hard to understand on paper). If Lionel Levine is one of the TA's, attend his discussion sections and go to his office hours—he's honestly a godsend. He'll review algorithms, additional example problems, and potentially give you some tips for the homework.
TL;DR: I don't think Majid is someone who really cares about students, but his class is designed in such a way that if you pay attention, you'll be fine. So glad this class is over lmao!
The exam is extremely hard. The average is like 60ish.
The hw is time-consuming, each taking about 4-6 hours straight work.
The professor is good at the content. However, he seems to have more important stuff to do rather than caring his students.
i'll try to be concise.
1. Lecturing
majid is a good lecturer. it would be nice if he cared more about it and took up the full time. two lectures were wasted with TA review sessions (he doesn't show up), he skipped Bellman Ford (altering the syllabus to do so), and he cancelled a Tuesday (of Thanksgiving) because he went the full lecture time T/Th of the previous week and went through DP (way too quickly).
tldr; he's good at teaching, but he doesn't care and use the full class time.
2. Grading
this was an unclear point throughout the class; in particular, the way the final was handled was abysmal. There are grading mistakes on every HW and exam -- you will have to submit regrades. In response to Q6 on the final, which many students emailed TAs about, he had a strict rubric and would not consider any other correct algorithms. This was his copypasta email response to students who contacted him regarding it:
We reviewed your explanation: no additional points will be given.
despite clearly not reviewing any of them (these emails were sent within a span of 2 minutes to everyone requesting a regrade).
tldr; poor grading, poor schemes, downright incorrect, and highly uncoordinated.
3. Conclusion
Majid is a good lecturer, and I'd like to believe he's a nice person (deep down), but he truly does not care about this course or the students, and it really shows in how short he is with us and how he handles the running of the class and his lectures. He clearly would rather be doing something else.
I don't regret taking the course with him. I only wish he were better about this stuff, because he really is a good lecturer and I thoroughly enjoyed his lectures, despite them being 8 AM.
Terrible class organization, lectures were just a worse version of reading the textbook, lackluster communication about final grades.
Just take it with someone else if you don't want to hate algorithms
A fine class. This is probably one of the harder classes to grade fairly, but it seems like the graders don't care that much about precision, which should be very important. You can drop some keywords and kind of allude to your answer in general terms, which may even be wrong, and get some credit.
On the surface, this class is just ok. Honestly, Majid is a decent lecturer, and going to lectures is fairly useful most of the times. The course content is interesting too, and I definitely learned/got better at algorithms this quarter. I think the homeworks are "fair", take an appropriate length of time (not too long, not too short, but can be quite unreasonably difficult sometimes), and test relevant topics most of the times. Homework sets were 6 questions, usually 4-5 textbook questions and 1-2 leetcode questions. For each problem described, you need to describe an algorithm to solve it (no writing code, just words), describe the algorithm's time complexity, and prove the algorithm's correctness. The discussion sections are useful and while I didn't attend any, I think I should've, as they would definitely let me do better in the class.
That's where my praise for this class ends though.
Majid first of all refuses to record lectures or post any form of lecture notes, so you have to go to class or else you'd have no idea what is covered in class. This was especially bad since the course was 8-10AM this quarter, and I definitely had to skip a few lectures. Bafflingly though, he refuses to use the full two hours allotted for the class and just ends class early every lecture?? Honestly, you could see this as a good thing but I am so confused as we definitely could have covered 150% of this course's content if we actually used the lecture times that we had. He even randomly canceled one lecture to go to Malibu (I support that tbh), but didn't make any announcement of this outside of the previous lecture?? Altogether, this made determining what we actually covered and needed to know very difficult if you ever missed a single lecture.
Most of the TAs for this class were also terrible. I remember having to submit a regrade request on almost EVERY SINGLE homework assignment and exam, not because I believed the grading was unfair, but because there were just simple math/notation errors in their grading. One time, the deadline for a homework was moved FORWARD 5 hours with the midterm on the following day, with the reasoning that the TAs would release answers to the homework that we could study with during those 5 hours. Well guess what. Half of those homework answers were just plain wrong. On the midterm, we were initially marked off 9 points out of 20 for literally reciting an algorithm exactly like how Majid described it in class???
I think that the midterm was a pretty fair exam, but the final exam was an entirely different story oh boy...
The final was 2 hours instead of a normal 3 (what's the point of that?), and had 6 problems. This gives us 20 minutes per question, which imo is an incredibly tight time when there are multiple network flow and dynamic programming problems on the final. Oh yeah, not to mention that certain topics that Majid and the TAs emphasized for us to study just never showed up on the final whatsoever. But sure, maybe that isn't the worst thing ever.
People were marked off a lot for giving entirely correct answers to a question on the final just because it didn't agree with the TA's answer.
The first question on final name-dropped an algorithmic problem, and refused to elaborate. As in, almost nobody knew what it was actually asking. It was asking about a problem covered in discussion slides, NOT EVEN A PROBLEM COVERED IN LECTURE. We went over a different problem during lecture and the professor called it almost the same name as the one in the final, leading to an immense amount of confusion. I don't think I know anyone who actually knew what that question was even asking about. During the final, Majid would refuse to give any clarification about any question unless there was a typo, so we were very lost. I have no idea how you're supposed to actually know what that question was asking about even if you did go to lecture and discussion...
Overall, I think this professor is not horrible at teaching. But combining his test questions with these god-awful TAs made this class probably the worst CS class I've taken so far. And that's sad to say, because I do think that I learned a lot from this class and I could've learned a lot more.
Reviews about the HW being graded easily are completely wrong. It not only takes 6+ hours of work, the stingy TAs grade the FUCK out of the hw and take off every little point they can find FOR EVERY HW. Fuck the TAs more than the prof. At this point, they're just spiteful of their shitty discussions because no one goes to them.
We had 6 difficult but easily graded homeworks, all textbook and GeeksForGeeks questions. Midterm, final, and homeworks are basically all the same, you write an algorithm and then prove it and discuss its time complexity.
CS 180 is known for being a difficult course at UCLA. Majid boils it down to its purest form, algorithm design, and his tests are the definition of fair. In the beginning of the year, Majid told us all that attendance was mandatory, but that he wouldn't take attendance. The way that he would take attendance would be by putting examples from lecture directly on the test. Well, midterm and final rolls around and it's exactly that.
The draconian grading (marking people down a full 19% on the final or a full 11% in the class for swapping the direction of proving something) is completely different from their lax grading policy on hw but put in the time to study lecture well and you should be golden.
This class was tough, but doable. First major thing: you do not write ANY code. It's all paper algorithms and proofs and time analysis. We learned graph traversal stuff in the first half, and common algorithmic paradigms (DP, divide and conquer, greedy, etc) in the second half. We got exposed to a lot of important concepts for CS in this class, especially for technical interview prep. 6 assignments, 1 per week-ish. They were pretty doable but some of the harder problems can take some time to think through. Some are directly from the textbook, which are like 4 paragraph problem explanation word salads that only confuse you more, some are "creative problems" that I'm pretty sure are just all from GeeksForGeeks. But they prepare you for the tests somewhat well. Exams were tough but nothing super unreasonable? Final grading was too harsh but after some complaints they loosened up the rubric. Overall, I definitely learned what I was meant to in the class. Getting an A felt kind of tough, but learning the material wasn't too painful.
Majid is a clear lecturer and most likely one of the better professors you'll find for this course. He's good at walking you through problems and breaking them down in a way that's fairly understandable. Attending lectures is important -- tests are worth 80% of your grade (35% midterm, 45% final, 20% homework) and much of the test is either a word-for-word copy of what he went over in class or an application of a problem he went over in class.
Majid didn't come off as someone who genuinely cared about students/learning outside of class. Apparently he barely showed up for his office hours, and he refused to record lectures despite being in a room that could Bruincast and despite the fact that there was still a LOT of COVID cases this quarter. For homework, TA's were apparently not given a solution key, so office hours weren't always helpful.
I suspect that there was no official rubric for the tests either, and since each TA graded a different question, there were vast differences in grading between each question. I probably wouldn't mind this usually, but considering how much exams are weighted, I kind of just think this is irresponsible. (For both the midterm and the final, there was one TA who would take off 10/20 points in a problem if you didn't find the optimal solution, despite the question not ASKING you to find the optimal solution. This was not consistent with other TAs' grading. I'm sure you're thinking "this is an algorithms class, of course you need to find the optimal solution." Yeah, I would have, too, but in the beginning of the course, Majid would show us a brute force method and go on and on about how we just need to answer what was asked of us, and to not needlessly overcomplicate a problem. When this egregious grading was escalated to him, though, he was dismissive and said "this course has always been about finding the optimal solution." Bro. I got 5 points back in regrade requests, but consider that those 5 points taken off in the midterm cost me an overall 2% of my grade and was the difference between my B and a B+/A-. This is why I'm so annoyed about the lack of clarity or consistency in grading.)
My biggest suggestion is to thoroughly know the algorithms, runtimes, and proofs he goes over in class. Know what keywords or hints point you towards a type of algorithm (like if a question asks you to solve in an O(n) runtime, you're probably going to need a greedy algorithm). I also suggest making a masterlist of algorithms that he goes over—it was pretty difficult to go through my notes and figure out each algorithm he'd covered. If you miss a lecture, be sure to get notes from someone else, though I will say it's not really the same as sitting in class. (We had lecture at 8 am and I got into the lovely habit of falling asleep in class after week 5, and studying for the final off my friends' notes was so bad; algorithms are just lowkey hard to understand on paper). If Lionel Levine is one of the TA's, attend his discussion sections and go to his office hours—he's honestly a godsend. He'll review algorithms, additional example problems, and potentially give you some tips for the homework.
TL;DR: I don't think Majid is someone who really cares about students, but his class is designed in such a way that if you pay attention, you'll be fine. So glad this class is over lmao!
Based on 86 Users
TOP TAGS
There are no relevant tags for this professor yet.