This class is difficult, but it is manageable. I made sure my semester course load was not too demanding while in this class, so that probably helped a little. I didn't do that great in 1110 and did okay in 2110, but 2150 I knocked it out the park and got an A. If I can get an A in this course, anyone can. You really just have to put in the work, and by work I mean make this class your life for the semester. Start your labs early on Sundays and study for the exams. Study ALL the old tests because they help. I got above the average on all the tests including the final by doing this. Also, one last thing, if this class is not a requirement for you do not take it, its too much work otherwise.
Grade Distribution
No grade data available
145 Reviews
While Professor Bloomfield is a good professor, this class is VERY hard. You will spend lots of time doing pre-labs and post-labs, which can be difficult. It is a little annoying that this is a weed-out class, despite very few people taking it before declaring their CS major. You do learn a lot about C++, a still commonly used language.
It cannot be said enough that this course requires a huge time investment for some of the labs. In fact, this course is labs (cleverly disguised homework) and exams. The pacing hits you in the face by week two, but it is relatively easy to adjust. My main beef with this course lies in the exams. You could probably procure a nicer cocktail of words by putting alphabet soup in a blender than some of the wording on these exams. This is particularly ironic considering Discrete Math (a course that emphasises clearness of language) is a prerequisite course. There are a couple of guidelines in place to help the overloaded TA's cope with the 200+ students taking these exams (in addition to all the material they need to grade in the first place). Unfortunately, this creates a perfect storm of not knowing how much to explain in a question versus how verbose you need to be. A majority of the exam questions could use some work with their phrasing, and the fact that some requirements in labs can be misinterpreted to your own demise is also bothersome. At times, it feels as if your representative knowledge in this area of study is not reflected by the work you submit or the exams you take. I'm generally disgruntled with the course as a result of this. However, I have found that Bloomfield is the best professor for CS I've had here thus far, so he's certainly doing something right. This is a required course, so take it as you must. It certainly covers a huge span of material, but the finer clockwork in the cogs needs some work so people don't get caught in the foray.
The truth is, yes, this class is incredibly difficult. It is probably the most demanding course I have taken at UVA so far and it definitely requires dedication and patience. The labs can take several hours and as other people have said, the exam averages are in the 60s. That being said, Bloomfield is a fantastic professor who knows his stuff very well and did an impressive job building the curriculum for this class. His lab instructions, while long, are thorough and organized. Study for exams ahead of time and do practice exams, because they are really helpful. Take advantage of office hours because the TAs really know what they're doing. If there's a class you should not procrastinate in, it's this one. Do not leave the labs to do the night before and use Piazza (it is a wonderful resource). While this was a very tough class, I am glad I took it and I think it's worthwhile because you learn so much and become a better programmer.
This class is a TON of work, but you learn a lot. Success in this class requires time management and staying on top of your pre-labs. I would suggest starting pre-labs on Saturday and going in to office hours on Sunday to get help because monday OH tend to be pretty busy. The TAs are all really good and helpful. Lab 2, 6, and 10 take a lot more time than the others, so start early.
I would say this is the first CS course in the major where you actually have to begin to understand what you're doing to get by. For the previous courses a lot of the time the compiler would do a lot of the heavy lifting for you, so making the shift away from using IDEs can be tough for some people. The work load is intense, but the topics are worth learning. I cannot wait for this class to end, but it's a worthwhile course. Don't take it if you don't have to though.
This is an incredibly difficult course, however Bloomfield lays out how it will proceed and it never feels like what you're learning is unnecessary. Except emacs. Emacs are just awful
CS 2150 is a very challenging but very worthwhile course. Test averages hover around 60% and some labs take up 10 hours in a week (a conservative estimate). Bloomfield demands a lot of students but all work he assigns combines the abstract topic of data structures with applicable coding assignments. Bloomfield is the best Professor I have had in the CS department to date and I would highly recommend this class to anyone willing to put in the necessary work.
This is kind of class that pulls everything together in CS. Professor Bloomfield is great. It's a hard class, but it pays off at the end.
For sure, you learn a lot. BUT unless you are majoring a computer related subject... please stay away from this class for your better mental health. The amount of work will make you want to cry every week until you are done with your last lab assignment. Your thanksgiving break will be ruined if you are taking this during the fall semester unless you can code really easily. Exams are difficult because there are like 18 questions and average is around 60 per exam. Curve is generous; just study with previous tests and go to the office hours for help with lab. Try to go to Wednesday and Sunday office hours.