Skip to main content
Sponsored
CS 3120 Discrete Mathematics and Theory 2
Add to Schedule
Last taught: Fall 2025
13 Ratings
⏱ Hours/Week
Instructor
Enjoyability
Difficulty
Recommend
Reading
Writing
Groupwork
Other

Grade Distribution

Average GPA
Students Measured

13 Reviews

Add Review
Spring 2024
3.0
Average

I showed my therapist his face and he said he looks like a chomo. Needless to say I wouldn't be surprised. Pickiest grader! And on top of that He TOOK AWAY POINTS FROM MY REGRADE REQUEST.

I emailed him about needing help and he ghosted me. Such an asshole. He always talks down to you!!!

I genuinely loved the material the class is extremely interesting and tbh its very easy but he just sucks.

Instructor 1.0
Enjoyability 4.0
Recommend 4.0
Difficulty 5.0
Hours/Week 10.0
Fall 2024
3.3
Average

Professor is a charismatic lecture which helps with the material which is inherently dry. Floryan has a great attitude about things and seemed to be a pretty fair, impartial professor. The only thing I didn't like about this class was how much tests made up the percentage of our grade in this class, as the tests were pretty hard to do well on. In the end, my success came from heavily studying the textbook concepts, since they built off what was in lecture in a bit more refined detail needed for acing the exams.

Instructor 4.0
Enjoyability 3.0
Recommend 3.0
Difficulty 4.0
Hours/Week 5.0
Fall 2024
2.3
Average

Pros:
Floryan is genuinely a great professor and lecturer and I am glad I got to take a course with him.

Cons: Literally everything else. This class has 75 percent of your grade being determined by quizzes and it’s absolutely nuts. Mind you these are not easy quizzes, and as a side note 40 percent of them are T/F! Each quiz goes way beyond the difficulty of what’s taught in lecture, so my number one advice is READ AND MEMORIZE THE TEXTBOOK, it is the best resource you have by far!

Furthermore one quiz contained a problem we saw for 15 minutes in lecture one day, and so anyone who skips class must’ve missed the entire back page because I struggled having gone to class.

On top of all this, the PA’s are graded extremely harshly and if you do not go to OH you will get points off for sure. If you think this is a class you can take a day off in then you will be badly mistaken. I have NEVER in my life been so happy to pass a class just so I don’t have to take it anymore. This was the source of 99 percent of my stress and worry this semester. Floryan you absolutely rock and I loved you as a professor but oh my gosh this grading policy has got to change.

Instructor 5.0
Enjoyability 1.0
Recommend 1.0
Difficulty 5.0
Hours/Week 12.0
Fall 2024
5.0
Average

TLDR: Great class, great professor, but lazy students will feel wrath. Unfortunately, most UVA CS students are incredibly lazy.

Professor: I believe Floryan is one of the best professors in the Computer Science department. He is able to break down complex topics in DMT2 into digestible portions while answering questions precisely. He is clearly knowledgeable about this content and is open, kind, and available for students (and stuffed animals).

Coursework: DMT2 covers what different forms of computers can efficiently compute. You start by learning proof methodologies and some basic set theory. (Along the way, you learn about different types of infinity! This was very interesting.) Afterward, you learn about three models of computation (deterministic finite automata, pushdown automata, and Turing Machines) and what they can/cannot compute. (Another key insight: there are problems no computer can solve at all, and there are problems no computer can solve efficiently. These ideas are philosophically profound). Lastly, you learn about complexity theory and how certain problems/solutions relate to each other. If you are a computer science student who is genuinely passionate about the field, this class is built for you to grow your mind and thinking habits. If you're here to scrape by, this class will be extremely painful. That's on you.

Difficulty/How to Win: DMT2 is challenging, but you already know that coming in. Homeworks are easier than DSA2, but quizzes are harder (compensated with roundups -- see below). Take advantage of Floryan's availability and go to lectures. This class has a notoriously low attendance rate, but those who attend lectures almost ubiquitously have better outcomes because Floryan literally *gives away* solutions for those who attend class. Find smart people to do homework with (thanks Nico!), but understand each solution because methodologies appear on quizzes. Ask questions. Take notes (paper/pencil recommended). I received an A in this course pretty comfortably, despite having no prior experience with the content, proofs, or mathematics. You simply need to be diligent.

