Your feedback has been sent to our team.
34 Ratings
Hours/Week
No grades found
— Students
I'd like to preface this by saying that I took this class as a first year in my first semester so I was completely unpreprared for the difference in difficulty between highschool and college. That being said, I think this class is also just way harder in general. I took 4 classes this semester, and this class easily took up about 80% of all my time. There were days where I did homework from 2 PM to 5 AM the following day.
Thankfully, this class is saved by the fact that homework and labs make up a majority of the class, and the professor allows you to use ChatGPT so it's maneagable. However, the exams were a completely different story. You could study all you want and professor Graham will just test you on the most outlandish nuances ever, and he might've mentioned it in only one class.
I ended with an A in this class, but that's because my other 3 classes were very easy so I was able to focus very hard on this class. If you're taking this alongside other hard classes, it's going to be hard to manage your time.
I think Graham is a good person overall and he just wants the best for his students, and when it comes to live coding, the lectures are very helpful. When he started doing live coding, I learned a lot. Unfortunately though, he tends to just do powerpoint lectures instead. He's a good person and a decent profesor, but his lectures unfortunately don't help much with exams and homework sometimes, and I found myself doing a lot of independent research and studying just to understand what we were doing.
Ended up with an A- on the border of an A. The tests are difficult and this semester was an entire whirlwind but there were extra credit opportunities and tho Daniel didn't like our class, I think he was for the most part understanding and receptive to student and TA feedback. Topics honestly aren't that difficult, just make sure you have a network to collab on homeworks and labs which will really help, start everything early, take every extra credit chance (it probably will matter) and if you don't understand a topic, go get someone to explain it to you/it may make sense later.(Free tutoring) In my opinion, more difficult than DSA1 but not impossible or as hard as its reputation is, but then again keep the low averages in mind. The class starts hard (if you aren't prepared for circuits and binary), get easier, then gets harder (if you don't like C) or starts easy and gets hard/vice versa. #tCFF23
Prof. Graham is a nice guy, but as a lecturer, I felt the need to rewatch them and Google for clarification to understand all the concepts. However, he was really generous with extra credit opportunities. We had the ability to get up to 14% extra credit! I would highly recommend going for the extra credit opportunities, as they helped a lot.
The labs were usually fine, and you could complete them ahead of time and get them checked off before your lab session. The HWs were all really interesting and helped a ton with understanding the content, but I did find the first (Bit Fiddling) and last (Code Generator) ones to be much more challenging than the others. For Spring 24, The tests were definitely a huge improvement from previous semesters, as they had much less convoluted questions (for the sake of being hard) and an emphasis on more straightforward clear questions.
Overall, this class is a lot of work, and for those interested in understanding low-level processes and hardware design, this is a very interesting class.
This class is extremely difficult. It is very different from the previous programming courses in that it is very hardware-heavy, with circuits and file management programs. The lectures move very fast and build upon themselves, so it's important to keep up with the content. The slides, as well as recordings from past years, are posted on Canvas to reference. The readings on the class website are also pretty helpful. The homeworks aren't terribly difficult, with the potential exception of the escape room assignment. The labs are also not hard and are flexible. Attendance of lab is mandatory, but you have a week to submit the assignment to GradeScope. As for Professor Graham, he is very knowledgeable of the subject matter and is very good as answering questions about the content. He can be slightly crazy at times but he really is very sweet and kind. The tests were pretty difficult, but they offer pretty generous partial credit. https://researcher111.github.io/uva-cso1-F23-DG/ Here is the course website for reference.
This class will throw you into the deep end—an ocean of bits, bytes, hexadecimal, and machine code that makes you feel as if you’re constantly on the verge of drowning. Then, just when you think you can’t take any more, you wash up on the shore of Assembly and C, saved from what feels like certain defeat.
It will test you and push you to your wit’s end. If you can maintain your sanity, though, it can be incredibly rewarding and transformative in the way you view both hardware and software. I managed to earn an A, but I won’t lie—it was an up-and-down battle all year.
Graham is excellent and very lenient with homework and test grading (the first exam had a 23% curve). The homework assignments are extremely challenging and count for a large portion of your grade, so make sure you start them well in advance.
Overall, I highly recommend this class to anyone who truly wants to learn a vast amount—from low-level binary all the way to WebSockets and everything in between.
I really enjoyed this class! I feel like the negative reviews on here are unnecessarily harsh, and I also think they've done a lot to improve the structure of the course over the past few semesters. Yes, some of the material and assignments are pretty challenging, but you are given ample resources (office hours, a week for every homework) and Graham is an excellent professor. Overall, I felt the workload was very manageable -- we only had 8 homework assignments this semester and three exams (including the final). The material can be difficult at first, but it is not at all impossible and extremely rewarding. Although I loved the content of this course, I was someone who didn't enjoy DSA1 -- so it could depend on the person.
You would be a fool not to take advantage of the office hours for this class -- I highly recommend finding out when Matthew and Gavin have office hours, they are FANTASTIC. I needed help on pretty much every homework assignment and they always explained things in a way that was so easy to understand.
Receiving an A is also not particularly challenging. The majority of your grade is homeworks and labs which is fairly easy to attain 100s in both categories. As long as you put decent efforts towards studying for each test (which again, there are only 3, and this was such a welcome change from DSA1 for me), you should be able to land in the 70-90 range, and your grade will be totally fine. We also had the opportunity to earn up to 7% extra credit this semester through optional assignments, which made the difference between an A- and an A for me.
I was actually in DeLong's section but I don't like attending class so I just watched Graham's lectures because he's the one who writes the assessments. In comparison to other 2000-level CS classes, this one is VERY skill-based (as opposed to knowledge-based). The content relies heavily on "knowing how to do things". So for this class, I would say lecture is a little less important, and would instead recommend putting aside plenty of time understand the homework (do NOT just AI your way through because you will be cooked on the assessments).
I felt like the support system for this class was very robust, Graham, DeLong, and the TAs obviously spent tons of time and attention on the course and kept students in the loop the whole way through.
Also, I HEAVILY recommend setting up VSCode so that it can connect to your ssh portal. Nano will give you a huge headache if you try to use it all semester long and I think using it genuinely impacted some of my classmate's grades.
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.