Hanan Samet

This professor has taught: CMSC420, CMSC725, CMSC798, CMSC828T
Information Review
Hanan Samet
CMSC420

Anonymous
12/14/2023
Very hard to follow his lectures, lost track of slides frequently. Quadtree project was written in C and guidance for it was in the book he wrote, very difficult. I felt like the whole class was a trial by fire due to the lack of support and difficulty of understanding lectures.
Hanan Samet
CMSC420

Expecting an A
Anonymous
05/01/2023
Pros: 1. Incredibly knowledgeable about his materials. Even Donald Knuth mentions his name in The Art of Computer Programming. 2. Very practical and intuitive approach to data structures. Very different from theory and proof-heavy professors like David Mount, Roger Eastman, or Justin Wyss-Gallifent. His focus is on building software rather than theoretical exercises. 3. Homeworks are incredibly easy. 4. Professor and TAs are generous graders. 5. He lets everyone take the exam for as long as they need. 6. His slides are works of art. They were prepared in 1995, but they are so good, they require no changing. 7. The best thing in the class is his book, Notes on Data Structures. I have never read a better data structures book in my life. The closest that comes to my mind is Programming Pearls by Jon Bentley. It's very intuitive and detail-heavy. Almost no mathematics. 8. You get to learn how a Lisp interpreter works. Lisp projects are easy too. 9. You'll never be afraid of implementing an incredibly complex data structure in a low-level language like C after finishing the quadtree project. 10. Professor Samet is quite entertaining, and you will enjoy him if you have a sense of humor. Cons: 1. The pseudocode on books and slides are incomprehensible for us Pythonnials. 2. There are two descriptions for the quadtree project: a new and an old one. The old one is backdated and has wrong information. The new one is correct. You'll be given both. 3. If you do not contact the professor and TAs constantly, you will very likely not be able to do the project from description alone. 4. The TAs are graduate students and never did the project themselves. They are unable to answer your questions about the project correctly. Even if they do, they're mostly wrong. 5. The quadtree project changes a bit every semester, so professor mixes up the details. He might give the wrong answer to your question. 6. The project is an extensive exercise in C programming. Requires a lot discipline, organization, and patience. 7. His voice is not as loud as a random young professor, but he uses a mic, so that's not a problem. The problem is you might not like lectures if you are expecting a loud young screaming professor. Giving him a 5 star despite all that just because he can teach you the way he thinks, and you will not find another man in UMD who thinks like him when it comes to data structures. It just requires some patience.
Hanan Samet
CMSC420

Anonymous
11/30/2022
Doesn't know what an HDMI cable is, haven't personally taken his class, but be warned, he knows not what he says!
Hanan Samet
CMSC420

Expecting a W
Anonymous
09/13/2021
Do not take this professor at any cost. He will give you an assignment without teaching you anything. He can't even teach. He will want you to read the bullshit book he wrote, and you can't even hear his voice. It is a total mess. I don't know about any other professors but take another professor instead because there is nothing worse than Samet.
Hanan Samet
CMSC420

Anonymous
12/25/2020
Dry on details with the quadtree assignment along with a poor teaching style with hard to follow slides (that he hasn’t updated since 1998) make for my most frustrating course in UMD this far.
Hanan Samet
CMSC420

