4.5
Quality2.9
Difficulty90%
Would Retake87
Reviews90%
Would Retake
87
Reviews
Rating DistributionOfficial
5
64
4
13
3
6
2
1
1
3
What Students Say
“This class is tedious and difficult”
COMPSCI201 - 2.0 rating“Brandon Fain was very helpful and understanding”
COMPSCI216 - 5.0 ratingClass Info
Online Classes
100%
Attendance Mandatory
48%
Textbook Required
0%
Grade Predictor
Your expected effort level
Predicted Grade
A+
Grade Distribution
Common Tags
Rating Trend
Declining
-0.43 avg changeRatings by Course
CS216
5.0
(2)COMPSCI216
5.0
(2)CS333
5.0
(1)CS290
4.8
(6)COMPSCI333
4.8
(4)Difficulty by Course
CS330
3.6
CS290
3.2
CS201
2.8
COMPSCI333
2.8
COMPSCI201
2.7
Reviews (87)
Graded by final project, HW, and labs/attendance (completion), grading is pretty lenient, one of the easier CS electives. Class material is extremely useful/relevant for use in the real world in data science. Homeworks can sometimes be difficult b/c technical portions aren't really covered in class, but go to OH and you should be fine
CS 216 is probably the easiest CS elective. This class was super interesting and the lectures were pretty engaging. The hw and labs were hands-on which I liked. Grades are really only weekly hw, lab completion, attendance, and the final project stuff. I would definitely recommend this class if you're looking for an easy and interesting CS elective!
Professor Fain is one of the best professors I've had at Duke. Great lectures, thoroughly explained and incredibly fair homework
Awesome professor. Even in an online class of 120+ people, he genuinely seems to care about his students. He explains everything clearly and simply. Such a g
ABSOLUTE GOAT, super nice and explains concepts clearly. I don't like that the cutoffs for an A is set at the end; it just leaves you with a bit of stress. Also we don't learn java in the beginning so if your only experience with code is CS101 (Python) you're already behind :( Overall, though, amazing professor and loved this class.
Genuinely a good guy--he did all of the lectures while KSM handled all of the Zoom logistics, and they were fantastic when paired with ola's pre-class lectures. The grading seemed less generous than ola in fall '20, but the course is fairly straightforward and it's not hard to do well. Incredibly helpful if you go to his office hours as well.
Slow talker, but explains concepts very clearly. Grading is generous, and the APTs are very fun. Fain is a nice guy and he cares. I would take another class of his.
You don't really need to attend class, just watch the lectures and do the work. Professor Fain was really understanding and the class environment is overall welcoming and non-intimidating.
Dr. Fain is a great professor. He's a good lecturer, and treats his students with respect. Learned a lot in his class. Homeworks and projects aren't too hard, but they are still interesting to work on. Would definitely recommend taking his classes.
I thought this class would be very easy, but the assignments honestly ended up taking a long time - make sure to start them early. Other than that, Fain is a really nice professor, who is clearly really passionate about the subject matter.
A real gem of a professor - material isn't too tough and he provides clear, relevant examples. Really understanding of outside circumstances and a lot of flexibility and creativity allowed in the final project.
Fain is the goat, probably the best CS prof I've had at Duke. Lectures are prepared extremely well, he's very articulate/well-spoken, & answers questions really well during class. Very fair grading policy and he's pretty accommodating with deadlines and stuff. Also has a great sense of humor that you can detect if you pay attention during lectures.
He's the best professor I have had so far. He explains the material very well. The lectures and presentation slides are clear and organized. He makes very complicated topics seem easy. I want to take all my courses from him.
Easy grader and great teacher. The majority of your grade is based off of projects and homeworks.
Good teacher in general. He knows what he is talking about and has clear expectations. However, he is very boring and it's impossible to listen to him.
I loved Professor Fain's lectures and I found his explanations to be really understandable as he often uses real world examples to supplement the topics. Sure, rewatching lectures can get boring but he somehow makes it tolerable. Respect
Professor Fain was very sweet and accommodating, just had very dry lectures that were hard to pay attention to. You could probably learn everything from the textbook and the class recordings, but participation matters in class so you'll end up having to go to lectures anyways.
This man doesn't miss. He was able to explain every concept so clearly that I was basically never confused at any point in this class.
Super fun class if you enjoy coding and problem solving. Not very hard, but a great challenge to make it all enjoyable and intellectually stimulating. He's also a fantastic lecturer
Enjoyable material but Professor Fain is a little boring. He seems really interested and passionate about the material he is teaching, especially the math parts of it, but I almost fell asleep like 5 times. Discussion is also pretty boring.
One of the most competent professors you'll meet, when it comes to running a class with 300 students. It often feels impersonal, but if you pay attention to policies, you can have all the help you need. Lectures can be dry, but they're so huge and accessible outside class that you can learn in whatever environment you need. Medium-high amount of HW
Very knowledgeable and offers a lot of options for you to demonstrate your understanding. Just beware of the class having at least one assignment active at any given time (projects, APTs, prepping for APT quizzes, mini exams); all very manageable but you don't want to miss deadlines
Prof. Fain is really genuine and kind. While teaching a topic he's clearly passionate about, he emphasizes his own humanity and sees his students holistically. He inspires us by being very reassuring and reminding us that grades aren't everything and struggling is important to learning. His lectures are clear and thorough, but hard to focus during.
dry boring lectures and lots of work. however, he does explain topics clearly if you can muster up the energy to stay focused.
Fain is very genuine, and he knows a lot about compsci, but his lectures are very boring and hard to sit through. I learned a lot of the topics through discussions. However, the class is pretty easy, and it is not difficult to get a lot of points on assignments.
Professor Fain is very knowledgeable and definitely tries to humanize his students in a lecture of almost 300 people. I found that I purchased the recommended "Zybook", but I never ended up using it and succeeded in the course. Maybe consider saving the money.
Good prof, but a little confusing at times. Don't be hesitant to take him for CS201.
Professor Fain is a really good lecturer and most concepts are explained clearly. I really liked how he incorporated so many low-stakes opportunities to get credit and test yourself as you learn the content. Overall, the class was great however I did hear that the other professors have slightly easier finals.
Very informative but plain lectures. He occasionally covers difficult concepts too quickly (e.g. some graph algorithms). Put in the effort to understand lectures, do coding PSets and projects, and you'll be fine. He did a multiple choice final exam and had retakes for all three mini-midterms. Don't buy the ZyBoook, his slides are good enough.
Professor Fain is the most caring professor I've had so far at Duke. He really understands that as students, we have three other classes, extracurriculars, etc. and he assigns a fair workload. The course was not too hard with test retakes built in. Lectures can get a bit boring, but he's very passionate about the material and an excellent teacher.
Nice guy, but has the most boring lectures ever. Midterms are take-home, online. Doesn't go in-depth at all. Just learn the material on your own. Go to office hours for project/apt answers. If you genuinely are interested in CS or are taking this class for interview prep, it's not that useful.
He was very nice and professional.
The best professor you could have for Compsci 201: Very methodological and clear during lectures. Content can be a little dense, but he posted recordings & he always review the previous lecture during his next one. Tests and assignments are reasonable as well. Just make sure to utilize office hours since debugging projects can be tough
Course has gotten a lot more difficult in recent semesters. Projects every other week. Coding problem sets every week and 2 timed quizzes. Weekly required discussions. 3 midterms are quite difficult but cheat sheet is allowed. Professor Fain is very knowledgeable and a good speaker but lectures are so hard to pay attention to
Fain really is goated for CS 201. Engaging lectures (also posted online), fair workload (just weekly APTs and semi-frequent projects projects), and a very generous test grading policy where you can literally fail every midterm and still get an A if you do well in the final. Also I think his jokes are funny, even if nobody else does >:(
Fain is god. Close your eyes and just take the course. 100% recommend. There is some work but with Fain it seems like no work.
Great teacher, good lecturer, funny. Class is graded a bit odd. Tests aren't that hard, almost exactly the same as the example ones he gives out. THIS IS NOT AN INTRO CS CLASS. Really not that hard as long as you have some CS/Java background. People who struggle generally don't and just start behind. Great class
I can't say enough about Dr. Fain. He made me really enjoy CS and now probably going to add the major. By the end of the semester, I think everyone in the class had a connection with prof. fain. Generous, fair, challenging, and great. Hope to take all my classes with him, and you should too.
COMPSCI201 was great with professor Fain. Nothing really stands out to me about this course, but it was extremely fair and the grading is very clear and lenient. His lecture and discussion absence policy is great for a course with a lot students. Overall, very laid back, not super difficult, accessible TA team.
Very well organized course. His lectures were all great. If you just show up to class and pay attention you will learn enough to get an A. The homework isn't light, but pretty easy by Duke standards. Definitely reccomend this class.
Not a bad class. Prof. Fain's lectures were sometimes a bit boring, but that's largely just the fault of the content of the class. I also came in w/ background knowledge in ds/a, so that might skew opinion. Participation was "mandatory" in that you only had a small number of unexcused absences but many people skip and just fill the WoTos.
the lectures were somewhat boring but very informational. the grading overall is very fair and it's clear that he's on your side, as there are many remedial opportunities in case you slip up. You should have no problem doing well in this course as long as you engage with the content. I would definitely take CS201 with Dr. Fain.
Prof Fain truly cares about his students and provides many opportunities to boost your grade through projects, APTs, etc. The testing format is 3 midterms, each with a corresponding section on the exam that serves as a make-up or re-do if you do not like your grade on the previous exam. The exams are SUPER similar to the practice exams. Love Fain!
Don't buy the online zybook, its a waste of money. I never used it once. Be sure to give yourself at least 2-3 days on all projects, even if you are good at CS, as it's possible to get stuck. Otherwise, great teaching makes the class relatively easy.
If you've never coded in Java before, I would recomend spending some time before the class starts getting familiar with the basics using literally any online mini course type thing. Fain is very supportive, the grading is generous, and there's a lot of resources if you're struggling.
The class is well-structured and has a lot of opportunities to score well. Exam retakes are built into the grading system. Lectures are recorded which is a big advantage but discussion sections aren't productive.
Just have to put in the work. He definitely creates a fair rubric but a couple screw ups can tank your grade
This is my second class with Prof Fain and I'm currently taking it. I feel his lectures sound like they have been practiced several times. He speaks undisrupted without pause or even a simple "like" or "um". Also speaks in a very elevated way when it comes to word choice. Kinda hard to focus and listen to imo. Class seems fair, however.
Prior coding experience especially in Java makes a huge difference. Very different/harder than CS 101. Good lecturer and fair. Nice dude.
He's obviously really passionate and cares about CS, but he can be out of touch with students. One of the smartest guys ever though.
Loved the class. The lectures were super clear and interesting. Projects were pretty hard but fun, and not very time-consuming. If you actually show up to class and do the work, you'll have an amazing experience with Fain.
Professor Fain is such a nice guy. He is very smart but he makes you feel comfortable when you ask him questions, and his office hours are very helpful. His lectures are very clear and he really tries to make them engaging. Grading criterial is super clear and will drop your lowest grades on everything.
Professor Fain is an engaging and entertaining lecturer who teaches the class in a clear and fun manner. The concepts are all interesting, well as interesting as data structures and algorithms can be. APTs allow for low stress practice, and the exams are all fairly straightforward given you study properly.
Great introduction to Java and data structures and algorithms! It is a tough class, no doubt, especially if you don't have Java background, and there is a learning curve, but you learn many skills. His grading policy affords MANY opportunties to get maintain good grades (participation, discussion, projects, APTs) and your final is optional.
CS201 is interesting enough, but Fain is a monotone and boring lecturer.
Professor Fain is a very accommodating professor and an amazing lecturer. He tries to explain every concept very clearly and takes time to clear up doubts. He is very generous with extensions and partial credits. He makes sure that you don't have to read the textbook after listening to the lecture and/or going through his slides.
This class is tedious and difficult. The lectures focus on confusing abstract topics, but the tests are mainly about coding. The class does not teach how to code, but focuses on how to find the runtime complexity and memory of methods or code chunks. Exams are hard, you will need help on projects.
Fain was fairly helpful in teaching Data Structures and Algorithms. The lectures were somewhat boring, and there's always consistent assignments. A lot of how the course will go for you depends on your previous experience with coding. He's also like 5'3 lol
The lectures are very well explained and concise. Although sometimes he breezes through some topics he's generally a very great lecturer and teacher.
Offers no help to students through TAs so assignments are confusing (TAs are not given rubrics or keys so even TAs are confused). Yelled at us after a test one time (?). Incredibly condescending with a fast-paced curriculum that nobody could keep up with (40% average on final exam). Honestly the worst class I have ever taken, wouldn't take again.
Everything on the exams he covers in lectures, so the exams are fair, you just have to put in the work to understand the content. Go into the lectures having read some of the textbook on the topic of that day so that you are not struggling to understand what he's talking about in class. Start projects early. Great professor and super nice overall.
Brandon Fain was very helpful and understanding!
Fain was great! Most of the assignments was a build up towards a final group project, where you create/emulate an algorithmic system and present it to the class. This was graded pretty fairly. Lectures were mostly unrelated to the projects, and with no tests, you did not really have to listen to them. However, they were very interesting.
Every lecture is very well designed and looks at an interesting algorithmic system from cryptography to recommender systems to deep learning, and investigates their TECHNICAL and SOCIAL ISSUES. This class is interesting, not hard but also not easy, get a good group for final project and you will learn a ton from your project as well. Fain the GOAT.
I know the class is on algorithms, but Brandon Fain IS an algorithm. Like Professor Fain is such an NPC, perhaps the most advanced GPT we have seen. If you want to learn from GPT, then take a class with Professor Fain!
Taking 330 with Fain was a godsend, clear lectures that were understandable despite some content being challenging. He goes at a good pace and stops for questions people might have. Homeworks and exams graded pretty generously, make sure you understand material and homeworks and you'll be fine. Couldn't ask for a better 330 experience.
330 at Duke has a reputation for being needlessly difficult, where exam questions are made for students to pull novel, random answers out of thin air, and if you don't know a hyper-specific algorithm, you're out of luck. Not with Fain, he really cares about making sure what you see on tests is stuff you've seen before. Most reasonable 330 offering.
Brandon Fain is the GOAT
Very amazing professor !!!!!
Professor Fain always offers amazing lectures!
THEE GOATTT! If you need to take 330, you have to take it with Fain. Given what I had heard about the class, I was super nervous, but Fain teaches it in such a fair way. The class isn't curved like previous professors do, but the grading is a lot more manageable which makes a curve not really necessary. Also, Fain cares and wants to see you succeed
He is the best lecturer ever!!! He makes this hard algorithm class interesting and easy to understand.
Fain's policies make 330 much more accessible and his lectures are super clear and all livestreamed/recorded. Super grateful I took this class with him as the prof.
CS330 was made easier under Prof Fain. His tests repeated some homework/lecture problems and people generally did well (however, there's no curve). The grading policy is very forgiving (there's no need to take the final if you ddi well on midterms). His lectures are dry but very very clear. The course provides a lot of support for its students.
Great professor for a notorious class. If you take 330 take it with him! The tests are the same as the homework.
Fain inspired me to pursue CS! he is an amazing professor that cares deeply about his students
Professor Fain might be the best professor within the CS department. His lectures are so well-thought out and clear. I always found myself very engaged despite the material being difficult. 330 is a notoriously challenging class, yet Fain made the material far more interesting and enjoyable through fair course policies and grading.
I LOVE BRANDON FAIN! BOWDOIN PLEASE DON'T HIRE HIM SO HE STAYS AT DUKE!
Fain is the gem of the CS dept @ Duke - he consistently goes above and beyond. CS290 Applied ML was fantastic. Interesting assignments, very fair tests, and a well structured class. I'd sign up for almost any elective taught by Fain at this point - he is that good.
I have now taken CS330 and CS290 with Fain. He is one of the best professors in the CS department. He is a fair grader and gives you multiple opportunities to succeed. His new course on Applied Artificial Intelligence was very well taught and had multiple interesting projects!
This course is total slop. Brandon is not very knowledgeable and doesn't explain things that well. Lectures are really hard to get through. Exams are not that hard (but your success partially depends on the competence of the graders). Homework problems are mostly doable with the occasional "how would I ever come up with that" problem.
I was expecting a 200-level introductory course to be a little easier than this. Only take this if you're actually specifically interested in ML, and not just looking for any interesting elective.
He is an amazing professor
Fain is the BEST. He is clear, precise, and very accessible. Would take any class he teaches a million times over!!!!
The best lecturer. States everything so clearly and makes all content and class expectations crystal clear. 330 is tough material and I wouldn't have been able to understand it as deeply as I did without him.
Prof. Fain is a good lecturer and the course was interesting. Definitely harder/more work than i was expecting though.
Good lecturer for a class covering fairly complex topics. Participation fully optional and all lectures were recorded. Not easy, but you can get an A with some effort - class was graded entirely by 4 homework assignments (generous grading) and 4 unit quizzes with optional retakes.
Class Info
Online Classes
100%
Attendance Mandatory
48%
Textbook Required
0%
Grade Predictor
Your expected effort level
Predicted Grade
A+
Grade Distribution
Common Tags
Rating Trend
Declining
-0.43 avg changeRatings by Course
CS216
5.0
(2)COMPSCI216
5.0
(2)CS333
5.0
(1)CS290
4.8
(6)COMPSCI333
4.8
(4)Difficulty by Course
CS330
3.6
CS290
3.2
CS201
2.8
COMPSCI333
2.8
COMPSCI201
2.7