Kinda sad this class is going away. It was hard but Bloomfield is an amazing lecturer and I learned an insane amount of computer science thanks to this class.
Grade Distribution
145 Reviews
I had Bloomfield for this course (who also happened to be my advisor which worked out nice). In terms of his personality, he's a fairly nice dude, little bit of a dry sense of humor which I enjoyed. He showed a xkcd comic that related to the lecture before class every day, which usually got a few laughs from the class.
This class isn't for the faint of heart. That being said, it's not that bad either. A lot of people refer to this class as a "weed out" class, which is probably true, however it's not that hard to get a good grade in this class either. Grade consists of 45% labs, 30% Midterms (two exams, probably take about an hour each), and 25% final (also an hour-hour/half). Labs are autograded on GradeScope, and while there are some hidden test cases that get run after the lab due date, they usually don't test that much more than what's specified. There's a prelab, inlab, and postlab due each week for 11 Labs, so about 33 assignments total. I only got < 100% on 3/33, and one was just for being late. I'm not some prodigy either, but if you can use resources well (like piazza and office hours) good grades are definitely attainable.
Exam averages were around ~65% ish, however everyone I talked to always got better than a 70%. They publish every exam from the last 15 years of the course, so you know exactly what you're going to be tested on.
Don't get me wrong, this class is hard. One day I started coding at 10AM and finally finished the prelab at 10PM, barring a two hour break for dinner. Majority of the class is in C++, which is a lot more robust than Java and absolutely nothing like Python. You work in Machine Code and x86 for a bit, but only for about 3-4 weeks total.
Overall, the course is not as hard as some people probably make it out to be. Sure, it takes a lot of work, but paying attention in class, going to office hours, and using piazza make an A easily attainable if you're willing to put in 10-15 hours per week #tCFspring2022
Honestly, the difficulty is extremely overhyped. I came into UVA not knowing how to code and by just going through 1110 and 2110 I was able to do decently well in this class. Sure, there is a lot of content to digest, sure some labs are frustrating but it's not a life ruining class like often portrayed. The exams are basically CS/C++ trivia. If you study for long enough you will do fine. It is a weed-out class, but getting an A is absolutely doable. I never went to OH but all the TA's I interacted with seemed nice and knowledgeable. Bloomfield is an amazing professor. His "lack" of kindness stems from the fact that he has ~350 students to take care of. This has been my favorite class @ UVA so far.
I stopped watching Bloomfield's lectures a week in and just watched Floryan's for the rest of the semester but I disliked the interactions I had with Bloomfield. he wasn't very helpful when I needed a loaner computer and in general seemed like he genuinely enjoyed making us suffer. I think this course would've been more bearable emotionally if I knew my professor actually cared about the wellbeing and success of their students. I'd recommend taking this course with Floryan - even though the content is the same, Floryan is a lot more compassionate and helpful when it comes to stuff like that. Onto the class - obviously it's a ton of work. I think I spent around 15 hours a week on this course, though sometimes I'd spend an entire day or two alone on the labs (the IBCM labs were the worst). I failed all of the exams but still ended up passing! Just focus on doing well on the labs (OH queue is TERRIBLE so take advantage of the engineering tutoring site- anyone can use it not just e-school students) and you should be fine.
I don't think I could really judge a course that has been developed and improved for years. All my thoughts are in the rating. For the professor, I believe Mr.Bloomfield may be the BEST CS PROFESSOR at UVa. The course structure was clear, and all the resources are available at any time. I have to admit the workload is big, but at least it's reasonable. The midterms and final are also fair. He did not test things that have not been covered in class.
First, I don't understand how professors can get away with not checking their email just because they get too much email. You're here to teach and support students. If students can't get a hold of you through email, you are failing. It's the bare minimum.
This class also has an unnecessarily difficult structure. The content isn't super hard, but there is SO MUCH of it, and you need to know it inside and out. You are not set up to succeed in this course. I would strongly recommend avoiding this class if you do not need it. The TAs try their best but a lot of them aren't helpful, unfortunately. No shade to them though, they try their best.
Bloomfield does not provide you with resources to study for the final, you're all on your own. He gives past exams but no solution keys. You can try to figure it out with your friends. Given that so many other CS classes give past exams with answer keys I find his excuses against giving them completely meaningless.
This class is finally getting some needed reform with the syllabus change. I don't know how they are structured but splitting up this class into 2 seems like a step forward.
With all that being said, if you love CS and love it so much that you pour in hours and hours of your time into this class, you will do well. It's not impossible to do well. You're just not set up for it. #tCFfall2021
CS 2150 is incredibly eye-opening to how programs execute at a lower level. While it may seem like the content is a bit abstract, I personally found it quite useful to understand the basics of how code is represented and executed by the machine. I took this class when it was virtual and the lectures could be a bit dry (though I think that's the general risk for Zoom lessons). The workload was not as bad as I expected, there are about three labs per week: prelab, inlab, and postlab. They definitely require time and effort, and I would recommend starting early because it's not always clear how long an assignment will take (especially because C++ error messages are terrible).
Very useful class, im glad I did it and I learned a lot. That said it was a TON of work. I can't imagine what the students who did in non-covid times went through. For us though there were no exams (only the final) and just 3 labs a week. The labs took between 3-6 hours each depending on what it was but I was definitely on the lower end of the class in term of grades/skill so its probably possible to get it done faster. The TAs are great, as soon as they start I would recommend getting in queue because the lines are lines are long and by the time your turn is up you will probs have a question.
You are not set up to succeed in this course. I would strongly recommend avoiding this class if you do not need it. Bloomfield does not give you the prep you need to understand the labs so you will spend a ton of time outside of class looking for help. It is so many hours per week and unfortunately only 3 credits. The TAs will tell you that you can figure it out in OH if you are super lost too. He makes the exams really hard and generally doesn't care how his students are doing. If he was even available at all for feedback he would hear this general sentiment (he doesn't respond to emails by the way).
I knew going into this course that it would be a lot tougher than CS 2110. That being said, the course wasn't as difficult as it was time-consuming. It's only a 3-credit course, but I'm certain that I spent way more hours on the labs than 3-credits normally warrants. The labs consisted of a pre-lab, in-lab, and post-lab and some were definitely much harder than others. It didn't help that pre-labs were due Tuesday mornings and then in-labs due the same night. I recommend trying to get the pre-lab done over the weekend and try to start the in-lab before Tuesday. Having the TAs look at your code also helps a lot since a different pair of eyes can really help point out some simple but consequential mistakes. All in all, the labs were very time-consuming but a good score was very achievable.
The most stressful thing about this course was the final exam. Since this semester was online, Prof. Bloomfield elected to have just one exam, the final, and make it 30% of the students' final grades. I've never felt less prepared for a final. Bloomfield stated that on the exam he tries to test you on concepts that weren't really covered in the labs. So as someone that didn't consistently review concepts from past lectures that really hit me hard. I studied really hard in the 1-2 weeks leading up to the final and got a B, but my lab score was high enough to keep my final grade in the A range. Highly recommend doing the exams from previous semesters. It's inconvenient that there aren't any answer keys, and the TAs often had a hard time answering past exam questions. I found it helpful to go over the exams with a small group of classmates instead.
#tCFspring2021