Expecting a W
Anonymous
11/16/2020
In my family, I am perceived as the "smart one" and basically forced to help my younger sibling in 6th grade math homework. Admittedly though, nothing much is learned during these tutor sessions because I cannot fathom how what I 100% understand to be difficult and because I do not have any teaching skills at all. Now imagine me, but now I am over 70 years old, very unfamiliar with very recent technology, and is paid to teach. That is basically professor Hanan Samet. He is really smart, having pioneered research into Computer Science and even has his own wikipedia page. But all that matters is if he can teach college students and my god he doesn't. Taken him with online classes, his lectures were boring and barely understandable. Most of it consisted of him going through a pdf of illustrations that are hardly understandable by itself, therefore you have to watch the lecture so he can explain what it all means, but then you can't get through the dull barrier or understand at all. Also for some reason the slides and chapter pdfs given do not support ctrl+f, and this is especially bad given that these things are huge pages of text. The big project seems to be the same each time according to the other reviews, but this time the project was split into parts with different due dates. While I appreciate it making me keep my procrastination in check, the project was still god awful. This mostly comes down to the information on the project like the project description. I've learned more on how to do the project from piazza than the pdf given. At one point, plenty of people received zero's because the hidden tests were exponentially larger than the sample ones given. Fortunately we were given a second chance to edit our project, but I wasn't happy having to edit in C of all things. They still made us use these weird huge inputs for the later parts that just makes it too difficult to debug. Oh yeah instead of using gradescope or the submit server to submit code, Samet uses Elms. Gradescope is used, but only for written homework. I should have known this professor was not gonna be good at all when the only section open for 420 was him. I wish I actually saw all these previous reviews before I was too desperate to take something for the semester. If I had the ability, I would go full Jimmy Neutron and time travel back to the exact time and location I was signing up on Testudo. I would slap that laptop out of his hand and tell myself to get a new laptop, because it's way cheaper than the tuition taking his class.
Hanan Samet
CMSC420

Expecting a B
Anonymous
12/13/2017
Incredibly rude professor, constantly yelling at people for asking questions or for not having known material. In our class, someone joined the class late because somebody dropped the class so they got on off the waitlist. Samet spent the first 15 minutes of the class lecturing the guy who joined late saying "this class isn't a train, you can't get on and off whenever you want, you need to have done all the homeworks already. Where are they??" There's no grade server or submit server, he made us print some of our projects and hand them in, and we didn't receive grades until a couple days ago. There's also no elms page, and he hasn't sent a single email or message on elms out. All he does is sit there and yell at people, definitely would not take.
Hanan Samet
CMSC420

Expecting an A
Anonymous
12/18/2011
He's by far the worst professor I've ever seen. Some people say he's good because he wrote a bunch of thick books - but even those are not great. He talks down to everybody, beginning with students, and ending with his TA and fellow professors. (At the classes he talks about how other professors teaching the same class are so much worse than him, and how their slides are stolen from other people...) Then there's this Quadtree project, which is supposed to be written in C/C++ or Pascal. Still even though he claims to be an expert in all of them (and all Computer Science, for that matter), he constantly demonstrates he doesn't know what he's talking about. But again, according to him, everybody is wrong and only he's right. At the classes, he sticks to his slides and rarely gets up from his chair. Whenever someone asks something that is not explicitly explained in there, he gets angry, saying that we're supposed to know it already. That may be acceptable if after saying it he would actually do the explanation, which of course, he doesn't (I suspect that's because he doesn't know anything out of those slides...). He's paranoid about using electronic tools like the submit server or the grade server - because of this, it's hard to keep track of your progress in the class. We've just taken the final, and if we want to find out our score, we have to go to his office... I guess the only good thing about this course is that it teaches you how to work on your own, and not expect it to come from your instructor - in a way, it's a good life lesson... I wouldn't take any (other) course with him!
Hanan Samet
CMSC420

