Reviews for CMSC417

Information Review
Samrat Bhattacharjee
CMSC417

Expecting a B
Anonymous
12/18/2024
This class was unreal. I had read the reviews for this course and was a bit concerned, but I was interesting in learning about networks, and I was willing to put in the work, so I signed up for this class. But this class was way more insane than I thought it was. First off, the lectures. Bobby goes way too fast in lectures for me to really keep up. Additionally, lectures are not recorded, and no notes are posted. This was incredibly difficult for me, as I tend to understand the material much better when I study it on my own after lecture. But it's sometimes hard to take good notes when you're completely lost in class. Thankfully, there's an online CMSC417 review document you can find on Reddit that contains notes for all of the topics covered in the entire class. This was my only saving grace. The exams were incredibly difficult. He gave practice exams, which was good, but they had no answer key. Without an answer key, it's really hard to know if you're on the right track or not. Additionally, the coding questions on the exams were awful - there was always a catch to the problem, and if you didn't take it into account, you'd lose the vast majority of points. However, Bobby did curve each of the exams by 8%, which I really appreciated (exam averages were in the 60s, and they got curved to the 70s). Onto the projects. I felt like most of the projects were really interesting, and despite being an incredible amount of work, I gained a lot out of it. However, it is very difficult to fully complete the projects in time. The projects are also graded super harshly, as they expect that your implementation is 100% complete. Each individual test case is worth so many points that if you missed just a couple of edge cases, your project grade may only be around 75% at most. For most of the projects, the class average was in the 60s. Also, it's worth mentioning that doing these projects may come at the expense of your performance in other classes. At one point in the semester, I had to spend so much time on my 417 projects that I fell behind by an entire 2 weeks worth of content in another class. At the end of the semester, Bobby gave a massive curve. I ended up with around a 70%, and it got curved to a B (for reference, the class average was around a 74%). I wish I had at least known beforehand that there would be some sort of curve, as it would have saved me so much unnecessary stress. I have been so, so worried the past couple weeks that I wouldn't pass this class. But nonetheless, I'm so grateful for the curve. Overall, I would not recommend taking this course. Yes, I did gain useful knowledge, but I don't think it was worth the mental strain and torture I had to go through. It was less of a learning experience and more of just fighting for my life to survive. If you do decide to take this course, just try your best in the class. Do not worry about the grade - you may get some of the most awful project grades that you wouldn't have expected in your wildest dreams, but just know that it will be okay in the end. Try your best, and you will be fine. But just know it won't be a pretty experience.
Samrat Bhattacharjee
CMSC417

Expecting a C
Anonymous
12/07/2024
I've never seen a professor where the reviews capture the experience so accurately, but this one really does. Every review is really good at explaining what taking CMSC417 with Bobby is like. I'll add my two cents, but the review from 12/05/2024 is ridiculously spot on! The most important thing to know about this class, imo, is that it is HARD. The hardest CS class I've ever taken by far, and I took 351 with Kruskal; Kruskal's 351 is a cake walk compared to this class. However the difference is that you learn SO MUCH and just about EVERYTHING is useful and applicable to the real world. I went into this class knowing next to nothing about networks, but now I can tell you just about everything that happens to get information from one device to another. All the big fun networks words and acronyms like IP, TCP, UDP, HTTP, Wi-Fi, Ethernet, DNS, etc... you learn it all and you learn it WELL. Want to know how an email is actually sent or how the Dark Web works? Take this class. You will learn more in this class than like, three semesters full of other classes. It's ridiculous and awesome. His policy is "there is no magic", and his goal is to teach you to understand all of the "magic" that happens to make the Internet exist. And I feel like he accomplished that. Bobby really is an abrasive professor and can be quite rude to students, but I genuinely think he means no harm, he's just trying to make people laugh. And man, he really is funny. One of the funnier professors I've had. In the same vein, the dude is super charismatic and class is just generally enjoyable with him once you realize that his "rudeness" is really mostly good natured. He also responds to Piazza posts in mere minutes, and genuinely seems like he wants you to succeed. But also, the projects were really, really hard. I especially didn't like that we were just expected to learn socket programming from scratch and just do it for the first couple projects, before learning what sockets even were. We eventually did learn the protocols and such that make sockets work about a third of the way into the class, but the projects expected that well before then. And they only got harder, and I got some grades on the projects in the 10-30% range even after a whole lot of work. You do have to sacrifice a LOT of time to these projects, and it is really hard to do so. This is why the class is so hard. Some of them are extremely cool though once they work. And yeah, the exams were hard, but fair, but long. Time crunch for sure. I would seriously recommend taking this class but taking ZERO other hard classes alongside it, because you need an egregious amount of time to do well in this class. I don't even know if I'm going to pass but it was seriously worth it anyway because of how much cool, useful, and important stuff I learned about how things in the real world work.
Samrat Bhattacharjee
CMSC417

