Your feedback has been sent to our team.
20 Ratings
Hours/Week
No grades found
— Students
Reiss is very knowledgeable and the class is not too difficult. If you read the textbook BEFORE class and go to every class you should be fine. Everyone that doesn't read the textbook gets massacred. This class teaches you vital topics such as concurrency(!!!), unix, IO, virtual memory, sockets, file systems, distributed systems, etc.
I regret that I did not like this class - Reiss is a q u a l i t y teacher and he really knows his stuff. There's a lot of worthwhile content that (unlike any other class) has made me feel like an actual computer scientist. I would compare this class to 2150 (which is my least, least favorite class), but this review in of itself may be skewed considering that I started skipping on a bunch of assignments and did just enough to get C instead of GC (COVID-19 semester). Grades are generally rough, but there is a curve at the end. Don't skip lecture (or if you do, hold yourself accountable to watching them online - things move really fast and once you stop it's hard to catch back up). Start labs early and seek TA help. I know it's been said before, but I'm saying it again because I thought I could skip on this advice since I didn't need to do any of this for 2150. 4414 is very different, and considerably harder. Please, please, please don't be like me.
The most important thing is to keep up with the material (lectures and labs) and not get behind. Once you do it's almost impossible to catch back up and you'll be taking late penalties on everything from there on. The 13-15 hour/week metric is accurate. The HWs are very in depth and you need to understand how to do the assignment, actually write the code for it, and then spend a considerable amount of time debugging (which takes forever in C and even longer for the XV6 assignments). If you aren't already, you NEED to become familiar with Linux and the terminal.
The TAs are extremely helpful and will work with you for as long as you need on specific questions/help you debug stuff if you're stuck. If the OH queue is backed up, they'll also sometimes do a public session where they go through pseudocode and basic concepts for the HWs so people can get started. Reiss is also extremely helpful in OH.
The lectures are very involved and you really need to attend every one of them and take notes or do whatever helps you remember the material. If you can't attend them, you need to watch the recording ASAP because again, catching up once you're behind is pretty much impossible.
Overall, somewhat difficult and very time-consuming class but you learn a ridiculous amount and really start to feel more in touch with how computers do things. If you try to keep up with the class it never really feels overwhelming but it is definitely a 10+ hour commitment per week to do so.
The class is designed like all of Charles Reiss' classes. Quizzes, Homework, and a final at the end. Quizzes were not too difficult as they followed pretty close to the material that was posted on the slides. The final was similar to the quizzes as it was just held online. Homeworks is basically where it gets rough. My only compliant is just how inconsistent the amount of time that was needed to be dedicated to each homework was. Some assignments I could finish in under 3 hours and another homework might take me 3 days straight. Long story short know ahead of time which homeworks are easy and which are not. Paging, FAT, in particular are extremely time consuming and long. Talking with TA's though was generally pretty helpful and overall I've had good experiences with them. The last thing is that even if you pass all the tests that are assigned to the homework it's not a guarantee that you will get full credit which is kinda annoying.
Also Charles Reiss is legitimately one of the most intelligent people you can meet.
#tCFspring2021
This class is literally the hardest CS class and maybe even the hardest at UVA. Although, taking it with Reiss was probably the best option, as he really does know his stuff. However, the HWs are long and sometimes ambiguous, so I'd recommend starting them early if you can. The good thing is that the late policy is insanely generous (10% off for 3 days late and 20% off for 5 days late). If you don't need this class as a requirement, I'd stay away from it. #tCFspring2022
When I took it, this class was 30% quizzes, 55% programming homework assignments, and 15% final (take-home and online). The quizzes were take-home and open notes, around 4-6 questions, and a mix of short-answer, multiple-choice, and select-all. The wording can be really confusing and the quiz content did require a pretty advanced understanding of the material (it wasn't anything you could just pull directly from the lecture or the slides). If you show your work or thought process in the comments section, you can sometimes submit a regrade request and get partial credit. The homework assignments were pretty challenging, they generally took me around 6-15 hrs per week. Most notably, FAT, Shell, and Paging are the hardest (though once you understand the content, a lot of it is about parsing). I would definitely suggest starting early and getting help through OH when stuck.
Reiss is one of the most knowledgable professors I have had so far and he's incredibly responsive on Piazza (which is so important, especially right before a homework is due). I can usually get a response within a day and oftentimes get responses an hour or two after posting. I honestly have no idea how he manages it so well. I will say that his lecture style sometimes assumes you already have background knowledge and doesn't build up the foundations in an organized manner (like introducing various elements of hardware and such). He does build in room for questions though, and a lot of the info comes from people in class asking prompting or follow-up questions so he elaborates more.
#tCFspring2022
This class was a doozy. Definitely the hardest CS class at UVA - both for the difficulty of the material and the amount of time I spent doing the assignments. The weekly take-home quizzes were quite difficult and the homeworks took incredibly long - some of them I probably spent 15-20 hours on. Start the homeworks early if you can, however, Reiss has a very generous late policy that I took advantage of probably too many times. Reiss is a great professor and very responsive - especially on Piazza. I also appreciated that when people asked questions in class he was never condescending at all unlike a lot of CS professors when you ask something they think is obvious. This class is brutal and will take a ton of your time but I have no complaints about Reiss, so take it with him if you can.
Like what the previous reviews said, this class is nothing to lay off on (that's why we called it OS: OH S$^! when you get a million segfault errors on qemu 10 minutes before the deadline). This class has taught me more than any other CS course in this university about Computer Science as a whole (tied with CS 2150 and CS 4102), especially the hardware aspects and how it relates to the kernel. This class was not an emotional roller coaster for me, personally, but rather an enlightenment of what I actually wanted to do in CS. Even though I did not touch grass this semester (I took it with CS 4102 lol), I have learned much about locks, threads, processes,deadlocks(not spooky), file allocation tables, inodes, page tables, spinlocks, scheduling, RPC calls, exceptions, more locks, and why my computer don't work (AKA you probably messed up your kernel or a segfault).
Reiss is probably the best professor to take with for this class; he is very intelligent and probably one of the smartest CS professors in UVA (if not the smartest). I went to office hours once with him, and he fixed one bug that I was not able to discern until he mentioned it, causing all my seg faults to magically disappear to wonderland and make me pass all my test cases (sort of).
Quizzes can be a hit a miss; sometimes you do really well, and sometimes you screw up because you did not pray hard enough to the kernel gods. But Professor Reiss does drop 2 to compensates, which helps a ton. Sometimes the wording throws me off, but if you say why it does in the comments, you could get some points back. You have to actually pay attention to lecture or rewatch the lectures while you're taking the quizzes to understand what is going on. Reiss throws a lot of stuff at you, but if you take the time and effort to understand what is going on, you will heavily be rewarded on the quizzes and ..... the homeworks (oh boy).
Ah the homeworks; the thing that made me unable to touch grass this semester. The homeworks can vary in time and difficulty. Some of them are very lengthy, but not because they are difficult, and others are very difficult but are actually really short in the amount of code you write. The most difficult ones for me were Paging, Shell, FAT, and ThreadPool. Learning the debugger can help you especially, but you can also get away with it through "ghetto debugging", i.e print statements before your error occurring/segfaults. This helped tremendously, alongside talking to the TAs and (begging) asking for suggestions on how to implement your solution is very helpful. Piazza can be a huge game changer as well because Reiss will almost certainly respond to your questions within an hour, which can be very helpful in dire situations (1 hour before submission deadline..). I will summarize all the homeworks as succinctly as possible.
intro to xv6: First level of mario 64 type beat. 30 minutes.
Shell: if you do not parse correctly, GG. 12 hours (two weeks).
Lottery: Oprah (xv6) gives gifts, but instead "tickets" to all your pids to hopefully win! (6 hours).
Life: Threads madness. (5 hours)
Pool: Threads madness 2: ft locks. (10 hours)
Paging and Protection: Revenge of the xv6 (like actually this was the worst no cap I do not care what anyone says). (20 hours +) two weeks.
FAT: 2000 memes. This was probably the best one in my opinion. Most fun out of all of them. (13 hours). Two Weeks.
twophase: United Logs of Transaction States. (4 hours).
I will admit, some of they were really bad (probably the hardest assignments in the CS departments), but I have learned a lot and do not regret spending much time towards some of the hardest topics in CS. A lot of people made fun of me for having to take OS due to BSCS, but I am kind of glad I did because I have learned more about how processors are able to communicate with the kernel (which is something everyone has because you're looking at this review) making me more knowledgeable about how they interact with other things in computer systems. This course has given me a broader scope of what CS can offer towards my interests. I would suggest if you want to take OS, take it with Reiss because he will ensure you will be ready for any job that focuses on Operating Systems or any other hardware related job. He truly wants his students to succeed and have a good comprehension on Operating Systems as a whole, especially through piazza and his office hours. I doubt any other professor will teach you about OS as effectively as Reiss would.
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.