Your feedback has been sent to our team.
175 Ratings
Hours/Week
No grades found
— Students
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.
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.
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.
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.
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.
This was definitely the hardest but most rewarding class I have ever taken in my life. There were many times when I wanted to drop out of CS because of this class. If labs take you 10+ hours to complete, do not feel discouraged! Be willing to put this much time into the labs, three times a week (pre-lab, in-lab, post-lab). This is not an exaggeration. Get started on Lab 2 as soon as possible because there is a MASSIVE leap in difficulty from Lab 1. There's a lot of hype about Lab 6 (Hash lab) but the hardest lab in my opinion is actually Lab 10 (Huffman coding). All the even number labs are hard. Start the labs on Sunday so you can go to less crowded office hours. If you don't mind losing your weekend, DO IT because it will make your life much easier later. Study all the old exams that he gives you because they will help you do much better than the average. Even though you'll end up putting in a tremendous amount of work into this class, there is a generous curve in the end, and you will learn more than you ever could've imagined.
This course was AWESOME!
Regarding Bloomfield: Professor Bloomfield is incredible. He's very approachable, always willing to help, and really really puts his energy into this course. He's worked very hard to create high-quality course materials and lab writeups. He's quite busy, so some people find him hard to contact; however, I've never had this problem.
Regarding the Course:
If you like CS 2150, you will certainly enjoy CS. (This is not an if and only if statement, though.) It starts with a fast-paced introduction to C++, proceeds to some data structures, discusses x86 assembly language, and wraps up with some more advanced C++ and memory management topics. It briefly introduces Landau notation (you'll be expected
Some people find this class difficult. The best preparation I can recommend is:
1) Install Ubuntu or Kubuntu Linux and get used to the terminal and a commandline editor (emacs is preferred, but he'll let you use vim). Doing this will place you worlds ahead of those without Linux experience, because you can only use that OS for programming in this course.
2) Teach yourself some C++. If you understand some of the key differences between it and Java, and can write a simple input/output program with subroutines, you'll find the first few weeks of class much easier.
3) Actually read the course materials and policies on the GitHub site. I felt like a lot of people just skimmed these and were surprised by how things were graded, etc.
4) Ask for help early and often. This is *not* a course in which you want to get behind.
Professor Bloomfield does a wonderful job of making the class interesting and engaging. I absolutely recommend this course, although be ready to put 10-15 hours a week in for the labs. The labs that have a lot of hype about being difficult (2,6,10) ARE difficult, so start early! The labs are hard, and time-consuming, but in my opinion they are very rewarding and truly solidify the material.
In studying for the exams, do as many old practice exams as possible and be able to thoroughly explain everything. The exams can be tricky, although they are often all curved so your grade will not suffer too much if you do not do great on one of the tests.
All in all, great class and highly recommend for CS/CPe majors in order to get a very strong understanding of computers, C++, and efficient problem-solving.
This class would be much more manageable is there were not 3 labs a week. You can tell bloomfield loves teaching a hard class from day 1, but he teaches well and admittedly this class has taught me so much about computer science. I am constantly doing labs, but it is worth it because they are helping me become a better programmer, in contrast to CS 2110 which I took last semester. The labs are hard and they take forever, the tests are hard but you have more than enough time, and I have become a better programmer as a result of this class. However, just be prepared to lose a lot of your free time
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.