Expecting a B+
Anonymous
12/05/2024
Every single review I've read of this professor I believe are a fully accurate experience someone has had with him. This will be a large review with a lot of good and a lot of bad so TLDR at the bottom: Starting off with the lectures: Bobby is an incredibly knowledgeable, engaging professor. He cares about student understanding and will not move on as long as there are still questions being asked about what he is covering. There were no lecture recordings, no notes, and generally no materials from the course itself to go back and review over. That being said I was able to get my hands on a review google doc that is incredibly maintained which I believe you can find on reddit??? (not sure where exactly it was sent to me by a friend. Regardless DEFINITELY put effort into finding it, because it is a lifesaver come exam time). Bobby is a pretty funny guy, but he is equally rude. He cuts students off while they are asking questions, because he believes he knows what the full question will be. He is only ever right in guessing what your question is 75% of the time, which leads to people repeating their question, and sometimes he cuts that off and the cycle repeats. He is also a fan of berating students, so if you ever return his rude energy or question why he treated you a certain way, beware because he will just respond in kind with being more intensely rude to you. To be completely honest I do not think he consciously understands that what he does makes people sometimes not want to participate in class, and I'm sure his intention is not to be rude; I believe his intention is to be funny and he does have some pretty solid comedic moments. If you can push past it and not take it personally, he is pretty nice under the surface and will likely grow to like you if you choose to keep participating, but it is understandable if you don't want to deal with it. Projects: This is where most of people's bad experience with the class comes from. The projects will suck up all of your time. If you want an A on any of the projects, especially past the first two, you will need to start early, and work an unreasonable amount of time. If you value a social life or hobbies, you will most likely have to decide to cut back on them to handle the insane amount of work that some of these projects require. Project A4 quite literally required 40+ hours of work, while we were given only 2 weeks (after an extension) to complete it with one of those weeks being an exam week for this class. That is an entire part time job's worth of work for a single project if you started early, and that does not even take into account the insane studying you need to do for the exam. It is fully unreasonable to expect a student who likely has a full time class schedule to do for just a single class. Exams: The exams are hard, but fair. You need to make sure you know your stuff. He lets you have a couple cheat sheet pages, but even with that the exam will still take a lot out of you, and you need to move quick to avoid running out of time. For this semester he repeated a question people did poorly on Exam I in Exam II to incentivize solidifying learning, which I appreciated. He also provides you with every single exam he has ever given for the class, which is a LOT, but there are no answer keys, so you have to go to office hours or piazza if you are unsure about the solution to a problem. DEFINITELY practice the coding implementation question, as that is worth the most points and also the most difficult and harshly graded. Overall: Pressure makes diamonds. I have learned more from this class than any other class I have taken so far in my 7 semesters as a college student. I am actually pretty proud of some of the projects I have made for this class, and would be shocked if a future employer wasn't impressed by A4 or the final project. I honed the art of locking in to a single project to try to finish before the deadline, and the topics were really interesting. A lot of the internet can seem like magic, but the first motto of the class is "there is no magic", and I believe I have a very solid grasp on computer networking as a whole from a very low level perspective. I don't agree with a lot of the intensity choices when it comes to how difficult the projects were, I think unless you're a genius you WILL have to sacrifice part of your social life or hobbies (provided you have any in the first place), and if you have a job, while also being a full time student. Best of luck. TLDR notes: - Bobby is knowledgeable, engaging, funny, but rude and belittling - No class resources: show up to class and take good notes or get cooked - Projects require an insane amount of time and effort, see above on me repeatedly saying you will have to sacrifice social life or hobbies. - For the love of everything heed the warnings and START THE PROJECTS EARLY - Exams are tough but fair, tons of practice exams, but no answer keys. You do get multiple cheat sheets. - Pressure makes diamonds: You will learn a LOT if you move with the strong current that is CMSC417, and I believe you'll enjoy it. (Kind of a stockholm thing going on here) lost two stars because I don't believe any 3-credit class should require 20+ hours of work on any given week, and Bobby being rude to people sometimes steps over boundaries.
Nirupam Roy
CMSC417

