Your feedback has been sent to our team.
21 Ratings
Hours/Week
No grades found
— Students
Reiss is quite passionate about the course and isn't a bad lecturer at all. He spends a lot of class time answering questions, which I didn't mind personally because a lot of the content I ended up learning/mastering on my own time anyways. Homeworks are the most important part of your grade (similar to CSO1), so complete those early on. As long as you show up in-person to labs, they shouldn't be too bad to complete and you can often get checked off for effort. Other than that, weekly quizzes account for a portion of your grade. I actually enjoyed parts of the course material quite a bit after I was able to understand the concepts, but since it didn't come intuitively for me I had to put a lot more effort in to get there. Reiss offers a lot of support himself and there are a lot of TAs as well. But this class was still one of the hardest I've taken at UVA. By no means did I get a good grade in this class, but I didn't expect to either. I'm just happy I passed. #tCFS24
TL;DR I took this course alongside DSA2 and SDE and managed to end with an A-. It is doable, and if you keep up with class and rewatch videos/take good notes, you should be able to do decent throughout.
The grade is made up of:
- 30% quizzes, which are weekly and usually made up of 5-8 questions which require technical knowledge usually given some hypothetical scenario, such as asking to translate a virtual address through a 3-level page table given some relevant info.
- 15% labs, which are also weekly and sometimes you don't even have to go in person for.
- 40% homeworks, which are every 1-2 weeks. Some of them are pretty hard (such as the game of life one near the end) and you definitely need to have a strong understanding of the content to keep up.
- 15% the final exam. This was definitely the hardest final I have taken so far (as a BSCS); it was long AF and required so much in depth knowledge that even though I started preparing two weeks in advance, I wasn't able to do my best. I think my biggest recommendation would be to never submit homeworks late and try your best to get 100s on all the homeworks and labs (quizzes are a bit harder) in order to "pad" your grade to withstand a bad grade on this, since 15% isn't much at all.
For me personally, what worked best was going to each class, taking pretty detailed notes and if I didn't understand something fully, rewatching the recorded lectures on my own time to make sure I understood examples etc. I would highly recommend trying to start all assignments as early as possible and trying to go to office hours, since struggling through homeworks alone was a pain. It is true that Prof. Reiss is hard to understand pretty much all the time but honestly, you get used to it and he is a really good professor. It is clear that he is an expert in his field from how confidently he tackles questions and how he is able to explain topics that I would have been lost on if I tried to self-teach (like cache policies and address translation). If you don't get something, don't be afraid to ask questions or go to his office hours because he is understanding and tries his best to make sure he has truly answered your question. Overall, I found this class very fun and interesting since I think it's cool to learn about the foundations of computers and stuff like that. Good luck to you all!
P.S. Reiss makes previous years' final exams and quizzes available from the start of the semester - I would highly recommend going through them for practice questions since they represent the difficulty of the final exam well. Also, the readings on the course website are sometimes really helpful with labs and homeworks b/c of the code snippets provided (like on signals).
#tCFS24
#tCFF23 This course has generally tough material and the professor does his best to cover everything in depth but falling behind will hurt you a lot. The lectures are recorded but going to lectures is what helped me the most. Some topics are covered over 2-3 lectures and rely on you understanding what's going on from lecture 1. I took CSO1 the semester before this and it made reading C and assembly much more familiar than if I took a semester off.
The homeworks are tough and take lots of time but do have an autograder for most of them. The quizzes are not so straight forward either but had a comment section on each question where you could explain your reasoning and maybe get some partial credit based on the assumptions you made to answer the question. The labs were all doable but looking over them early definitely helps as many of the TAs during my section had different labs for their version of CSO2 and were a little confused when trying to help me.
The final was weighted 15% so it wasn't an absolute grade killer but it is definitely a differentiator of at least one letter grade for many students.
This is the only class where going to lectures will make you more confused somehow. The readings are also awful and disorganized, filled with typos, and you'll spend more time figuring out how the hell it even correlates to your assignments than comprehending what you are actually learning from them. At the very least, the homeworks and labs are a lot easier than CSO1 (subjectively at least), and the quizzes are online, unlimited time, and open note which means you barely have to attend class at all (though the quizzes are fairly difficult). You'll also get partial credit on quiz questions if you explain your answers, and it drops the lowest, which helps a good amount with ensuring a decent grade on those so long as you put effort into explaining your process for solving the problem. The final is also only 15% of your grade so you can still pass the class with a B even if you completely fail the final assuming you have an average of about 75% on your quizzes and have a 100% on HW/Labs, which is fairly doable. Not easy to get an A in the class but if you are willing to settle for a B then it's pretty chill honestly.
Charles Reiss moves fast, but is a good lecturer that covers a lot of material quickly. This course has more workload than a standard one, so make sure you stay on top of the quizzes, homeworks, and lectures. To me, the hardest part of this class was juggling the quizzes and homeworks such that you spend adequate time on each one, as neither can be rushed without a bad score. Make sure to focus on doing the quizzes and homeworks so that you don't have to worry about the grade from the final as much. In particular, the quizzes stood out to me as being especially hard, given "select all that apply" questions and vague wording.
While Reiss does mention a curve at the end of the semester, rarely does it actually change people's grades all that much. In my semester, the grade curve moved everyone up 0.5%, so don't rely on it.
Personally, I enjoyed learning about operating systems and how processors work and enjoyed taking CSO2. However, this class is challenging and requires your full attention during lecture (or re-watching them later); otherwise, it can become very stressful. The grading felt harsh sometimes, especially for the weekly take-home quizzes where each question is pretty much all-or-nothing.
In my opinion, the programming assignments were interesting and not too time-consuming (for me, they took roughly 3-5 hours per week). I didn't like the labs very much, but none of them were too difficult, either, and I finished almost all of them during lab time. The most difficult assignments grade-wise are the weekly take-home quizzes, mostly because they test your knowledge of edge cases and reasoning. It helps to pay close attention during lecture, since there was nothing on the quizzes that wasn't covered before in lecture. I usually spent a couple hours per week doing the quizzes and double checking my math.
Whether or not Reiss' lectures feel engaging to you, I really appreciated that he knows the content inside and out and would recommend him for that.
CSO2 is infamous for a reason: conceptually it is probably the most difficult class I've ever taken but the grading structure gives you plenty of cushioning. Here's the structure of the class.
The quizzes each week are open everything, untimed and you have from Thursday night to Tuesday at noon to complete them. That being said, collaboration is not allowed and some questions can be very tricky. I can't emphasize enough how important it is to show all your work on quizzes. You can get partial credit on questions plus you have worked out solutions when you're going back over quizzes to study for the final.
Labs are free points and almost never take the full lab time. Homeworks are quite difficult if your C skills are rusty, but have an autograder with infinite submissions. Each homework took around 4 hours with a couple being online worksheets which take less than an hour. There is also a 3 day late period during which you get 90% credit for late homework, which is quite generous.
Going into the final can go one of two ways: if you have a perfect score going into it (either through doing well on quizzes and submitting homeworks on time or ChatGPT'ing your way through 🤨), you won't have to study much and can get a pretty bad grade on the final and still have an A. If you haven't done so well in the class, the final will definitely test how well you really understand each concept and how they interplay to make a computer work all together. Good luck if you're in the second group.
In hindsight, I learned a ton from this class about how processors work and enjoyed the learning process. That being said, I cannot be more glad to be done with CSO2. Since it's required for the CS major, you just have to knuckle down for 16 weeks and be done with it.
Reiss is a very good professor. Though the content can be very complicated, I think he does a good job making it understandable. He is passionate about the subject and puts in a lot of effort into making the class run well. All the assignments are fair and test your knowledge fairly, while helping you learn along the way.
This semester, the class was taught on and off by both Brad Campbell and Charles Reiss. I did think the class was better than CSO1. The semester hasn’t ended yet, so we’ll see how it goes from here.
There are homework, quizzes, labs, midterm, and a final. The homeworks are like the generic coding assignments given in CS courses. The quizzes are usually 4 questions based on the material covered the previous week. The labs are weekly labs. Unlucky for me, this was the first time they implemented a Midterm, and unsurprisingly, it didn’t go so well, with the average in the 60s. I think I would have fared better if I had studied thoroughly, which is my fault. For the midterm, past exams are provided and both professors and other students live on Piazza. Use Piazza it will be a life saver.
One of my biggest issues with the class is that although I think both instructors are sufficient, answers to questions become extremely convoluted and overcomplicated. This also stretches into the lectures and quizzes where, maybe I’m stupid which is a possibility, I find it hard to understand what they are explaining. It doesn’t help that I barely understand the questions people ask, the answers get lost somewhere in translation. I believe brief and concise are not words that are a part of this course. Homework explanations are sometimes difficult to understand, given the typos and weird ways of stating things. There are readings and other linked things on the website, but I don’t know how useful they are since they are equally as confusingly written and I do not read it.
Anyways, the best advice is to understand the material as soon as possible. There’s so much information, you cannot fall behind. I’d recommend going to class and paying attention even though there is recordings. I did use the recordings sometimes, but I find myself spending more time trying to decipher illegible writing on the slides and rewinding because it honestly is very draining watching it. It’s lowkey manageable but you really gotta focus when Reiss is explaining things so that you can follow it. It really is an eh course.
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.