Anonymous
12/15/2011
I once heard Meesh say: "Never use a binary search tree. If you use binary search then I'll laugh at you, because you're stupid. Use hashing." So useful! So up-to-date! On the first day of class, Samet spent 15 minutes comparing methods of string representation based on how much memory you can save by SHARING COMMON SUBSTRINGS. He claims to have lost the old Macintosh software that created his slides, and they're all marked Copyright 1997. You have the option of turning in your quadtree project in Pascal. So, not exactly cutting-edge. The projects are all, without exception, sorely under-specified. For all of the projects the TA had to post lengthy clarifications to make the projects possible. Right now, the early morning (!) section with Subrahmanian is full. Every time someone drops from that section, someone from Samet's section jumps ship, so Subrahmanian's stays full. 15 or so people actually show up for class every day in our section. The infamous quadtree project is ridiculous. Within the first couple days of class you have to turn in your specification for the data structure. Four weeks later it must be completely finished supporting 15 different operations, along with a text-based command parser, makefile, etc. All code must be completely from scratch, and you'll need to implement a linked list, a heap, and a binary search tree (heh heh) during this time to finish your quadtree. We didn't get to quadtrees in lecture until December, so you need to figure everything out by reading his 1000+ page tome. And if, like me, you escaped 216 without ever learning how to use gdb then you'll have to develop a feel for that too because it's impossible to write 2,000 lines of bug-free anything (let alone C) without a fully-featured debugger. Many weeks of class are wasted learning Lisp, which has nothing to do with data structures. Those projects are straightforward compared to the quadtree project, but they're nontrivial. The tests are hard. For the first midterm, out of 24 exams (by the way, note that the class started out full with 40 students) 1 got <30%, 2 others got <40%, 8 others got <50%, 7 others got <60%, 6 others got <70%, 4 others got <80%, and 1 other got <90%. So only 5 people got above a 70%. I can't say it was a total waste of time, because I did gain a lot of experience writing crappy C code, but if I wanted to do that then I'd have taken OS.
Hanan Samet
CMSC420

Expecting a C
Anonymous
12/06/2011
Do not take Data Structures with Samet. He knows the material well- he literally wrote the book on it, and he'll make sure you know it. He'll talk down to you, make a big deal about how you don't know anything, and not actually teach you very much you haven't already seen before in other classes until way after you've done the projects on them. He assigned us the notorious quadtree project, which while a fun exercise, isn't fun when you have only the first three weeks or so of the semester to finish it. If you aren't experienced writing thousand-line projects with C/C++/Pascal, if you appreciate your Friday nights as times to not do work, or if you like teachers that give you reasonable test cases and use the submit server instead of making the TA grade your output by hand... you will start hating this course very early if you take it with Samet. He teaches on overhead slides and "animated" pdfs. He teaches us to think recursively, and teaches us how trees work, and seems to think he has a better definition for just about everything in Computer Science than everyone else. (He doesn't.) He doesn't use the submit server because the process "isn't human enough" for him. He really really does know his stuff. He's a smart guy, but he teaches you the material in vague, opinionated terms using materials that a) largely haven't been updated in over a decade and b) don't really correspond with the rest of our CS education. But hey, he's still teaching the course, so he must be doing something right... oh, that's right- tenure. Never mind.
Hanan Samet
CMSC420

Expecting a B-
pluralfacade
04/29/2009
Probably the best thing about this guy is that he is very smart and knows what he's talking about. Unfortunately, thats where the good things end. On the the first day of class, he assigns the notorious quadtree project. Although the first two parts of it are very easy, parts 3 and 4 are complete hell. Samet himself gives no instruction on the project himself, instead telling you to learn about quadtrees from the long project description and gigantic textbook of his. He then goes off lecturing us about linked lists and other stupid structures we already learned about time and time again. During lectures, he simply reads off lecture slides which he wrote, making lecture extremely boring. He tries to engage students by calling on them randomly and asking them questions, but (unsurprisingly) people rarely ever answer them the way he wants. If you don't learn the material from lecture, you have two other resources to learn the material from: Notes on Data Structures and Multidimensional Data Structures, two books which were also written by Samet. So yeah, you basically learn stuff by reading the same material three times. And don't try to learn the material from somewhere else: Samet has carefully added his own opinion and bias to his course materials, and these are often important for the test. If you put down that "an advantage of doubly linked lists is that you can traverse backwards", he will frustratingly mark you wrong. He seems to have this delusion that CMSC 420 is the only class his students are taking, and that we spend all of our time on it. It is not below him to assign extra homework assignments and lectures whenever he wants, and he often does this, even when students are buried in projects or other work for his class. We had class Tuesdays and Thursdays, and he would literally assign extra lectures on Fridays, and then would get upset when only 8 people showed up to them. Seriously, I don't know what people see in him. My rating is based solely on his TEACHING, not on his intelligence or research. It's people like Samet that really make we wish the tenure system is abolished and that teaching departments actually had some quality control.
Hanan Samet
CMSC420

