Reviews for CMSC412

Information Review
Peter Keleher
CMSC412

Expecting a B+
Anonymous
05/31/2024
This course was hard af, definitely a 4 credit. Peter helped make the exam aspect of this course manageable by closely relating his material to a digital textbook that was well written. His first exam was very difficult, but chilled out a bit afterward. The coding aspect was HARD. The projects required full attention, often spanning two weeks but sometimes overlapping with other projects. This course has a lecture and discussion, where discussion is fully project oriented. I was at every discussion and almost every office hour available in order to get a good grade on the project. Overall, I really enjoyed the course despite the rigor.
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.
A.U. Shankar
CMSC412

Anonymous
05/06/2022
I've had Shankar for CMSC 216 and CMSC 412. Although Shankar has a stutter if you focus during lectures, write down some notes, and ask him questions, he will clear up any confusions you have. The difficulty of the exams he gives usually is written by whoever is proctoring the course. In CMSC 216, the exams given were written by Yoon so it was pretty hard. In CMSC 412, Shankar wrote his own exams, which were rather fair if you knew the material (much fairer than exams written by Yoon or Kruskal). The reason why I give Shankar 4 stars is literally because I think he did an ok job teaching 412. I think reviewing a professor's competence should account for the conditions of the course. The biggest change Shankar could've done is go over hints for the projects in the lecture, though this was mostly the job of the discussion section and the TAs. Other changes Shankar could've made were to make his slides less vague and provide more detailed practice exam solutions. 412 is hard because doing the GeekOS projects take too long, leaving students without much time for other classes and to understand other aspects of Operating Systems not implemented in GeekOS. GeekOS is designed by a UMD graduate, Jeffrey Hollingsworth, Neil Spring, etc. If one accounts for the fact that this project was given to everyone who took CMSC 412, one would realize that this pain is not the fault of the Shankar but the curriculum of the course. Sure Shankar could've changed this curriculum but I don't think this would be too fair.
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.
Neil Spring
CMSC412

Expecting an A+
Anonymous
05/12/2013
Neil Spring is a pretty legit instructor. He clearly knows the material and the labs are actually quite helpful. The reason I'm giving him a 4/5 is because I strongly believe that the content of the class can really improve. We spent too much time learning synchronization primitives, and not a lot of time learning cool things like log-structured filesystems/networked filesystems, or the inner details of how a context switch actually takes place (something that I believe to be extremely important, yet this detail never really gets covered).
A.U. Shankar
CMSC412

Expecting an A
Anonymous
01/02/2013
Lectures are pretty dry and difficult to follow. Exams are based mostly on lecture material, so looking at his online notes to prep is a must. Projects are very time-consuming and specs are often frustrating as they do not accurately reflect what actually needs to be done in a clear way. By far the longest and most complicated programming assignments I've ever had in an academic environment; make sure to start early and ask lots of questions. Overall, not a great experience. Maybe not quite as terrible as its reputation, but projects can get pretty ugly. Best bet is to take the class with people you know and discuss with them about the projects (at a high-level).
A.U. Shankar
CMSC412

Expecting a C
Anonymous
12/23/2012
Professor: He does have a stutter, but if you pay attention you will have no trouble understanding him. This does however make his responses to questions slower than normal. He will also give tips on how to do well in his class and stuff like extra non graded assignments if you need more practice if you ask him. Coursework: Projects are very difficult. Start early (no really.) on all of the projects and be prepared to ask for help from the TA's. Exams are medium. He grades hard, but his cut offs are low. So even if you do bad on one test you can easily make it up. If you study you can do well on the tests. But studying can be a problem if you get behind on a project (projects are sometimes due 3 days before the exam date). Grades: He curves the tests and does something with the projects (I did badly on a lot of them yet still passed the class). He will not give you any extra credit or extra assignments if your doing badly. If you fail you fail. Bottom Line? It will take a lot of work to do well or even pass this class. However you will learn a lot about OS's. Its also looks good on the resume and can give you a idea of how good of a programmer you are. Not recommended for a senior class unless you need 4 credits.
A.U. Shankar
CMSC412

Expecting a CD
Anonymous
10/29/2012
This is a horrible class. The projects are impossibly difficult and the professor is terrible lecturer. His stutter is distracting and notes are all over the place. Average for a midterm is around a 46/80. Exams are really difficut You will have to end up learning all of the material and then doing all of the projects yourself. Dont take this class with him if you dont have to.
A.U. Shankar
CMSC412

