Skip to main content
Sponsored
CS 2150 Program and Data Representation
Last taught: Spring 2022
25 Ratings
⏱ Hours/Week
Instructor
Enjoyability
Difficulty
Recommend
Reading
Writing
Groupwork
Other

Grade Distribution

Average GPA
Students Measured

22 Reviews

Add Review
Spring 2022
3.7
Average

First of all, Mark Floryan is great! Phenomenal lecturer, super friendly, extremely good at explaining complex topics simply. That being said, there is simply too much material crammed together for this course. Each week there is a prelab, an in-lab, and a post-lab, each of which took me at minimum 3 hours, and oftentimes far more, which varied in difficulty week to week. The material goes by fairly rapidly-if you fail to watch a recording, you will have a fair amount of catching up to do. The exams are mostly fair, but make sure to read EVERYTHING in the slides carefully, and don't assume anything is unimportant unless explicitly told so, because exams oftentimes reference bits of "trivia." For the updated CS curriculum, they are breaking the material covered in this class into multiple classes, which feels a lot more sane to me. Overall, the material is good, but the workload is too high for a 3 credit course.

Instructor 5.0
Enjoyability 2.0
Recommend 4.0
Difficulty 5.0
Hours/Week 15.0
Fall 2021
3.7
Average

Mark Floryan is the best teacher that I have ever had. It's obvious how passionate he is about CS and it shows when he lectures. He makes lectures fun and interesting to go to because he'll randomly go on tangents about very small things, but it's always fun. Despite Floryan, CS 2150 was THE hardest class I have ever taken in my entire life. It ate up my life and my sleep schedule. I could barely focus on the other classes that I had during the semester. You would see me in office hours every Sunday, Monday, Wednesday, and Thursday from 5-11. It really made me question my life choices and made me consider another major. This is the weeder class - those who pass are meant to be in CS. I had about six friends who changed their CS major to a minor because of this class. The amount of work is ridiculous for only a 3 credit class. However, Bloomfield and Floryan know that this class is hard and try their best to be "lenient". This course is changing because of the new curriculum, so I'm not sure how hard it will continue to be. Make friends in the class. Have study groups. GO. TO. LECTURES. I cannot stress that enough. Sometimes, Floryan would turn off the class recording to tell you something helpful for the labs to reward those who come to class. He will recognize you the more you come to class, and he WILL appreciate it and reward you. Despite the difficulty of 2150, it taught me so much. It was all worth it in the end, trust me. You will hate yourself, you'll hate the class, you'll hate the instructors, but it's a very rewarding experience to be done with it and have so much more knowledge in CS.

Instructor 5.0
Enjoyability 2.0
Recommend 4.0
Difficulty 5.0
Hours/Week 20.0
Fall 2021
2.0
Average

This class was the bane of my existence, it was like I was non-stop doing CS and could never catch a break. There is a pre-lab, in-lab, and post-lab due each week and as soon as one is due, the next assignment is assigned. This is definitely a change from 2110 and 1110, and the level of difficulty increases exponentially. I spent most of my week in office hours doing the labs because they're just so hard. The TAs are godsends though.

I'm assuming most people are taking this class because they have to, so instead of talking about how hard this class was (since I'm sure you've heard enough horror stories), I will provide some tips. Even though this class sucks, Floryan was a great professor and I would rather take his class over any other professor. Definitely get started on your labs early if you can (you can see assignments before they're officially assigned on gradescope!). The exams are on paper (taken during your lab period so choose your time slot wisely), and they don't really involve handcoding. The test questions are more math and conceptual based, and you can see past exams on the website just a heads up. Good luck.

#tCFfall2021

Instructor 4.0
Enjoyability 1.0
Recommend 1.0
Difficulty 5.0
Hours/Week 20.0
Fall 2020
4.7
Average

The class, now that it's online, was basically taught asynchronously. Everyone (across all sections/professors), watches the same prerecorded lectures. The synchronous time was used for Q&A, and after about the 3rd class it was clear those could be skipped at no cost. Great class overall - really gives a strong understanding of a variety of topics fundamental to CS. Would highly recommend taking the class before deciding whether or not CS is for you - it's perfect for that. Assignments weren't too hard, but there are some tricky ones so I recommend starting early on them. Some weeks I spent <5 hours on class, some I spent nearly 15. It varies by Lab, but you can find out the lab difficulty pretty easily.