Expecting a D+
Anonymous
05/16/2024
Roy is a nice guy. His lectures are alright and the exams are fair. Course materials are ok and the lecture slides are all posted beforehand. 417 is a class with a very important curriculum, immediately applicable in the workplace. HOWEVER. at least for this semester of 417, it seems that TAs had a lot more to say about course policies and scheduling, because this was one of the most poorly scheduled classes i've ever taken. there is a total of 6 projects in this class. the first two are basic introductions, and everything else is a massive undertaking. the last 2 projects were SO POORLY SCHEDULED that THE SECOND MIDTERM and the FINAL EXAM both COINCIDED WITH THE DUE DATES FOR THE PROJECTS. now mind you, we had about 2 weeks for every project, but effectively only ONE WEEK for the BIGGEST PROJECTS IN THE CLASS because of the EXAM! oh, and get this: you just spent the previous week doing the project, and now you study for the exam. is anything about the project on the exam? NO!!!! FUCK YOU! well, a few of the projects got extended deadlines, but the extensions were done with cliff-penalties, which means instead of 20% penalty per day, if its been extended one day and youre late by a day, your penalty is actually 40%. the project specs for the last few projects were also extremely vague and frankly depended on your ability to learn and do things that were not covered in class. its just straight up unfair man. so, 1 star to Roy for being nice, and 1 star for lecturing nice. every other aspect of this course was poorly thought out and cynically planned with little to no sympathy.
Nirupam Roy
CMSC417

Expecting an A
Anonymous
04/30/2024
Review for Spring 2024 semester. Very kind professor but not the best lecturer. Exams are not too difficult but there was no extra credit that the previous review suggested. Projects (especially a2 onwards) can take a very long time (10-30 hours). I found the course to be a bit disorganized at times and a4's schedule was very rushed (many groups did poorly). Do not take this class with other difficult classes.
Nirupam Roy
CMSC417

Anonymous
04/08/2024
Very heavy accent and mumbles had to drop the class because of it
Nirupam Roy
CMSC417

Expecting an A
Anonymous
01/20/2024
Incredible professor - very kind and I really enjoyed his class. Exams have plenty of extra credit, and the professor himself is very understanding.
Samrat Bhattacharjee
CMSC417

Expecting an A
Anonymous
01/17/2024
The review from 09/25/2023 sums it up perfectly. It's a difficult class, but with that difficulty comes growth. This is THE class I think I learned the most from ever. I agree with the other student's advice, start early! The projects have very clear requirements and I was never surprised with my grade. I felt that both the project aspect of the course and the theoretical aspect of the course were beneficial, and I am now a stronger programmer, with a much stronger understanding of how pretty much everything works.
Samrat Bhattacharjee
CMSC417

Expecting a C-
Anonymous
01/16/2024
He will literally not move on to the next topic until all questions are answered. Friendly, funny, and knowledgeable professor. Quite merciful with grading. I got a C- even though I flunked most projects and all exams. He's also quite fascinating to converse with on Piazza. Unfortunately, he unknowingly assumes you know certain concepts about networking. He also goes too fast in class. If you take the time read the notes posted on Reddit, you'll be fine. They reflect his content better than his own notes. Another complain I have is that I could not connect the concepts he was talking about. I only learned a bunch of seperate protocols. But overall, great professor. Definitely take him.
Samrat Bhattacharjee
CMSC417

