Your feedback has been sent to our team.
29 Ratings
Hours/Week
No grades found
— Students
Brunelle is a fantastic guy I just wish he would teach a more interesting class (not his fault that theoretical CS is not the most interesting thing). As for the class structure, get ready to do heavy group work. Every week you get a problem set to do with your group and then an individual quiz every other week-ish. If you watch/attend lecture and contribute to your group work its the easiest A in the CS department. If you don't do those things, expect to have to retake the class. Last thing, make sure you go to office hours for the problems sets, some of the TAs are fantastic.
Don't be afraid of this course. While the material is honestly very difficult and boring, the course is structured so that there is a lot of group work and the grading is generous. It seems as though the structure has changed since previous semesters. There is now a weekly problem sets (group work) and open-book, open-note quizzes (individual) throughout the semester. Studying the problem set is a good preparation for the problems on the quiz. Professor Brunelle is an excellent, very fair professor.
I'm reading through other student reviews from this semester and to be honest they are all valid in their own right. I was someone who had a nice TA and mediocre group. I tended to have to pick up the slack from one student who didn't really contribute much and it was pretty annoying, but it didn't necessarily change how much time I would have spent on the week because you need to learn all of the problems before the assessed meeting anyway. And although the week can be stressful at times, you always end up with a good grade if you understand the main concepts for the week. I surprisingly ended with an A after the final exam so I wouldn't be stressed b/c they let you have a cheat sheet which is super helpful and they also gave a lot of partial credit.
Day in and day out, the class wasn't too bad. Just about everything was group work and I had an amazing group and TA, which made things easy and manageable. However, tbh I am not sure I truly knew what was going on about 50% of the time, but with everything being group work, I still performed really well because a few people in the group did know what was going on. There was one cohort meeting, an assessed cohort meeting, and a write-up weekly that were all the same set of questions which was nice. The professors are fantastic guys. There is an individual final (that I failed miserably) but they offer a lot of practice and previews for it. Lastly, lecturers were an absolute waste of time imo, which is sad because I'd rather go to a lecture than watch a yt video. The class was no fun at all, but kind of informative so do with that what you will.
If you like socialism, take this class! Other people will be awarded for your accomplishments and hard work will be overlooked! No one cares how much work you put into this class, all that matters is how your god-complex TA thinks you'll do on the final because only some people will apparently be exempt from it! ONE day before the final, only some people were exempt from the exam. According to Marx, I mean Brunelle, only people who exceeded expectations and "were expected to get As on the final" got exempt. They also blamed having a lecture hall that was too small to fit the whole class...okay, then reserve another classroom. UVa is big enough. Those who got exempted were people who didn't put work in and rode off of other people's work. My cohort group had trouble relating material learned asynchronously on videos to the weekly cohort problems. They gave us an inch and expected us to go miles. The readings were not helpful, and going to lectures just confused me more. You're expected to watch about 10 videos weekly, these are old lectures that are not helpful whatsoever. In addition, you are supposed to meet with your cohort and "prep" for your assessed meeting with a TA and go over the problems and compare answers. A lotta work for a whole lotta nothing. I don't remember a single thing I learned in this class except "anything finite is computable", and that's the most basic concept ever. Never taking a Brunelle class again.
I saw a few reviews on here that had bad things to say, but I don't get it. The class was great and interesting. The videos let you learn at your own pace, and lectures/office hours are optional if you need the extra help. The hardest part is working with your cohort effectively, but the system helps people who are both strong and weak in the subject alike either by working on communication skills or learning from your peers. I honestly would not have done the course any other way, and it was a big relief having it not be stressful and mostly fun.
If you want to spend hours doing a problem set every week and have other group members do way less work and get a better grade than you, take this course! After carrying most of my group all semester, one of them (who got lower grades than me) got a final exam exemption. Extremely unfair that not only are the final exam exemptions not even based on course performance, but the lack of transparency was very dishonest. They never told us final exam exemptions were possible or how they would evaluate them (since it clearly isn't how well you do in the course.)
In general, half of the TAs give you free As and the other half are uptight, elitist, and will let you know they are better than you because they understand concepts you will never use in real life. You better hope you get the first or you will be ridiculed in your meeting every week. Bottom line, this course is challenging, and you will need to spend a lot of time understanding the content which builds on itself. The grading is extremely inconsistent, obscure, and the most frustrating part of this course if you don't get a d*ckhead TA. If you do, that will be the most frustrating part of the course.
P.S. The gpa average on here is inflated. Past classes didn't take a final.
Brunelle and Evans co-taught this class, and let me tell you, their structure and planning was awful. They did not have a single lecture, but instead taught us through old videos and lectures posted on the course website. Not only were the videos outdated and unhelpful, but I don't see why they couldn't have just had in-person lecture (we had a lecture hall and a scheduled time!). Also, we ended up with a terrible TA, Andrew. He is incredibly unfair with his grading and took pride in ridiculing us during every cohort meeting.... just drop the class if you get him. Oh and here's the worst part.. the day before the exam, Brunelle and Evans decided to announce that some students get exempt from the final! This was confusing and unfair to the students that still had to go take the exam despite performing just as well (if not better) than their exempt classmates.
Brunelle doesn't even have the slightest idea what he's doing with this class. Sure, he gets the material, but he does not know how to structure a course or accommodate to students. I really hope he gets reported to UVA for literally only making half the class take the final exam. Ridiculous!
Take this class if you don't care about learning anything, because you truly will not leave with a single piece of useful information
The instructor really disappoints me. The course is easy but extremely unfair. I am completely shocked by the notification 1 day before the final. I couldn't figure out why the professor would send the announcement at such a late date. In addition, throughout the course, I completely had no idea about what the syllabus is. The write-up assignments shifted frequently. From my friends, I know this instructor was Bloomfield's student. I could not imagine if UVa let him teach CS2150. He had no idea about how to run the course consistently. His behaviors really hurt me.
This class is primarily based on group work. There is a group assignment each week that is assessed by a TA is an oral exam format. And an individual write-up is assigned each week which draws 1 question from the group assignment. There is no individual assessment (quiz, exam) throughout the semester, BUT THERE IS A CUMULATIVE INDIVIDUAL FINAL AT THE END. MAKES NOOOOOO SENSE AT ALL!!! WE HAD GROUP WORK THIS WHOLE TIME AND DID NOT HAVE ANY EXPERIENCE PREPARING FOR A INDIVIDUAL ASSESSMENT AND THEY DONT TELL US HOW MUCH IT WEIGHS. STUPIDEST GRADING FORMAT I HAVE SEEN IN MY LIFE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Brunelle is an awesome professor who sincerely cares for his students. That being said, I felt this class was not about how smart I was, but rather about the situation that I was put in and how well adjusted you can get to the system that is placed. I took the online course, and the lectures were often long and confusing. I rarely understood all the materials from the videos, so I pretty much lived in Office hours. Brunelle often was there to help too, and he was very kind even when I was lost. Some of the TAs were pretty bad for this class though. I would go and they would have no idea how to explain a question, and if I went an hour later to ask another TA, they would explain the same thing but in the complete opposite way. And your cohort group matters A LOT. Mine was luckily full of super smart kids so I got through it. But some of my friends didn't get as lucky as me.
Brunelle was always talking to students and helping despite the lectures being async. The lectures are also really well made and are super helpful when working on problem sets. The course is well-designed so that every topic builds on the last. It's also really nice that this course counts for multiple CS reqs and teachs you to use LaTex. The content was not that enjoyable though although I found a few modules interesting.
Professor Brunelle is truly awesome as a teacher and as a person. He made fun video intros for each week's content to lessen the pain of the content itself. He actually got a UVA teaching award this semester, and I can see why. Great guy. The content of this class is tricky, and often took a lot of group discussion and office hour visits to reach a conclusion, but I see how it's good to know this material for future classes. Your grade in this class is based completely on weekly assessed meetings and reports. Each meeting you'll get 0-3 points and each report 0-2. The trick is that there are 6-7 questions each week that take a fair amount of time to comprehend at least for me, and during your meeting you'll be called on to present one of them at random. I rehearsed the day before my meeting for a few hours going over all of the questions so I could do well in the assessed meetings. Even with that, it was still pretty stressful to try to have a good enough answer to get those 3 points each week and then the lab reports were a nuisance to write. The last week's assignment was to come up with your own fun mini project and I enjoyed that. Overall, Brunelle is awesome but the class can be kind of hard!
Took this with Nathan Brunelle and David Evans during Fall 2020. The content can get really abstract and difficult, but TAs were available almost around the clock to help out with problem sets. Lectures were all asynchronous. This course was made a lot easier by the COVID cohort system—you never had to work on a problem set alone, and rather than being graded for correctness, you were only responsible for explaining the logic of a solution to a TA.
There are significant textbook readings, but I managed to get away without doing them most of the time.
That said, be prepared to watch your lectures, and occasionally do your reading. During assessed cohort meetings, you may be called on to explain any question—so make sure you understand them all, at least at a high level.
I had the honor of taking this class along with 3 other upper level CS classes and during COVID hybrid phenomenon, so it was honestly a little more stressful than usual. I'd say those who took Tychonievich's version of discrete had a slight easier transition period in comparison to those who took the ~other~ version with lean (?). It evens out pretty quick though. There are usually two components to the exercises - a programming portion and a written portion. The programming portion could be done in Java or Python and can be a little confusing if you don't know what you're trying to do. Generally speaking, I didn't have too much trouble with it once I figured out what the instructions were trying to convey. On the other hand, the written portion can be a lot more frustrating. For the most part, the slides give you an idea of what you're supposed to write about. There's diagrams and whatnot about how to get from one idea to another, but constructing a formal proof can be difficult. TAs can be your best friend, but they also sometimes don't really know what's going on. There were a few times where I asked a specific question and a TA gave a really vague non-answer, but they'll usually hint at the right answer if they know. If you can, I'd go to multiple TAs to double-check, post on Piazza, or ask Brunelle. Even if you feel like you don't know what you're doing - don't worry, no one else does either. You'll probably still end up with an A on the exam. Our final (and second exam I think) were both oral and optional. Grading is pretty quick at the beginning, then slows down significantly. I was pretty confident with my grade given the consistency and within the last few days of the course it dropped down half a letter. It's a little frustrating to not know what you don't know, but in all honesty, I also started slacking once we went online so maybe it's just me.
This was a great course! If you're more into the product-driven software dev side of CS, it may not be for you, but it covers a lot of interesting topics and Brunelle does a great job teaching it. He was super helpful in adapting to the online conditions and was really understanding of individual circumstances throughout the semester. The homework is difficult so office hours are essential. Each week has some written proofs and programming assignments, as well as weekly quizzes, but they're manageable since you can work with others.
Professor Brunelle is a great teacher that genuinely cares about his students. I took this class during the quarantine and he was by far the most accommodating out of all my teachers. The material can be dry at times and it was pretty overwhelming for me at first, but Professor Brunelle's approach allows for constant growth in your skill and if constant effort is put in, the class is very doable. This class is required for CS majors, but if you have an option for a teacher, I definitely recommend taking it with Brunelle.
The average hours per week stat on this page is broken, and I spent about 6-8 hours per week on this course. The course material was quite interesting for me, but I think I'm in the minority. The exercises are definitely the most difficult aspect of the class, and I found myself going to office hours quite frequently. My best advice is to attend lectures and start on the exercises early. You don't need to immediately work on them actively, but as soon as they are released, READ the exercises. The more time you are able to think about the problems, the better. If you can get through the exercises, then the quizzes and exams will not be terribly difficult for you. Brunelle is a great professor, and he was very accommodating for students, especially in light of the COVID pandemic.
Brunelle is an amazing professor who really enjoys interacting with his students. I think the material in this class started out a bit slow, but it really picked up. The second half of the course that covered Turing Machines and P vs. NP was quite fascinating, and I think this class really helped introduce me to what upper-level CS is really like (CS is not just about how to write code). Workload wasn't terrible, it just involves a lot of proof writing, which is an useful but sometimes tedious skill.
I have to agree with pretty much every review. Prof. Brunelle is genuinely a great guy, super nice, and super helpful. That being said, I didn't enjoy the course all that much. The exercises are really difficult and while I did kind of understand the ways he wanted us to think about them as we did more, I (and pretty much everyone else) was always in office hours AT LEAST once per exercise. It's a pain, but my recommendation would be to do them all in office hours so you can get an idea of where to start and then at least have the TAs for guidance. Coding portions typically weren't that bad, save for the FSA ones near the end. At least relative to these other reviews, grading happened a lot quicker this semester but it's still slow overall. Most of the TAs were so nice and helpful, but one or two would often be late to office hours and/or would completely steer you in the wrong direction so it's a good idea to check your hw with multiple TAs. We only had the first exam (thanks corona) and that wasn't that bad - he gives a helpful review session.
Professor Brunelle is one of the best professors in the CS department and he is the guy you should take this class with if you have to. With that being said, I was uninterested with the content covered in the class, being more of a software engineer by heart rather than a computer scientist. There were a few coding components on roughly half of the homeworks that were enjoyable (and in my opinion easy, I'm not sure what the general consensus is ), whereas the written portions were pretty hard. I did end up learning a lot because of the homeworks though, so the assignments aren't needlessly difficult, they're just challenging. Other than not being interested in the course content, my biggest complaint by far is how damn slow the grading is in this class. It's the primary reason I'm not giving a review of at least 4. I'm not sure if it's Brunelle's fault, the TAs fault, or simply an issue of understaffing, but there is no excuse for taking two months to return each of the homeworks. Without timely feedback, it's difficult to gauge where you stand in the class or if you are answering problems with enough detail. Our final exam was yesterday and 4/8 of our homework assignments still haven't been graded. I'm honestly not sure how they are possibly going to grade four homeworks and the final exam in less than a week when they were only able to grade the first four in three months, especially since the last three homeworks didn't have a programming component, which I imagine take less time to grade. I probably would have enjoyed this class more if there was decent feedback, which will hopefully not be in issue in future semesters.
Brunelle is probably my favorite professor in the CS department. He's a super cool guy, and can explain the concepts really well in a variety of different ways. This class was pretty much identical to 4102 with either him or Hott, in terms of structure and logistics. However, if you are looking for an elective to take I wouldn't recommend this as it is fairly difficult. The main part of the class is the homework sets, which you get to work on in a group. They vary in difficulty, but most are at least pretty challenging to solve. You definitely need to go to office hours for the majority of them in order to make sure your doing things right. There is one midterm and a final, which takes up the rest of your grade. Both of these were not that bad and certainly fair, with the final probably being the easier of the two. Brunelle also gives you a chance to earn a lot of extra credit, up to 10%. My main gripe of the course was the lack of timely grading, as of right now we only have half of our homework grades (the day after the final). I'm not sure if this was due to an understaffed TA crew or something, but it was pretty annoying I can't lie. Other than that I'd say the class isn't the most interesting material due to the nature of this stuff, but Brunelle does a pretty good job at trying to make things more interesting and keep the class engaged.
TLDR: Don't take if BACS, if BSCS it's manageable but expect it to take up a decent amount of your time.
Brunelle is one of the best lecturers I have ever had, and he also genuinely cares for his students and wants us to learn and succeed. I took this class as a BACS major despite warnings from BSCS friends who advised against it. Honestly? I'm glad I took CS 3102, and I do feel that my CS education is in some way more "complete" because of it. I probably wouldn't have gone out of my way to read up on this stuff on my own. This is not to say that I didn't feel the growing pains from the revamping of the course; I definitely would have appreciated much sooner feedback on homework assignments, and the later parts of the semester felt somewhat rushed compared to the first parts. The later concepts were also more difficult to grasp (resulting in much harder homework imo), so I did feel lost towards the end and didn't feel fully caught up until I was cramming last night for the final. That being said, I think Brunelle is a great professor to have to take Theory with if you're BSCS, and this version of the course will probably be better in future semesters. If you're BACS, I know the general advice is not to take the class unless you have to, but I think every CS major would get *something* out of this course, although it's up to you to decide whether that *something* is worth it.
Brunelle is a really good professor. This semester he reorganized the class, which is why I think this class turned out better this semester than previous semesters. I learned something in this class where my friends in other semesters felt they didn't. This class is DIFFICULT, which is what would be expected for theory. Do not take it as an "easy" elective or an elective at all. If you're in eschool, you have to take it and that sucks. My major complaint about this class is that he went really slowly on the review stuff in the first have before the midterm and definitely went way to quickly for Turing machines, grammars, and PDAs which are more difficult. First half is basically discrete math set review with some FSAs. The problem sets are hard to do without TA office hours. The grading for this possible is probably my biggest complaint. The home works weren't returned before the exams in which they covered. We took the final and still haven't gotten back half of our home works (some of which were due in February). He definitely needs to stop giving assignments until he can get the previous ones graded. Home works are also 60% of your grade which makes this particularly vexing.
This is THE worst class I have taken here at UVa. First off, it is poorly organized. The lecturer was super slow during the first half of the semester on the relatively easier stuff. He basically went through one chapter with all that time. After midterm he was going really fast for the remaining 5 chapters. Before you even get a basic understanding on the content you will realize that he's way far ahead. Office hours help a lot but there is a severe shortage of TAs. I went to quite a few OH sessions but spent most of my time waiting. Some TAs were occasionally absent for their assigned time slot with no prior notice or valid reasons. In short, if you are a BACS major, try YOUR BEST not to take this. If you are in BSCS, good luck.
Ok, so I will premise it by saying that Brunelle is a great lecturer and really knows what he is teaching. Theory cannot be that much fun in nature, but he really tries hard to make it interesting. However, this class was horrible in terms of difficulty and execution this particular semester. The day I am writing this review is the last class of this semester, and we only got HW 3, which was due 2months ago, back out of 7. I actually don't know what I have in the class. Everyone seems to be struggling to get the HWs done because of its difficulty. Office hour helps a lot, but always super crowded because not many people can do the hw on their own. These hws took longer than even some of the challenging 2150 labs like tree, and huffman, etc. If you are not in E-school, please avoid it. Don't make the same mistake I made this semester. Hope I get an A- above, but who knows?
Nate is one of Gabe Robin's grad students and he is awesome. Class has pretty difficult content but Nathan explains things pretty well, especially if you ask him a question during office hours. You're given a ton of problem sets at the beginning of the class and the exams are selected problems from there. Try to solve all of them and do them over time (as opposed to cramming them in the two weeks before each test like almost everyone did). This class will definitely make you a better problem solver.
Nathan is a pretty awesome guy. The course can get a bit tedious, but his lectures are very relaxed and he'll go over anything as many times as you need it.
My advice is to engage with the material outside of class as much as possible. It's much more abstract than any of the courses before it, and it takes a while to wrap your mind around it. Go to office hours/problem sessions; I think Theory can be a fun course if you spend enough time with it.
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.