Your feedback has been sent to our team.
32 Ratings
Hours/Week
No grades found
— Students
Tl;dr constantly ask questions, constantly go to office hours
As someone who took the class in Fall 2023, had to drop it for my own sake after the first exam, and retook it in Spring 2024, Professor Graham (while still not perfect) has taken feedback to heart and improved this class. Graham still goes through slides quickly sometimes, but he is willing to stop if needed and assist with understanding during office hours. There was a noticeable amount of typos that added to the confusion, but he and the TAs are really helpful on Piazza when it comes to correcting any misunderstanding.
Most of my problems are with the content itself since it's just difficult and nothing can be done about that. Thankfully, TA office hours helped a lot in understanding, and I especially recommend going in person for homework help if you can.
The exams also underwent a major shift, as they are all mostly multiple choice aside from a few short answer questions, a far cry from the difficulty of exams pre-2024. You can check this link (https://researcher111.github.io/uva-cso1-F23-DG/exam_review.html) to see for yourself, and all of the course content is elsewhere on the website if you want an idea of what it's like.
#tCFS24
Graham gets a lot of hate from other students, but I feel like its undeserved. CSO has a steep learning curve, and if you aren't already knowledgeable in computer science concepts (like Linux, C, Java, binary, etc), its extremely hard to follow along. This isn't his fault at all! He's such a great teacher and simplifies topics for better understanding. The guy literally invented his own language to make learning x86 easier. He's extremely dedicated. The only issue I had with him was that his tests were pretty hard. After spending 3 days straight studying, I averaged an 85% on his tests, which is pretty good considering that the test averages were 80% and 70%. He does offer extra credit opportunities but doesn't make it easy to earn them. You definitely have to put in the work.
That being said, he really is a genius teacher. His lectures are extremely organized and well structured. Although it may seem confusing, if you go back and watch his lectures, he thoroughly explains a lot.
These reviews are too harsh on Graham. The course content is difficult. There's no denying that. ESPECIALLY if you are not familar with computer architecture and low level programming. I took this class alongside DSA and other math classes and ended with an A. It was hard but not impossible. What I realized after the semester is that the course is structured beautifully. You start off with very low level content (electricity/transistors, gates, circuits, etc.) and work your way up to number representation and computer architecture. Yes, Graham makes mistakes, but again, the content is difficult and confusing. Be prepared to put a lot of time into understanding small things. Also build a friend group within the class. You later work your way to assembly and C. In my opinion, assembly wasn't bad. It was taught well and you get good practice with it. C is where its hard. be ready and work hard. The labs and homeworks are difficult. Be prepared to dedicate hours to each one. Do the labs with friends. You are supposed to work together. Go to office hours for homework. Make the class easier for yourself. Overall, the class was really interesting and and some points (not all), it was enjoyable. That being said I would NOT take it again and am not looking forward to CSO2.
Honestly, Graham isn't a bad professor nor is he a bad teacher. He is a very nice person and always willing to help any student. He also makes some interesting jokes in class, which hit ("villain arc"). I can tell that Graham has listened to his TAs and taken student feedback, and the course has improved since fall 2023.
But, the course is still difficult and the exams, are still pretty hard generally speaking. The HWs are all doable, but HWs 1 (bit fiddling), HWs 3-4 (modulo and GCD binary coding), and HW 9 (code compiling thing, which was an entirely new HW this semester) were the most challenging and longest. The other HWs were much more doable and better. The labs were mostly doable, except for some labs which were quite long. You should be able to get high grades on the HWs and labs (just showing up and submitting something in lab is 80% minimum). As for the exams, utilize every study method possible to understand the content and DO THE PREVIOUS TESTS (on the course site). Then, just pray that your exam score is good enough.
professor graham is a nice guy, but he's definitely not the best at giving lectures. a lot of his lecture slides are filled with typos that make it really hard to actually like. use as valid study material which is pretty upsetting. he'll make changes to the slides throughout class as he starts noticing the errors/other people pointing it out, but he won't update the slides on the schedule most of the time so make sure you adjust your notes in class. sometimes he'll spend more time talking about an adjacent topic that doesn't really matter for the class which wastes time, even if the topic is interesting. also, a big problem is that he makes lots of mistakes when doing live coding sessions and often finds bugs that take him a good portion of the class to fix, even if it is simple. when i went to him for OH, he is unable to effectively find the problem i am having with my code. again, he's a really nice guy and passionate about helping people learn cs, but he makes tons of mistakes which makes it difficult to learn. the exams, specifically the first one, were also quite interesting. T_T
01001110 01100101 01110110 01100101 01110010 00100000 01100101 01110110 01100101 01110010 00100000 01101000 01100001 01110110 01100101 00100000 01001001 00100000 01100010 01100101 01100101 01101110 00100000 01101101 01101111 01110010 01100101 00100000 01101101 01101001 01110011 01100101 01110010 01100001 01100010 01101100 01100101 00100000 01101001 01101110 00100000 01100001 00100000 01100011 01101100 01100001 01110011 01110011 00100000 01101001 01101110 00100000 01101101 01111001 00100000 01101100 01101001 01100110 01100101 00101110 00100000
To be honest, I think this was both one of the most challenging and rewarding courses I have taken at UVA. There were genuinely times where the work in the class seemed excessive and made me want to blow my brains out, but after learning it, I feel that I have gained such a deeper level of understanding in the class, and am glad that I went through the struggle. To start, I can easily say that this is not an easy class. There is a lot of content in this class, and 1. if you fall behind you are screwed, and 2. if you don't get something, you better either learn it quick or you're screwed, and 3. prepare to spend a lot of time doing homework.
It's no joke when people say this course is hard, but I genuinely believe that professor Graham did an amazing job at teaching this course. For lectures, tbh I don't recommend them as the course is recorded, and it is so much easier to learn through the recordings, as you can back track and whatnot. Graham does a great job at teaching the content, but he does go by things quick, making it hard to pay attention in lecture. Take advantage of office hours and lab time, especially for homework assignments.
Genuinely, the worst part about this class has to be the homeworks. Most homeworks took a long time to do (probably like 30 mins if you know what you are doing, 2-3 hrs minimum if you need to learn ig), but all of them except for one feel like they have a purpose. The only one that felt like a waste of time was called escape room, and it's actually the dumbest assignment in the class that they should either shorten a lot or remove. Highly recommend you go to office hours to ask for help on it.
Overall, I genuinely think this course is one of the most rewarding classes you can take. By no means is it easy, and if you think it is anything like your other CS classes, you're in for a huge awakening, but after you finish it, hopefully you will gain a deeper gratitude for the subject.
I want to start by saying that Daniel, outside of his teaching role, seems pretty knowledgeable. But when it comes to teaching, there are a few major issues I need to talk about.
First, there was a lot of unhappiness with Exam 1. Daniel did say sorry and took out some questions, but even then, most students scored around or below 70%. This makes me think the exam didn't really match what we learned in class.
Then, with Exam 2, things got more complicated. Along with a similar very low average, some students' exams got lost, and they were given a choice: either do an oral exam with a set minimum score or get an extra 10-15% on their final grade. This doesn't seem fair or consistent to me.
The final exam had its own problems. Students who said they were sick could take it online, with no real checks, which makes me question if everyone was honest.
All these issues make me feel that Professor Graham isn't meeting the standards of a great teacher. His methods in managing exams and grading aren't consistent or fair, and this could hurt the quality of our education. It's clear we need a better and more professional way of handling our curriculum and assessments.
$tCFF23
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.