Introduction to Algorithms and Complexity

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: course 32, Mathematics 61. Designed for junior/senior Computer Science majors. Introduction to design and analysis of algorithms. Design techniques: divide-and-conquer, greedy method, dynamic programming; selection of prototypical algorithms; choice of data structures and representations; complexity measures: time, space, upper, lower bounds, asymptotic complexity; NP-completeness. Letter grading.

Review Summary

Clarity
8.3 / 10
Organization
6.7 / 10
Time
5-10 hrs/week
Overall
8.3 / 10

Reviews

    Quarter Taken: Summer 2023 Online
    Grade: A

    This teacher was from USC and had a different exam style. There were 4 topics (Dynamic Programming, Greedy, NP, etc). As long as you passed the 4 topics at the any exam slot (given each week), you'd pass. There was one DP programming assignment project. There were HW on each topic, graded on effort. Overall, wasn't too hard as long as you tried and there was a lot of leniency.

    Quarter Taken: Summer 2023 Online
    Grade: A

    Matthew's class was absolutely amazing. It covered four topics, each with its own set of materials - a reading, an exam, and homework. The dynamic programming section was a bit special, as it included an extra programming task. The cool part? Everything was graded on a pass/no pass basis. The readings, taken from Zybooks, were a breeze to get through. And the homework? It was all about the effort. Even if you got things wrong, as long as you showed you tried, you just had to reflect on it.

    The exams were a weekly thing, and you got about five shots at each topic. Nail all four exams, and boom, you've got an A. Three gets you a C, and anything less lands you an F. What's great is the feedback you get after each exam. It really helps you grasp the material better for the next round.

    Passing all four exams set you up for at least an A. every missed assignment is half a letter grade drop so you might drop to an A- or B+, but it's all manageable. Some might think it's a tough system, but it's actually genius. It's all about putting in the effort. As long as you're not trying to skate by doing nothing, you're pretty much set for a good grade. The exams are fair, and if you ace all the topics, you can even skip the final. The final's just your last chance to pass any topics you might have struggled with earlier. You basically have 9 easy AF assignments and a multiple attempt final, what more could you wish for??

    Quarter Taken: Summer 2023 Online
    Grade: A+

    Absolutely Amazing! No actual finals, every unit gets tested independently and that really helps to learn well. If you passed all the tests, you get an A.

    Quarter Taken: Summer 2023 Online
    Grade: A+

    Professor Ferland is one of the best professors I have had at UCLA. He is a very good lecturer and has a great explanation for many of the complex algorithms we cover in CS180. His grading scheme is much different from the norm at UCLA but it is mastery based. There are multiple attempts for each of the 4 "exams" in the class.

Course

Instructor
Matthew Ferland
Previously taught
23Su

Grading Information

  • No group projects

  • Attendance not required

  • No midterms

  • No final

  • 50% recommend the textbook

Previous Grades

Grade distributions not available.