Grade Breakdown:

60% - 5 module quizzes that cover: 1) proofs and cardinality, 2) regular languages/DFAs/NFAs, 3) context-free grammars/PDAs, 4) Turing Machines and decidability/recognizability, 5) complexity theory and reductions. If you review previous quizzes, go to lectures, and strive to have a non-superficial understanding of the content, these quizzes are not too hard. Retakes are available for quizzes 1 through 4, and Floryan takes the higher of the two attempts. Floryan also rounds any quiz grade above 90% up to 100%, which is great.

15% - Cumulative final exam quiz. It's hard. Unlike the module quizzes, you cannot reasonably study for this in conjunction with other exams. I built my strategy throughout this semester expecting to take a hit on this final. I suggest you do the same.

25% - Homeworks. Consists of six problem sets (proof-based) and one programming assignment (Java). Pretty straightforward if you understand the content.

Floryan will curve as he sees fit (1% linear adjustment this semester). His turnaround for final grades was 48 hours, which is difficult in a 120-person*6 quizzes = 720 items to grade. I think his compromise was reasonable. Others wished for more.

Last note: Floryan is mildly susceptible to bribery from stuffed animal leopards. Use this knowledge with caution.

Instructor 5.0
Enjoyability 5.0
Recommend 5.0
Difficulty 4.0
Hours/Week 6.0
Fall 2024
2.3
Average

Pros: Floryan is a nice guy outside of his class and in his actual lectures he gets the point across pretty well most of the time. In terms of teaching quality, he's one of the better professors out there. Also, the TA's during office hours are helpful for understanding the homeworks.

Cons: There is literally no reason that 75% of the grade in the class should be those quizzes. Further, the quizzes are not friendly, and are concerningly deceptive in the way they ask the questions. Also, the grading on them is pretty harsh. This semester, my opinion of Floryan started out pretty solid, but declined throughout the semester. The end wasn't particularly great in my opinion. We had two exam sections that were a week apart, and I did the first one. Turns out, they refused to release the results of the first exam until the second exam was graded (keep in mind the second session was the last day of finals). Because of that decision, they didn't let us to regrades on the retakes or the final. When I looked at my final, there were so many mistakes (not just in the grading itself, but how the points were assigned on the rubric). For example, on many questions where I should have gotten at least some partial credit, I was deducted full points. Floryan said he would curve to account for the issues in grading, but gave only 1% curve, which has to be some of the worst copium I have heard from a grading team to get out of doing regrades I've heard since coming to UVA.

TLDR: Floryan's a good guy, but his class structure isn't so good. He gets the material across, but your grade in the class won't reflect how much you know automata theory, turing machines, and complexity classes.

Instructor 4.0
Enjoyability 1.0
Recommend 2.0
Difficulty 4.0
Hours/Week 20.0
Sponsored
Fall 2024
1.7
Average

Pros:
Floryan is a cool guy and fun to talk to one-on-one
The material is somewhat interesting and (in my opinion) easier to wrap your head around compared to CSO & CSO2
Floryan himself is a pretty decent teacher and his slides are good resources
Every homework has a 10-day extension you can easily abuse

Cons:
75% of your grade is exams, each worth 15% (WTF???? For a CS class?? why??)
One actual programming assignment, the rest of the homeworks are all proof-based
These exams are AWFUL. They make DSA2 quizzes look easy. They almost feel like they're based less on understanding the material, and more on your ability to understand the terrible wording of every question (seriously, I saw more uses of double negatives in these exams than any English class I've ever taken. Why make a class focused on proving the 100% correctness of algorithms if every single question is just going to revolve around the word 'might' and not the actual algorithm itself?)

This class sucks. Your grade will almost certainly be way below what you feel like your actual understanding of the material is. I have no idea why it's like this. No CS class should have 75% of your grade be dictated by exams, and especially THESE exams. They're written like they're actively trying to make you misunderstand the premise of each question. This class feels like it's supposed to be a weed-out class but it's essentially the last required core CS class you need to take. It's almost designed for you to fail.