Expecting an A
Anonymous
05/24/2012
I have a lot of respect for Dr. Shankar. He is extremely knowledgable on the subject matter. I did feel that too much of the course was spent on lectures about synchronization, but clearly this guy knows that stuff in and out. He does have a little bit of a speech impediment, but it didn't hinder his communication of the material to me in any way. We are all human right? Too many students used the excuse that they couldn't do a project because it wasn't heavily discussed in lecture, but not once have I had a CS course that went into detail about a project, not even 131! It may have been the fact that I was very well prepared for the course because of ENEE350. Shankar is very approachable, in his office or in class, much more so then most professors. He also spent the last class taking suggestions from students about how he can revise the course to better teach his students for the next time he is teaching it. How often do you see that? This guy actually wants his students to learn, and isn't out to make your life a living hell. His exams can be tedious, but they are definitely curved. He is a very fair grader, though you may find that your TAs are not so much. All in all the project is very time consuming, and is worth about 50% of your grade. The project though is not curved! I enjoyed this class a lot, and felt that this class really strengthened my understanding of a vast amount of topics.
William Arbaugh
CMSC412

Expecting a B
Anonymous
11/03/2010
Arbaugh was frequently absent from class and he had his TAs teach for him. He took the projects from other universities, didn't do them himself, and rarely understood what was going on with them. Given how frustrating this class could get, it's insulting that he doesn't seem to give a hoot about the class, when he's expecting us to spend 12 credits worth of effort on a 3 credit class. Also, I'm sure some people knew that Arbaugh was planning on teaching 412 in Windows instead of a unix-based system, but they really, really need to put that in the course catalog or something. Yet another thing Arbaugh could have done to make this class more reasonable. In short, he sucks. The only reason he didn't get a 1 is because he is actually quite knowledgeable. He's not an idiot -- just a jerk and a flake.
Neil Spring
CMSC412

Expecting a BC
Anonymous
11/09/2008
Now, Neil is a great guy and a somewhat competent teacher. His teaching style takes getting used to; he basically walks into class everyday, opens up VI and just types notes, which you are expected to copy down and know. If you take notes on paper, learn to do it by computer, or you will get crazy pissed when he hops all over the place modifying what he wrote. My personal suggestion is Microsoft OneNote. Of course, he posts the notes file online, so you don't really need to take notes, but I would advise you do so, particularly if you're not that familiar with the subject. He involves the class by basically asking us questions and writing the answers in his VI file. He writes it very colloquially which is nice, but sometimes he uses really obnoxiously large, outmoded words (draconian, pathological etc.). The way the lectures go will be entirely up to you and your classmates. In my case, my classmates were total geniuses. We have 1 guy who got a diploma from MIT, half the robotics team, and a bunch of other people who basically know everything there is to know about linux. These people will be the bane of your existence if you are not one of them. They will side track the class, ask really convoluted and (in my opinion) irrelevant questions, and basically confuse the HELL out of you. It is basically your job to slow these people down and make sure they don't get too many opportunities to derail the class. Neil also gives quizzes if someone's cell phone goes off in the class. So, study your notes every night basically. He also has a huge vocab sheet he posts at the beginning of the semester, with words that will be covered on his multiple choice exams. Now some of you may have seen me say multiple choice, and grinned happily; set aside that notion, Neil's exams are pretty damn bad. His questions are more tricks than tests of knowledge, there are several that can be interpreted to mean different things, and it's really anyone's guess as to what they truly ask. Other questions can sometimes reword the answers in such a way that even if you know what the answer is, finding them among the choices is tricky. The projects in this course are pure hell for the most part with 1 or 2 exceptions. This isn't really Neil's fault, he delegated it all to his TA, who mismanaged time a fair amount (routinely showed lecture slides for projects 3 weeks before they were ASSIGNED). Overall, it's not easy to review this course, as I don't know if it's me, the TA, the professor, or the course itself that's the problem, but I do put in 40 ish hours a week for out of class work, and I have a C-. Neil is a fair guy though, so I am not too worried about failing/passing. If you want an A in this class, and haven't been weaned on linux, then you will need to start reading the book weeks before the semester begins. Make sure you have flashcards ready from a previous semester on DAY ONE of the class. Look over previous semester's projects. This class is more demanding than any other I have ever taken, and it's in no small part because of the disparity in intelligence of the individuals who take it. It's going to be a tough, long, hard semester, but keep your head up, and prepare well, and you will get the grade you earn. If your time management sucks, however, prepare for a real shock to the system; this is one of the hardest courses offered at UMD, and you will find out why.