Ashok Agrawala

This professor has taught: CMSC388G, CMSC412, CMSC417, CMSC498Z, CMSC798, CMSC818G, ENES601, ENES602, ENES603, GEMS296, GEMS297, GEMS396, GEMS397, GEMS496, GEMS497
Information Review
Ashok Agrawala
CMSC412

Expecting a C+
Anonymous
12/20/2023
Honestly the exams are worse than the projects and the projects are terrible. Professor refuses to put in any effort whatsoever to make this class suck less.
Ashok Agrawala
CMSC412

Expecting a C+
Anonymous
10/05/2023
terrible prof, terrible TAs. Refuse to make an elms page. website has wrong information. projects are very old, lecture has 0 to do with project.
Ashok Agrawala
CMSC412

Anonymous
02/16/2022
The review below isn't really telling of the in person situation at all. Sure, he may have been fine during Covid, but this class has been a complete nightmare in person. Like some of the other reviews below state, he was completely unresponsive to student questions and concerns, and as a result, the class suffered during his extremely convoluted projects and exams.
Ashok Agrawala
CMSC412

Expecting a B+
Anonymous
01/24/2022
While I took this course during the Covid Times, this Professor was an absolute Godsend. His only requirement to be able to turn in projects late was that you talk to him in his office, which was always a pleasure. He understood the particular pressure that students in his course were under, and worked with everyone who asked on a modified submission schedule. I had never had that with a single CS professor before, and it felt as the Prof. Agrawala truly wanted students to learn. As far as actually teaching went, he was very knowledgeable about the material, and had first hand experience with the making of modern operating systems, which he shared with the class. His slides are yes from the text book, but they are always available on the class website, and line up exactly with the textbook, which he provided as a free PDF (I wish all teachers did this). As long as you read the book and practice any sort of problem that he does step-by-step with the class, as well as study the project slides, you have what you need to know for the exams. He doesn't list out topics for studying, but he also prefaces his course with advice such as, "get one last good nights rest tonight, that's it for the semester," and "everything you heard about this course is absolutely true." Regardless of if it is the case, it's imperative that you get stared on the projects early, and read the textbook. This is not an easy course, and this Professor understands that, but the difficulty in the course does not stem from administrative BS or weird rules. It's hard because Operating Systems are hard, and that's the point.
Ashok Agrawala
CMSC412

Anonymous
12/31/2021
Worst class I've ever taken. Stay far away if you want to maintain your sanity.
Ashok Agrawala
CMSC412

Expecting an A+
Anonymous
12/27/2021
This is one of those courses where the lecture has nothing to do with the project. The professor is decent lecturing about operating systems concepts, but you're stuck with the TAs to get you through the project which is probably the hardest project in your entire college career.
Ashok Agrawala
CMSC412

Expecting a B+
Anonymous
12/24/2021
As other students have and will continue to write, I would give this a 0. As others have noted, 412 is a useful skill, so one should take it? No. It is one of my biggest regrets at UMD. There are literally 20 reasons to not take this course, but some of them include: Asking a question about a project that was not due until a week after the exam, which was weighted 18% of the exam grade; Having TA's not reply to almost all piazza posts, and never replying the 4-5 days leading up to a project due date; Giving "Routine" pop quizzes (there were 2); Having a Participation grade (Went to every class except 1 -- had a pop quiz on that class, and I got an 80 on participation (12 points lower than average)); Having a 52% on the final exam; The professor not even making his own slides, rather uses the slides that the textbook gives; has both slides and a spec for projects, both with information relevant, but only found on one or other; Hiding the final not on gradescope where all previous exams and quizzes were placed. There are literally so many more reasons, but just trust me don't take the class with this guy. He comes off as nice, but he grills students for coming in late, but half the class doesn't even show. I could guarantee he doesn't even know the questions on the exam also. Just avoid.
Ashok Agrawala
CMSC412