Instructor 3.0
Enjoyability 1.0
Recommend 1.0
Difficulty 5.0
Hours/Week 7.0
Fall 2023
4.3
Average

Floryan is a very interesting person and makes his lecture fun and more engaging that traditional lectures. Most of the homeworks (except 1 programming assignment) consist of problem sets similar to problem sets from DSA2 in terms of formatting. I'd say most of the homeworks are overall pretty simple enough if you keep up with the lecture, and the TAs grade leniently if you are able to convey your idea and know what you're talking about. In terms of quizzes, I'd say you'll do fine if you study for them. This semester, he made it so that if you score above a 90 (strictly above), then he rounds it to a 100. But it's still important to understand every since there will be a cumulative final in the end of the semester.

#tCFF23

Instructor 5.0
Enjoyability 4.0
Recommend 4.0
Difficulty 3.0
Hours/Week 7.0
Spring 2024
3.0
Average

One of the hardest CS class I've taken so far (though I'm yet to take CSO2). You will have to dedicate time to studying for quizzes and have a solid homework group(!!!) to make it through, and if you want to actually do well, you'll also need to read the textbook, go over every single homework problem in-depth yourself, and go to OH. Or just study REALLY hard for the final, since it could determine 75% of your grade if you take/retake every single quiz.
The sole reason I did well in this class was my semester got screwed over by medical issues and I got to take the final a week late (Floryan was definitely the most merciful of all my professors). I did nothing but study for 3 days straight and was able to go from a C- to a B- because of the crazy weighting. Then the only curve I've ever seen as a CS major brought me to a B. So you could also take the illness route...?

#tCFS24

Instructor 5.0
Enjoyability 2.0
Recommend 2.0
Difficulty 5.0
Hours/Week 6.0
Spring 2024
2.0
Average

This class is probably the worst CS class I have taken here. It honestly makes CSO1 & 2 seem like cakewalks. I think that concepts were interesting and definitely useful if you want to go into academia or just better understand computing fundamentals, but this class sucks. The grade breakdown is unheard of, with 75% being tests which Floryan will not give you the whole hour and fifteen for (he cuts it at the hour exactly), and what's more is that there is almost no opportunity to show your learning unless you've: a) read the fucking textbook AND b) done all of the homework set by yourself (which is like why even let them be group homeworks if you need to redo them yourself just to pass the exams) AND c) rewatch every lecture.
The exams are graded like Floryan and the TAs are allergic to giving partial credit, and on top of that, the practice quizzes from the previous semester were so Mickey Mouse that it wasn't even really worth doing them. I was able to complete the previous semester quizzes in roughly a half hour and consistently get every question right, and then the quizzes we got were just insanely hard. Overall, this class sucks, Floryan's grading policies are terrible, and I would never take a class with him again.

TLDR: Course is a masterclass in getting fucked over by pedantic graders for the most minor shit on topics that most people with CS degrees will never ever ever need to care about.

Instructor 3.0
Enjoyability 2.0
Recommend 1.0
Difficulty 5.0
Hours/Week 10.0
Spring 2024
1.7
Average

This course was actual torture

Hands down one of the worst courses I've taken at UVA. Floryan is a fantastic professor, and really puts time and effort into teaching students and allowing us to digest the topics. But the course is structured so that 75% of your grade is from closed-book quizzes (60% quizzes, 15% final), and the other 25% is on homework. Floryan and the TAs will waste no time exploiting the slightest mistake or error, and penalizing you drastically for it. The quizzes are graded so harshly that it is almost impossible to pass without fully mastering 100% of all concepts. And for a class that has almost no basis in real jobs or computer science, and is only a pre-requisite to ONE course, this course is way too harsh and definitely not worth it. If this course were not mandatory, I would have never dreamed of taking this course.

TLDR; If this type of work is what you're into, then you will have a good time. Otherwise, if you are an average CS student, this course is annoying as hell. You will pull your hair out when you get your quizzes back and realize your grade has dropped 30 points because you forgot to include an edge case, or a TA graded improperly, or "you didn't explain your proof well enough"

Instructor 3.0
Enjoyability 1.0
Recommend 1.0
Difficulty 5.0
Hours/Week 5.0
Sponsored