Expecting an A
Anonymous
12/25/2023
The projects are a massive pain and will stress you out. Bobby himself can also be kind of abrasive as a professor. That said, he is probably one of the best lecturers I've ever had, and the content is consistently interesting. Exams are generally fair content-wise, but are graded harshly. Definitely learned a lot, but I would be very careful taking this class alongside other difficult courses.
Samrat Bhattacharjee
CMSC417

Expecting a C-
Anonymous
12/15/2023
Bobby is a textbook example of the entitled narcissist professors you see in college movies. His lectures are okay, except for the fact that he will openly berate students he doesn't deem intelligent by interrupting their questions before they have a chance to ask them in full, with the excuse that it's "To keep the class on track" while allowing his obviously favorite students to fully ask questions he afterwards deems just as incorrect. The projects are a complete nightmare. Only Chord and BitTorrent had a lecture dedicated to them, and those lectures were essentially useless to implementing the projects. He gives you 2 weeks to complete the project, and I can attest that you will need every minute of those 2 weeks. Project scores required 15-20 hours to get a 50% in my experience. There are no public or release tests given, and the rubric in the assignment does not match the grades i.e. the first project said you'd get an A if your server could handle multiple clients. Mine could and I got a 55% because of some corner cases I didn't test with my client, NOT my server. The only saving grace in this class are the exams. With a cheat sheet or open note they're actually doable. I usually was 10-15% above the class average on the exams, which if there is a curve should help me pass this class. Only take this class if you are <=14 credits including it (as I was at 17 and this class is easily a 4 or 5 credit in terms of project load), you are not taking any other hard classes like ENEE440, and if you really like networking, though you can definitely learn this better in your own free time with a couple of Github repos and articles. I would give this class 2 stars, but simply because of how rude and arrogant of a person Bobby is, I have to give it the 1 star. I hope and pray that Bobby can grow as a person and treat all of his students with respect, and ultimately improve the assignments so that they are reasonable in comparison to the rest of UMD's 400 level classes
Samrat Bhattacharjee
CMSC417

Expecting a B-
Anonymous
11/02/2023
You are expected to put in an exceptional amount of effort. DO NOT take with any other hard classes
Samrat Bhattacharjee
CMSC417

Anonymous
09/25/2023
One of the worst professors at UMD. Avoid at any cost. Will not record lectures nor let anyone record them, will not provide lecture notes or anything that will help students. Will expect students to know everything. The projects will ask you write your own starter code which will take hours before you can even begin with the actual project. For my other 400 level CS classes, the projects took me an average of 2-4 days, but this class projects took me at least a week. Bobby also never taught anything related to the projects. No tests were given to students where we could check our code is working as per requirements or not. So basically the projects were open ended and if you don't start early, you're screwed.
Nirupam Roy
CMSC417

Expecting a B
Anonymous
06/14/2023
Easy exams and very flexible with deadlines.
Nirupam Roy
CMSC417