Instructor 5.0
Enjoyability 4.0
Recommend 5.0
Difficulty 4.0
Hours/Week 10.0
Fall 2020
5.0
Average

Really fun and valuable class. Some of the structure didn't necessarily make sense (putting Assembly and IBCM in the middle of the course) but it was good to learn a lot of different material. I like how the labs incorporate the algorithms well. It was really nice not to have reports this semester so we could focus on the coding.

Hot take: the difficulty is overhyped. If your only exposure to programming is CS 1110 and CS 2110, then this class will be a massive jump in difficulty (still doable though!) If you're coming in with some additional experience, it won't be that bad.

Instructor 5.0
Enjoyability 5.0
Recommend 5.0
Difficulty 3.0
Hours/Week 6.0
Sponsored
Fall 2018
5.0
Average

A lot of people say that 2150 is a class that they really only like after they take it but I honestly have to disagree. 2150 was one of the most fun classes I have ever taken in my career as a CS student in the E School. The course has such a well structured curriculum and over the years, the Professors have been working hard to make it even better. Every lab and every assignment that you get has a purpose and with every pre, in, and postlab, you come out of them learning so much. I won't deny that this course is really challenging and will demand a lot of your time, but I also will say that it is definitely worth the time and effort. Floryan especially was one of my favorite Professors at this University. He makes these funny, corny jokes all the time and always keeps things lighthearted but at the same time, teaches the material really well. When he answers student's questions during class, you can really see how he tries so hard to help the material be as easy for the students to understand as possible. Great professor, great course, nothing bad to say about this class.

Instructor 5.0
Enjoyability 5.0
Recommend 5.0
Difficulty 4.0
Hours/Week 12.0
Fall 2018
4.7
Average

This course is by far one of my favorites at UVA and I can genuinely say that I have learned a lot. Floryan is an amazing professor and he's very funny. Each week we have a pre lab due on tuesday morning, in lab due tuesday night, and post lab due friday morning. There are no extensions and office hours go from sunday to thursday (excluding tuesday nights). Most of the lab work is in the pre lab and sometimes the in lab. Labs are always easier with groups to work on but still very doable without them. I always worked alone and went to at least half of the office hours each week and got an A on my labs. While the material can be difficult, you will learn a lot and will actually enjoy most of the labs. Please take this course with Floryan and enjoy at least one of your classes!

Instructor 5.0
Enjoyability 4.0
Recommend 5.0
Difficulty 4.0
Hours/Week 10.0
Fall 2018
4.7
Average

By far the most rewarding class I've taken at UVA. Bloomfield and Floryan are insanely intelligent and are both great lecturers. This class is a pretty heavy workload (pre, in, and postlab due every week) but this is the class where a lot of concepts in computer science truly began to click for me so it's definitely a worthwhile course.

Instructor 5.0
Enjoyability 4.0
Recommend 5.0
Difficulty 4.0
Hours/Week 10.0
Spring 2018
4.0
Average

Considering how much this class covers, Floryan does a great job keeping the class engaging and explaining the material (as long as you pay attention in class). What's really going to take up a lot of your time are the labs. There's a prelab, inlab, and postlab, and a lot of these can be very time-consuming especially when you don't have a solid understanding of what's going on. Please DO NOT procrastinate on them. Overall, you really have to manage your time, pay attention in class, and make sure you understand the material to do well. There's a nice curve at the end so don't stress too much about your grade, just putting in the effort should be enough.

Instructor 4.0
Enjoyability 3.0
Recommend 5.0
Difficulty 4.0
Hours/Week 24.0
Spring 2018
3.3
Average

A very informative course, it is so lauded simply due to the fact that this class has multiple personality disorder. This class covers many concepts that are really not directly related to data structures, and those topics are typically the harder ones to deal with. A large amount of the class is working with algorithms, and low level programming (processor level). This class is structured really poorly, but the professors seem to think that it is fine. Lab 5 is probably the hardest lab now (a new version was implemented in our semester) with huffman encoding being a close tie.

Instructor 4.0
Enjoyability 1.0
Recommend 5.0
Difficulty 4.0
Hours/Week 60.0
Sponsored