Expecting an A
fuzzyLogic
12/28/2008
Intelligent He is sarcastic at times but quite insightful during lectures. He knows the material very well (much of it deriving from his own areas of interests) while capable of going beyond the normal curriculum. However, do be discrete about questions as he will digress/rant at times if they are bad. Pre-reading lecture slides are not necessary imo, just careful understanding during the lectures. Projects may be seem long but are relatively easy if you understand the problem's nature. Exams were relatively easy
Hanan Samet
CMSC420

Anonymous
12/28/2008
I think the best way to write a review for Dr. Samet would be in a list format, so here it goes: 1) His teaching style is not engaging and will put you to sleep. He asks the class many questions, and it's rare that students ever answer them correctly to Samet's standards. 2)He has an extremely abrasive personality and talks down to students like they're children. I felt like I was in middle school again many times throughout the semester. He also spoke badly about other professors in the department in front of the entire class. He literally said most of them don't know anything, especially about simple things like linked lists. I found this to be absurd and very unprofessional. 3)He was away on travel a lot throughout the semester and re-scheduled class a few times on different days than when class originally took place. Whenever some people wouldn't show up to these re-scheduled sessions, he would chastise the class and lecture us about how he's taking the time out of his schedule to lecture us and how everyone needs to be there. Problem is, the class was on Tuesdays and Thursdays, and rescheduling the class on a Friday evening means half of the class won't be able to be there because of work, other scheduled activities, or other private matters. Samet has a really difficult time understanding this. 4)He's a smart guy and has been teaching the material for so long that he completely understands it but expects everyone else to understand it at the same magnitude of his understanding. This makes him have a difficult time coming down to the level of undergrads and understanding that most of us are absorbing the material in the class for the first time, hence most of us actually having to learn the material. He constantly refers to topics in the class as common sense and gets agitated when students are left feeling clueless from his awful teachings. 5)The infamous quadtree project gets assigned on the first day of class, yet he teaches absolutely nothing about quadtrees. He told the class to look at some Java applets that show examples of how quadtrees work and told us to go read his encyclopedic book. That project was the most horrendous project I've done at UMD and the major reason why it was so difficult was because I didn't have a good understanding of quadtrees as I was left to research them on my own. It would've been extremely helpful if he spent the first few days of lecture talking about the mechanics of quadtrees and tips on how to implement certain operations. Instead, he jumped right into teaching us data structures we've learned as freshmen and assigned other homework assignments on top of the newly assigned quadtree project. There are other things about Dr. Samet I could mention, but I feel that the five things listed above should provide a decent foundation of what to expect from him. In regards to the class, I found the exams and some of the homework assignments to be difficult. Besides the quadtree project (which has to be implemented in C, C++, or Pascal), the remaining programming projects are all done in Lisp and are straight forward. I don't recommend Dr. Samet for this class, and if I could go back in time I would've taken it with another professor as I truly don't feel I've learned much from his class at all. I feel like I am walking away with a semi-understanding of some convoluted, advanced data structures and the knowledge of little tricks that can be used for simple data structures to save space that pointers/references take up.
Hanan Samet
CMSC420

intrusion
12/16/2007
He is a very smart man, and wants to teach. He grades tests very fairly and is willing to take time out of his day for you. It may well seem like he has difficulty coming down to the level of undergraduate students to explain things in a way we easily understand. However, a lot of the difficulty in learning from him can be alleviated by pre-reading the material in the textbook (or, more specifically, the extended notes corresponding to the lecture slides) before class. He expects you to pre-read, which is reasonable but quite time consuming. If you don't pre-read, it will be hard to learn from his lectures.