Expecting a B
Anonymous
05/29/2023
Lectures are useful, prof is understanding, exams are fair (requires extra studying outside of class but that's expected from a 4xx), projects take ton of time so start early. Textbook is really helpful. Roy knows networks content incredibly well so make use of if you want. Attendance isn't mandatory or frankly even required, you can learn everything from textbook, but lectures are a good resource to just sit and listen. 417 sucks up time and effort, especially towards the end of the semester. The actual course content isn't difficult (in my opinion I thought 351 content was more conceptually difficult), it's the projects that can easily take 10+ hours if you're not familiar with C or basic network programming, but you pick it up throughout the course. Overall, Roy is good prof and lectures well
Samrat Bhattacharjee
CMSC417

Expecting a W
Anonymous
01/18/2023
Bobby is a nice and good professor, but the projects in this class are the worst. I've been fine in all other CS courses I've taken but every project in this class seemed like it was taking up my entire week. You don't learn anything related to projects in class and if you don't start super early you're screwed. I took a W even though I had fine project grades and did decent on the well exam because I didn't feel like it was worth the stress of ruining my weeks for the projects. I've gotten A's in all other cs classes and have never even considered dropping a class until this class. I should've listened to the other reviews when they talked about projects bc I didn't believe them at first :(
Samrat Bhattacharjee
CMSC417

Expecting a D
Anonymous
01/11/2023
The review left on 11/19/2022 sums up Bobby perfectly. "Bobby is your stereotypical grandiose narcissist who has a valid reason to be narcissistic" is a very good way to put it. His lectures can be very engaging since he is highly knowledgeable, funny, and interacts with his class often, but whether it be on piazza or in lecture, he will berate you infront of everyone; although; will help you nonetheless. Bobby is a cool dude and does have a soft side, It just sucks because there are more instances where he is hella rude than decent. There was one instance during a zoom OH where he openly stated a question was stupid and forced another student to answer it instead. Although I did say he can be rude to everyone, I have noticed that he is kinder to smarter students that don't irritate him. With regards to the actual course: this class is essentially two classes at once: the lecture side will cover things on the exam, but the projects are completely self taught. Bobby will not teach you how to code sockets, instead he will provide sources and then you have to figure it out. Do not take this class if you are not confident in your coding ability YET. MAN pages will be your bible. There are no recordings, and the class notes are the scribble scrabble he does during lecture. All-in-all: I do think you should take this class. I know my grade and review says otherwise, but you WILL learn a lot if you take this class, and it definitely forces you to become a better programmer. If you are going to take this class, make sure you have the time to give it your all. Most importantly - become a competent programmer before taking the class if you're not already. The final project is a group project that is still based on individuality, so if you end up with super smart people in your group and end up getting hard carried - that's two letter grades gone. TLDR: the class is a semester long suckfest, but is worth it in the end.
Samrat Bhattacharjee
CMSC417

Anonymous
12/20/2022
Lectures in person, not recorded, and no pictures allowed. Projects are in C/C++ except possibly final group project. Incredibly knowledgeable down-to-earth dude, with a lot of passion for teaching. He will call you out if you're not really paying attention, which you should be doing anyway. If you like computer networks, you will get a lot out of this class if you put the effort in learning. The projects are killer, please please start them early... Every project based CS class says this, but actually start them early this class. He doesn't teach any code and just asks you to implement something from scratch.
Samrat Bhattacharjee
CMSC417

Expecting a B
Anonymous
12/14/2022
Best CS course I've taken in terms of knowledge learned. It's true this class is hard, and it will probably hurt your GPA. But once you overcome the class you become a much better programmer. I also enjoyed learning about how networking works, and this class has peeked my interest in learning of networking algorithms and protocols. It makes you think like a computer scientist. Bobby is sometimes hard, but it seems like he brightened up compared to previous semesters, and he does want his students to learn.
Samrat Bhattacharjee
CMSC417

Expecting a W
Anonymous
11/19/2022
Although I have a W, I have decided to audit this class and do the projects at my own pace. I was struggling with finding a job and made the mistake of taking another extremely programming-heavy course and I wasn't confident enough in C to finish the projects without error. I hope whoever reads these reviews knows that the 5-star reviews are not given by "normal" people. They're either really good at C, very passionate about networking, or just don't care about red flags. These are people who are not bothered by Bobby's demeanor or attitude and fail to realize that although they had a good experience, there are many people in the class who don't. I want to give a rather detailed review. I think Bobby's teaching philosophy can be somewhat debatable, so I'll mention what can be done better: [-]: negative or can be improved upon. [?] Depends on your perspective. [+] Undisputable good quality [-] Not recording lectures or office hours: I think the whole idea behind this is that when people know a lecture is being recorded, they stop attending class. Although this is true, we have to see if this is a good thing or a bad thing for the students. It might be demoralizing for the professor since he might not be able to interact with a class and you could argue this is bad for the students since some students are lazy and fall behind schedule because "everything is recorded". So let's analyze this in detail: [+] Bobby provides OH "relectures" for people who missed the class. [-] Bobby does not record OH even if people have other classes during the time of OH and sometimes refuses to discuss what was mentioned in detail because he "discussed it many times in OH". [-] Some students like me usually will rewatch lectures to fill in missing gaps in our knowledge, not having lectures recorded means we have to go on Piazza but given the next bullet points this isn't so "smooth". Overall, I think if Bobby wants people to attend lectures, he should find a way to take attendance and leverage it in part with the participation grade. [-] Being demeaning to the students: This is an area Bobby needs to work on for sure. You can't go out there and call people stupid or get annoyed when people can't grasp concepts easily. I've seen instances where he literally said "this is a stupid question" even when the question was somewhat relevant. Maybe this might be why he doesn't record....... [?] Not giving previous exam solutions: This is probably a blessing in disguise. You are forced to learn where and how to find the information you need instead of having them given to you and just learning through pattern matching. I think this is a good thing but you can easily argue this is a bad thing. [?] Projects take up too much time: The tradeoff is that the projects are cool and useful on your CV. If you take this class, you should be informed that it is hard and a lot of work. Don't make the mistake of taking this with other hard classes. [+] Great Lecturer: Bobby can explain concepts well and you get engaged rather easily Overall, Bobby is your stereotypical grandiose narcissist who has a valid reason to be narcissistic. I rate him 3 stars because I feel like Bobby is an amazing lecturer but the 2 [-] are what makes him rather unpleasant. I have a feeling that even if he is given similar feedback from other students, he might not listen to them and continue with his current ways.
Michael Marsh
CMSC417

Expecting an A+
Anonymous
12/27/2021
I took this course Spring 2021. CMSC417 is definitely not trivial and the projects take time, but I also enjoyed it and learned a huge amount. Marsh uses flipped classroom but the lecture videos he posts are broken into short sections and are very clear. The projects and homeworks help you learn the material well and the tests were open-note on Gradescope.
Samrat Bhattacharjee
CMSC417

Expecting an A-
Anonymous
12/20/2021
Was my favorite class at UMD, really learned a lot about not just Networks, but about low level programming in general. That said, other reviews about Bobby is fair. He's been in the field so long (he once told us in class that he's seen networks composed of single copper wire that people poke in needles to connect to, which is at least before 1985) that he kind of lost touch with what students already know/not know. I enjoyed the lectures (he's a pretty funny person). I learned a lot from projects too, despite it being very time consuming and often very underspecified. (There are no public tests to test the output formats against) I do really recommend this class with Bobby, but only if you you have some previous knowledge in computer networking and/or have strong C/C++ programming skills.
Samrat Bhattacharjee
CMSC417

Anonymous
12/18/2021
Taking 417 with Bobby is the Dark Souls of CMSC You know what you're getting into if you take this course Bobby is a great lecturer, the only thing I think he could improve on is recording his lectures so that you can go back to watch them later. The programming projects are intense and will consume all your time. I agree with Bobby's methodologies for choosing C over other languages for the projects. I wish that we had fewer projects and more time to work on them, as they would often be a matter of "write until time is over" instead of "write until your project is working/complete". I think I would have learned more if I had the time to actually focus on getting some of the implementations working instead of having to move onto the next project.
Samrat Bhattacharjee
CMSC417

Expecting a B
Anonymous
11/11/2021
If I could rate 0 stars, I would. He's definitely an entertaining and exceptionally intelligent professor, he'd be cool to have lunch with, TA for or do research under - but all that aside, he is a TERRIBLE instructor and should be avoided at all costs. Throughout the semester he has been very passive aggressive & sometimes just flat out mean with his responses to other students in class, on Piazza, and answering student questions on zoom, claiming that his goal is for us to "learn", and yet he refuses to straight up give an answer to a homework/exam question a student asks without making the student look like an idiot for not knowing first. An example of his unpleasant demeanor: on the first day of class he literally said "I do not expect you to come to class" yet time and time again he expresses passive aggressive frustration with those who do not attend class or office hours. To make matters worse, for some reason he REFUSES to upload recordings of lectures, nor any coherent powerpoint slides (instead he uploads drawings and scribbles he does during lecture that only someone who went to lecture would really understand) - either forcing students to join the Zoom call live or show up to class to stay on top of the material. This is the first course I have taken at UMD that does not provide at least some form of slides or an outline on the material covered in class. The problem with this practice is that his exams, while open note, are 100% based on content he covers in class so if you miss class and office hours & do not take detailed notes in class you're basically screwed. While all my other professors have been uploading recordings of their lectures, Bobby refuses. He will likely claim that because people joining on Zoom do not give their express consent to be recorded he won't do it or something to that effect, but if he actually cared he would use Panopto or some other solution. Coming back to in person after 3 semesters of remote learning is tough, and since I am still used to asynchronous learning it has been a particular struggle for me to stay on top of projects and study for exams in this course. TLDR: Bobby's attitude and expectations for the course leave a lot to be desired, and his teaching skills are not that of a professor who should be making a $200,000/year+ salary (which is likely due to his research and tenure at the university but still). He should stick to research or graduate level courses but for the good of future CS undergraduate students, he should NOT BE TEACHING UNDERGRADUATE LEVEL COURSES.
Samrat Bhattacharjee
CMSC417

Anonymous
11/09/2021
Please do yourself a favor and take any other professor for this course if you can. Don't get me wrong, he's an incredibly smart professor, but he is just incredibly mean and his courseload is suffocating.
Michael Marsh
CMSC417

Anonymous
05/24/2021
I don't know why there are some reviews commending Marsh for how he handled this course. I took this course with three friends and all of our experiences were pretty terrible. I would keep in mind that we took this during an online/Covid semester so in person may be different. The work load for this course is MUCH greater than 3 credits. I spent more time for this course than for most of the core 4 credit CS classes. A typical week would include about an hour of pre-recorded lectures, 2 quizzes on that content, 2 normal lecture hours, then either a MASSIVE project due over the weekend or several homework assignments. There were also 5 exams throughout the semester. Marsh said at the beginning that this courses bad wrap is due to it being "one of the hardest the department offers". I don't think the difficulty is the content, its entirely with how the course is organized. The lectures do not coincide with the projects, so for more than half the projects you'll be looking at text books learning the material to execute the projects. Marsh will release public test scripts to test your projects but they typically don't work, causing everyone stress by having to submit their project blindly. His testing scripts would also typically screw up on the projects causing many students to request regrades, which they wouldn't receive back for months later. In 2 instances, information in the project description was either wrong or misleading, which caused due dates to get pushed back. This would be fine except Marsh did not compensate the rest of the schedule. This caused the biggest project of the semester to be given a week less to complete. On the last day of classes, we had an exam, a homework and the big project due. The only reason I did not give this 1 star is that I believe some of the projects are pretty cool once theyre in a complete state. I would not recommend this course unless you genuinely think putting on your resume that you took a formal networking course will help you. If you're just interested in networks, you're better off just looking at networking textbooks and resources online in your freetime.
Nirupam Roy
CMSC417

Expecting a W
Anonymous
02/09/2021
I tried sitting in the back and boy I could not understand a word he said. Don't get me wrong he definitely tries to help but his accent gets in the way. Ended up having to withdraw (the only class I ever withdrew from in 4 years here) as the programming assignments were impossible to complete and were basically irrelevant to the stuff learned in class. The exams required you to memorize pretty much every single calculation and definition and write them out. It was also unclear what exactly you were supposed to know before an exam. Am I supposed to read and learn from the textbook, or from the slides, etc? Idk if it was just Roy or if this class would still be so poorly structured even with a different teacher. But for the sake of your GPA just forget about 417 and choose a different class. You'll thank me later.
Nirupam Roy
CMSC417

Expecting a P
Anonymous
04/10/2020
Alright prof, but heavy Indian accent and mumbles sometimes so lectures aren't the easiest to listen to and moves through slides too fast without posting them, but not the worst.
Samrat Bhattacharjee
CMSC417

Expecting an A-
Anonymous
12/22/2019
Really knows the course material, and much more. Course was unnaturally hard compared to other CMSC courses I've taken. Really tough.
Michael Marsh
CMSC417

Expecting an A-
Anonymous
06/03/2019
Based on past reviews, I was extremely weary to take Marsh for this class, but after going through it I’m glad I did. He has improved a ton and takes constructive criticism in stride to actually improve the class (the only cs prof I’ve seen do this). Many complain his test scripts are still broken, but these were due to tests that are more in depth than other courses, which I believe is a great thing. You can also tell he loves the subject. His lectures can be a little tough to follow at times as his examples aren’t always the clearest, but he is willing to reexplain anything that may have been ambiguous. Overall, the most useful class I’ve taken at UMD and no regrets on Marsh.
Michael Marsh
CMSC417

Expecting an A-
Anonymous
05/16/2019
Overall Professor Marsh was a much better professor than I think most of these reviews suggest. He has made changes based on what I hear on here. He no longer does take home exams which seemed to have been a major issue in past semesters based on past reviews and reddit threads. He is well prepared for lectures, and genuinely seems to care about students' success. He offers a survey active all semester for students to voice their opinions of the course, and he even sent individual messages to the students who did really well on each exam congratulating them on their success which was a nice way to show he actually cares about students doing well, which is really rare among professors here in my opinion. His grading scripts can be frustrating and his lack of public tests is something that I think could be improved, but overall he is not a bad professor. Class is pretty hard, but you learn a lot about how the internet works which is pretty cool.
Michael Marsh
CMSC417

Expecting an A
Anonymous
03/16/2019
Marsh for 417 was great. He took a systems approach to the whole class which I really liked. If you didn't like 216 then you'll have a rough time, but projects are easy as long as you can read manpages and use Wireshark. It's impossible to fail his class if you submit even a half-assed attempt on all the projects. All exams including the final were take-home. If you don't get an A in the class it's on you
Michael Marsh
CMSC417

Anonymous
10/14/2018
Such a terrible teacher for 417. Exams and projects are so vaguely worded. You need to make several assumptions on exam questions, but if your implementation doesn't match his you get a 0. When we asked for clarifications, he would sometimes give us misleading answers. He never gave us sample input/output even though we asked before every project and exam. Half way through the semester he just gave up on doing slides. Grading felt like it was arbitrary, but he told us not to worry about it because he promised a substantial curve. He ended up setting 39 as the cutoff for a C-, but an 85 was still a B, so he might as well have not curved. He also gives out minuses but not pluses.
Michael Marsh
CMSC417

Anonymous
04/12/2018
Honestly, one of the most unorganized classes I've ever taken. Avoid this professor at all costs. The first project took nearly 2 months to get back to us, and over half of the students got zeroes due to shoddy testing code. Every assignment we've had so far has had to be regraded. This morning, the day AFTER the drop deadline, he announces the next midterm and final exam will be in class rather than take-home. Completely unprofessional.
Michael Marsh
CMSC417

Expecting a W
cnaka
03/30/2018
His lectures are mediocre, but the real problem is how he tests code. He puts our arbitrary project specs without public/release tests and then tests them in a very specific way, causing many students to get zeros for things such as putting a space in the wrong place in the output. He said he would fix this, but I still have no idea what grade I have in this class.
Samrat Bhattacharjee
CMSC417

Expecting a W
Anonymous
12/13/2017
The review from 2013 is really not telling at all. I had to drop this class because the median of the first test was like a 50. I have a pretty decent GPA (3.6), but this teacher's workload is IMPOSSIBLE to manage unless you purposely make your other courses really light. I had to drop and take the W for the sake of my other classes. Don't believe me? There are currently 15/40 spots open in the class after people dropping, and his average is about a 2.6 based off past years. Basically only take this class if you consider yourself extremely smart, and every other class has been easy for you.
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.
Samrat Bhattacharjee
CMSC417

Expecting an A
Anonymous
05/12/2013
Bobby is a very good professor. He is also one of the smartest people at UMD. He's very intimidating at first but if you get to know him you'll realize he's a really nice guy. I think he did a good job teaching this class; needless to say, this was a very challenging course (more so than 412 in my opinion). This class is conceptually simple, but the devil truly is in the details. Understanding how packets are routed through the internet is not a trivial matter. This requires understanding link-layer switching, and network-layer routing. I think Bobby did a rather crappy job explaining the link-layer. In particular, he failed to articulate the difference between forwarding and routing (which is HUGE). This certainly led to a lot of confusion. Either way, take this course with either Bobby or Neil Spring. Enough said.
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