Expecting a B-
Anonymous
12/21/2021
I would give ZERO stars if I would. This is both the hardest and worst course that I've ever had the displeasure of taking at UMD. I enrolled in this class because I thought that Operating Systems is a fundamental and useful skill to learn, even if difficult, but found out that the administration of this class makes this 10x more harder for literally no reason. There are so many things wrong with this course that I wouldn't recommend ANYONE taking it because it's not worth it. First of all, others seemed to like the professor's lecturing ability, but I did not. He goes on tangents all the time and is very unclear in his statements that it is impossible to focus. The slides are comprehensive, but are taken straight from the textbook so that isn't really a credit to the professor. The projects and exams though, that is a different hell. Let's talk projects. Each one is incredibly difficult, and the instructions are HORRIBLE. There is really no valid reason why there should be a spec, slides, and FAQ for EVERY SINGLE PROJECT. The spec is awfully written and flat out wrong about things, the project slides are vague and also have incorrect information. The FAQs don't answer certain questions with any new information, and the fact that an FAQ is even needed for a project means that the instructions are poorly written. And to make things worse, even the spec, slides, and FAQ are sometimes not enough. On a related note, administration for this course was TRULY TERRIBLE. Questions on Piazza were just left unanswered even though there were many people with the same question; the TAs just didn't answer and weren't active. I'm pretty sure they were also left in the dark about logistics in the class, because it was near the end of the semester and we STILL did not have breakdowns of grading. That part of the course website was just never filled out. And one of our pop quizzes, which we only had 10 minutes to do and had a very poor average, was worth almost an entire project grade. That is completely ridiculous and shows how little the professor cares about administration for this class. For exams, we didn't get any review material, no study guide or previous exams, zip, zilch, nada. Just "look at the slides" which are hundreds if not thousands of slides so it's impossible to study everything on it. In addition, for our final, the professor was very unaccommodating to concerns over the Omicron variant, and refused to move the final online despite multiple CS classes shifting online, and almost the entire class requesting this change. No reasoning was given, of course. Lastly, our final exam, which is worth a quarter of our final grade, was put on the grade server, and we never even got it back to see what we got wrong, let alone a regrade request. It was simply put on Testudo. This fact may change since this review is posted, but nevertheless it is inexcusable to have these final grades submitted without students seeing the reason, especially when this resource is easily available via Gradescope. I get that Operating Systems is a hard concept, but like I said, the administration made this course needlessly more difficult. I am sure that most other people in the class agree with me regarding the majority of the points that I raised here, and there are probably more points that I didn't mention. These points are definitely fixable (having clear grading, clear project descriptions, enforcing Piazza answering, giving us study material) and should definitely be addressed the next time this course is taken. I find that unlikely to happen though, so I do not recommend this course to anyone until then. You're better off looking at the slides or textbook on your own.
Ashok Agrawala
CMSC417

Anonymous
12/18/2016
I straight up thought this class was an embarrassment to UMD (a top 10 CS school) and Agrawala and his TA Andrew were 100% to blame for it. I strongly advise to wait a semester or two and take this with a different professor. I'm not writing this post as sour grapes either I performed pretty well in the class, I just started the semester really excited about learning about networks and in the end it all got sucked out of me. The worst part of the class, the professor, and the TAs is that they create an environment where it feels like they genuinely want you to fail. If you ask about what content will be on exams (you will have no idea what will be covered) the only answer you will get is "read the chapter and do the problems." FYI chapters are 1-200 pages of thick, technical textbook with 40+ questions each and exams cover 2-3 chapters. I get that college is a lot about being able to teach yourself material, but you shouldn't have to teach yourself an entire class, especially a class as complex as Networks. Projects: - the first two projects were completely useless busy work that consisted of making simple client-server model. At no point in the class do they help you or show you how you would create such a connection (they just go over it on a high level, much different to actual C function calls), you literally just have to figure it out yourself. Not to mention, you have to use CORE, which is a nightmare within itself that even after the class I still have no idea how to use it. The second project is more about "can you parse in C" than it is about networks... Idk about you, but I didn't take 417 so I could waste my time tediously using strtok() - The final project is actually pretty cool - you implement some real deal stuff and you will learn a lot as a result. I wish they had you do practical things in Ruby all along as opposed to just at the end. Also a bonus that you get to work with a partner All in all, you WILL learn a lot if you take this class, only because you literally have to memorize a textbook to pass. I did not come to college and pay tuition money to memorize a textbook, however. Professors should make it easier, not harder, to understand material and they should genuinely care about your success - Agrawala is neither. Again, I did well in this class and I am not writing this because I am sour - i genuinely want you to either not take this class with Agrawala for your own good. If you do, I just hope he has magically improved and changed since. All things considered, there is no doubt Agrawala is brilliant, he's just not approachable and not a good teacher. Twice I went to office hours with course content questions and for advice and twice I got the answer "read the textbook"... not very helpful. Craziest thing is, if Agrawala changed a few things the course wouldn't be so miserable for everyone. 1. Provide some kind of study guides for the tests so we know of the hundreds of protocols what to focus on 2. Provide suggested book questions for each chapter so we don't waste our time doing 40+ problems. There is no reason why he can't give 10 questions per chapter or something like that. "if it's not on the slides don't worry about it" doesn't help at all 3. Hold some kind of seminar at the beginning of the semester outside of class that introduces students to CORE and how to get set up properly 4. Stretch the last project to be semester long and have students complete it in useful increments (maybe even add a bit to it) 5. Act genuinely interested in the success and well being of the students as opposed to creating an environment where we feel like Agrawala wants us to fail
Ashok Agrawala
CMSC417

