Your feedback has been sent to our team.
20 Ratings
Hours/Week
No grades found
— Students
This class was full of material I simply did not care about, and material which I did not think fit together well at all. It was very disjointed and many of the assignments I thought were pointless. If you had Reiss for Comp Arch and need OS for the BSCS req, you may as well take it with him. I was frustrated because the grading guidelines for assignments were not clear (watch out -- he takes points off for memory leaks, and assignments with checkpoints are worth almost twice as much as assignments without checkpoints). Shell, FAT, and FTP are the hardest assignments so you should begin them early. Also, the Paging homework was pretty difficult and I had to sit 1-on-1 with a graduate TA for an hour and a half to be able to finish it because he had no idea what was wrong with my code. Basically, you just need to start the assignments early, to go to a lot of office hours, and to rely heavily on Piazza posts and the TAs to succeed in this course.
Let me preface this with the fact that this was Reiss's first semester teaching so a lot of stuff here will likely change in future semesters.
So this class is likely one of if not the hardest classes you will be taking as a BSCS. Imagine combining the work load of 2150 and the material difficulty of 3330 and you have OS in a nutshell. This was one of those classes that I think would've been interesting to take from a higher level perspective but there is just a lot of information to cover from both high/low level and some of it is completely useless. Reiss is definitely a much better professor than Grimshaw and he helps you a lot during OH but personally I stopped going to lecture after the first week because I couldn't keep up with the pace he lectured at and was lost a lot during the first week (which is where he covers all the simple stuff mind you). Not to mention that it was a 9am as well, and reflecting back on it, I think it was a really good choice since his recorded lectures offers the ability to rewind back on concepts you don't understand and saves you an hour that you might've otherwise wasted wondering what the **** was going on during lecture.
With the lecture part out of the way, half the homeworks were brutal and the other half not so much. From personal experience, FAT/Shell took the longest and were really hard. FTP/Paging followed close behind, Life/Lottery were probably the most "Fair" in terms of time put in and the grade you get, and the 1st assignment is more or less a question of whether you paid attention during the first week. The only major gripes I had with the homeworks was that: sometimes he would add too much unnecessary information which clouds the actual objective of what you're supposed to do, he never made it clear that the test cases were just supposed to test major bugs in your code and not 100% ensure that you'd get a 100 on the assignment if everything passed, and grades for checkpoints/final versions of an assignment were released at the same time. For example, he released the checkpoint and the finished grade at the same time and people who did poorly on the latter could've easily gotten back A LOT of points if he released the checkpoint grades showcasing the fact that a part of their code was fundamentally flawed. But anyways, I can't argue that all these assignments were a complete waste of time because a few of them were actually very interesting to go through (Life/Lottery/Shell). P.S. Piazza is a game changer for some of these so make sure you frequently go on it.
No one does the quizzes. Yes, even I was super surprised at this considering it's 10% of your grade. The average person had a 30% on the quizzes this semester so it just goes to show little people care about the content, but personally if you put in like 30 mins to an hour worth of work into doing these quizzes then getting a 70% average is pretty doable.
Exams are brutal. Dread it. Run from it. Destiny still arrives all the same. Reiss basically takes his infinity gauntlet and snaps half the people's exam scores into existence. The median was around a D for the midterm and final, and you WILL encounter questions you have no idea how to approach. The longer you study for these exams the more likely you are to calculate what you need to even pass the class.
But at the end of the day, he does apply a curve which is based on how many people are at each grade range, and he adjusts it so the average person pre-curve gets an 80 post curve.
These are the final words I have for this class: Reiss knows his stuff but his pacing isn't worth going to class for, the homeworks aren't perfectly balanced like all things should be, no one does quizzes, and half your class will get their semester GPA wiped out by these exams.
OS was definitely the hardest class in the entire CS major. No joke. Do not take this class with any other hard CS class. Don't take it with Algo, don't take it with Compilers, don't take it with ANY HARD CS CLASSES in the same semester.
The material was difficult to grasp, the exams screwed you over, and the quizzes were no easier than Comp Arch (although Reiss makes them open-note, take-home, and unlimited time, my quiz averages were still a 70, and the class average on the quizzes was a 36%). Test averages were a D on the midterm and a straight up F on the final. The material was really difficult to understand- filesystems, memory buses, virtual memory, etc were so knowledge-based (unlike 2150, where you could get by just knowing the basics and reasoning through the logic of a data structure on your own). This made debugging your homework really f***ing difficult since you have no idea why your kernel was panicking, and the TAs wouldn't know either. Only Reiss could debug it himself, and if you encountered a bug like this the night before it was due, you were screwed. I also absolutely hated the virtual memory calculations (ie, given a memory address 0xFFFFFF, calculate blah blah blah) on the exams- they were pointless to helping me understand the material and I got them wrong ALWAYS anyway.
I spent well over 20 hours a week for this class and still got a crappy grade. The FAT read/write and FTP server homeworks were definitely way beyond 20 hours worth of work each. I struggled so much to learn the material well and keep on top of the homeworks. I felt like I was constantly drowning but never learned to swim, I only learned how to hate water.
If you are a BACS, take this class only if you love the feeling of failure. If you are a BSCS, you're probably already used to failure anyway, good luck and may the curve ever be in your favor.
IMO the difficulty of this class is vastly overstated by fourth years who are checked out and just want to graduate. You can reasonably get an A by actually listening to lectures (not just reading slides), using the post-quizzes to reinforce your learning, and starting the assignments early so that they only take ~10 hours a week. Unlike Grimshaw, Reiss records lectures, doesn't require homework writeups, and is super active on Piazza, so you have plenty of resources to help you. Don't get me wrong, homeworks are definitely time consuming and Reiss should've had decent instructions from the start instead of editing them in, but this was his first semester teaching OS and future sections should have a better time.
This course probably taught me more than all my other classes at UVA combined (besides maybe CS 2150). Reiss is hands-down one of the best CS professors at UVA; despite teaching OS for the first time, he came to class prepared with tons of slides to help explain difficult material. His quizzes, while tough, did an amazing job in forcing us to review the material (which let's be real we would never do willingly). The assignments, while incredibly tough, did an amazing job in reinforcing concepts. The class website was so well-organized and simple that I never had to look on Collab and found all the course material easily. Reiss is also the nicest guy--he was always answering questions on piazza, in class, and at office hours. On top of that, he's definitely the smartest professor I've ever had; looking at his test code taught me more C tricks than any other programming class I've taken. If you enjoyed CS 2150, you'll love OS. While OS is known for being an "impossible" class, that's probably because only about 10 people showed up to lecture regularly. It's more on the class than the professor that many people didn't end up doing well. Overall, OS with Professor Reiss is an amazing and rewarding experience if you put the time and effort in. Highly recommend :)
Best CS class. It's about twice as hard as 2150, but you learn about 4x as much, and the stuff you learn makes you realize how everything actually works. It's the perfect combination of low-level and high-level programming. Some of the homeworks are in C and some are in C++. The Shell homework hurts a lot, but that's just because you've forgotten how memory works. After that, the homeworks aren't too bad until after the midterm, with Paging and Protection, easily the hardest assignment I've ever witnessed. 40+ hours on that sucker. FAT is also pretty hard, but doable, and it makes you realize what a file really is. FTP is just annoying.
Start assignments as soon as they're released. Go to office hours as soon as possible and go frequently. Everyone skips lecture for some reason. I recommend going and asking questions because Reiss moves fast, and sometimes you need to get clarification.
I recommend this class to anyone who wants to get good. BA included.
Professor Reiss may have had a shaky first semester teaching OS, but it's clear that he listened to all the feedback and has his act together this time around. I've heard countless horror stories about OS as I'm sure many of us have, but Reiss has managed to create a course that is extremely rigorous and challenging without ever being overwhelming. The homeworks definitely take a lot of time and effort (start early!) but the hints are super helpful, and a lot of what you need to complete the assignments are covered really well in lecture. The non-xv6 ones are also really interesting and help you learn more about how OSes work (for example, creating your own shell or FTP server).
I *highly* recommend Reiss for OS. He's super-knowledgeable about the subject and manages to explain all the material pretty well (even anticipating our answers in the slides, sometimes!). He cares about his students and is actively looking to improve how the course is taught. Set your expectations appropriately and I think you'll be pleasantly surprised.
Ah, good 'ole Operating Systems, the ultimate Oh S*** class! (Get it OS.. never mind)
But seriously, out of all the courses I have taken at UVA so far, this was up there with the most challenging, most frustrating, yet most interesting and satisfying courses I've ever taken. Reiss is a fantastic lecturer and if you can take it with him DO IT! While he does move pretty quickly through the material, such that at times it may feel like your head will spin out of control, taking the time to rewatch the recordings (or just skipping lecture and only watching the recordings) and slowing things down to try and understand what is going on will be critical to your understanding and appreciation of the material.
First, let's discuss grading: 55% go towards homeworks, 15% on the midterm, 15% on the final, and 15% on the weekly open-note quizzes. (for those of you who had Reiss for Comp Arch, they are the exact same type of quizzes as you had to do for that class) The midterm and final's difficulty is just what you'd expect -- it's hard, but not impossible! I believe the average on the midterm was around a 69% (nice!) and the final was similar. (Don't worry too much about those grades -- he curves grades up at the end of the semester). Next, I want to talk about the weekly open-note quizzes -- I am not a good studier whatsoever. I hate studying. As a matter of fact, I am literally procrastinating studying for another class as I type. How do you get someone who hates studying to study? Force them to with quizzes! The quizzes are hard, such that I spent a good 2+ hours on 5 questions, but that is basically 2 hours you are spending studying the material. While they are hard, the average still came out to just over 80% for our class, so they aren't crazy hard. In a weird way, I think I kind of liked the quizzes because it always gave me a feeling that I was successfully comprehending the material that was being presented going into the next week ... until my confidence was shattered by the final and most significant portion of your grade --> homeworks!
The homeworks are all challenging. I literally just finished the last one about an hour ago. I was told going into the course that this was the 2nd easiest homework in the class behind the first one (which was really easy), so I procrastinated until the last second and started on noon the day it was due -- 11 hours later, I submitted it with just 1 hour to spare before the deadline. Do not wait until the last minute to start homeworks! *Clears throat* DO NOT WAIT UNTIL THE LAST MINUTE TO START HOMEWORKS. Just trust me on this one, although I successfully started turned in all of the homeworks on time, I had 4 WAAAAAY to close for comfort moments this semester, the most notable being a last second edit and turn in with 24 seconds (Yes, seconds!) to spare. It is just not worth it. While I started 75% of them 24 hours or less before the deadline and submitted them all on time, do not do what I did. However, if you insist on trying to be dramatic like me and waiting to start until the point where you figure you can juuuust get it in on time, here are the ones to watch out for: Shell HW (parts 1 and 2) -- I spent about 15 hours per week for the two parts of this assignment. Paging HW (parts 1 and 2) -- this is the HARDEST lab, at least in terms of understandability. It is one of the harder topics in the course, combined with some really weird C syntax quirks that make this lab next to impossible without TA help. I also spent about 15 hours per week for 2 weeks on this lab. FAT HW (Part 1 only) -- Part 1 is the LONGEST lab. I spent 24 hours (no, that is not a typo) the first week on FAT. In terms of conceptualization, it is not a super difficult topic to understand, but getting started is very challenging. You will end up writing somewhere in the ballpark of 300-650 lines of code for this lab over the course of two weeks. The problem is that, as you will find out, getting started on labs (knowing where to begin) is difficult and takes time. Now, combine that with an unbalanced lab where 75% of the coding is done in part 1. That is FAT part 1. This was THE ONLY LAB excluding the first one where I put my full attention into the assignment before the day it was due -- and this was also the lab that I submitted 24 seconds before the deadline. By the way, part 2 of this lab took me 4 hours. (Reiss, if you are reading this, please make FAT more balanced, thanks!). All that said though, if you do miss a deadline, it is not the end of the world. In what might be the most generous grading policy at UVA, you can turn in the homework up to 3 days late for 90% credit. Not bad!
* Note, many of the time estimates for later assignments might be a little biased since starting with the Threading HW we were not at school to COVID. This caused Office Hour issues such that is was much harder to get the help you needed.*
My thoughts on the homeworks in general are this: they will be frustrating, you might feel as though success is gained through random and lucky changes to various wonky C functions, and some of the harder things to implement might not seem related (Seriously, does Prof Reiss have a string parsing fetish?); HOWEVER, these are the 2nd most satisfying and fulfilling homeworks you will complete behind only 2150. You will learn a lot, and it will develop problem solving skills. One last note on the homeworks, specifically office hours. DO NOT be that person that asks a TA to walk you through the entire solution and take a literal hour when the queue has over 30 people on it (Has happened multiple times). It is rude, it is selfish, and it defeats the whole point of the class. Sure, 15-20 minutes is reasonable when you just have that one bug you cannot figure out and when OH is not busy, but please think about others too. Come to OH with specific questions, or if you are confused and don't know where to start, ask at a high level where to start. Don't ask TAs where to start coding without trying to figure out what you are actually doing. Okay, rant over.
In conclusion, Reiss is a great lecturer (my favorite at UVA thus far), you will learn a crap ton, and the homeworks are hard. But, if you come into the course with a good attitude (and probably not with a super hard schedule) it won't be so bad. In fact, you might even find yourself enjoying it. Time: expect around 20 hours of commitment per week in studying, lectures, quizzes, and homeworks. Expect to be completely lost at times, but know that it will all work out and you will be just fine!
Reiss is a fantastic professor. Yes, the material is very difficult, but he does a great job of explaining the concepts and using examples that really help make sense of those concepts. The material isn't always the most exciting, but you learn a ton and it is very valuable knowledge (even if most of us won't need to know the super-specific details to get by day-to-day in a job after graduation). His homework writeups are phenomenal - providing step by step instructions of what needs to be done to complete the assignment. One warning - there is a significant step up in homework difficulty after the midterm . Paging, FAT, and Twophase were the three hardest of the semester by far for me. But if you are willing to dedicate enough time to the class, all the homeworks are doable. OS is the big bad wolf of the CS department, but honestly if you take it with Reiss it isn't that bad (at least, not as horrible as I was expecting based on the things I had heard going in). Of course it's still very challenging, but he makes it manageable. Strongly recommend taking OS with Reiss if you can.
Get us started by writing a question!
It looks like you've already submitted a answer for this question! If you'd like, you may edit your original response.
No course sections viewed yet.