Expecting an A-
fma1
01/05/2016
I think the professor was actually a good teacher. He asked questions to get us to think and to understand why things were the way they are. I will say that the lectures were sort of dry, especially if you read the book. But the point was to get us to learn the basic concepts, and then we would study the details ourselves. I'll admit that the projects weren't entirely connected with the material in the lecture. But to say they were entirely irrelevant is false. I think the previous poster didn't really understand the point of the projects (considering they stated how it was just locate the standard library function and do it in this way, because that wasn't the point). It was to help us to understand how protocols work, and in that sense, it was connected to the material in lecture. But the final project was the most important. It really showed how hard network programming is, because you have to account for so many things, so it's much harder than say, Operating Systems. The final project was meant to help us understand that every decision in networking has some sort of reason behind it. And it does have real world use. So that gives me the sense of accomplishment. It was meant to simulate a real-life project as well, as it took a lot of coding and testing, and you had to work with your group members. I had a group member who only wrote ~200 lines of code or so, but the reason I didn't say anything was because the fact is that we do have other classes, despite this being like a real-life job. I will agree that the lack of study material or review for exams was disappointing, but there is a reason for that. It's hard to make questions that students can solve in a reasonable amount of time that adequately test student knowledge, thus questions are reused. I'd just recommend studying the questions at the back of the book. It is a vast amount of information to cover, but that's how a lot of courses are. One thing I do agree is that it would've been better to add a reading schedule. It would have helped a lot. Overall, I would say I learned a lot from this course. I learned that understanding networking means understanding communication in general. I learned that there is a reason for every decision in a RFC. The professor also taught us that what we needed to learn is how to learn, because this information will soon be obsolete, and that's something important for CS majors in general.
Ashok Agrawala
CMSC417

Expecting an A
Anonymous
05/11/2012
Agrawala was a horrible professor, and 417 was a horrible class. This was possibly the worst computer science course I've taken yet at this university. Unlike most other 400-level CS classes, that teach relevant and useful technology, this course seems to be mostly based on obsolete material. The projects don't convey any meaningful skills, and while in other classes I typically can look back on the projects and feel a sense of accomplishment, in this class, I felt like I jumped through hoops. (I got 100% or 90% on all the projects, so this isn't sour grapes -- the projects were just bad. Further, the projects and lectures seemed entirely disconnected. I felt as if I was taking two different classes where two entirely different things were being taught. Lectures didn't prepare us for projects in any sense. As such, the projects weren't challenging, because they had to be easy enough for us to teach ourselves how to do. This meant that the projects consisted entirely of "locate the standard library function to do this thing, and invoke it in the right way." The lectures were almost entirely taken from the textbook. If any reading had been assigned, this would mean that people who did the reading would get nothing out of lectures. The lectures were presented in an extremely dry and boring way. The lecturer would occasionally ask either extremely simple factual questions or incredibly complicated questions. Nobody was willing to venture an answer, because there was obviously a right answer (which the students didn't want to get wrong in front of the class), and in the simple case it seemed like the instructor was asking a trick question, while in the complicated case the students weren't sure of themselves. The instructor would, after doing this, chide the class for not participating. Further, the instructor would never revisit old or important material. The exams were entirely disjoint from the lecture or projects. The two midterms focused almost entirely on concepts that appeared on one or two days of lecture. Further, the instructors refused to give students any information about what would be on the exam. This forced students to study huge amounts of information, including large parts of the textbook (which was tested on the exam, even though no readings had actually been assigned and there was no reading schedule for the course). Most students probably gave up; those that didn't were equally unprepared, because the exams were, rather than general, incredibly specific. The only way to get a good grade on the exam would have been to study in huge detail every aspect of the course. Typically, courses that require this have clear focus and direction, but this course had neither. It was like taking a survey of 1990's networking concepts and technology. Overall, taking this class was a vastly unpleasant experience. I had hoped that something as basic and vital to a computer scientists skillset as *networking* would be treated better at a major university.
Ashok Agrawala
CMSC417

Expecting a B
collegeguy752
04/28/2011
Good professor. Difficult to understand at times because of the accent. He asks a lot of rhetorical questions and goes on and on during lectures; therefore, they seem boring. Also, he just lectures from the slides and he posts his lecture videos and slides online, discouraging many from attending class. By the third week only a handful of people still went (I definitely did not attend), but this could be partly attributed to the class starting at 8am. His exams are almost entirely based on questions from the end of the chapters, and the remaining few questions are based on general terminology/ definitions of bolded words throughout the chapter. The projects in this class were very fair and interesting in comparison to previous year projects. The class is a lot of work because it feels like a programming class in addition to a theory of networking class (it is known as the 2nd hardest CMSC class). If you can keep yourself motivated and attend most lectures this is a very manageable class. Agrawala is a decent professor, but I feel he could be more interactive and give more examples/ real life problems. I would recommend him as a professor