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
5.0 / 10
Organization
5.0 / 10
Time
0-5 hrs/week
Overall
6.7 / 10

Reviews

    Quarter Taken: Fall 2020 Online
    Grade: A

    Very useful class, but challenging

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    Not a bad class. The lectures were generally 90 mins (no break) and you needed to get notes from someone if you missed class. The exams were a mix of problems that were new (but not graded too harshly) and problems that we went over in class (usually without any changes).

    Quarter Taken: Spring 2022 In-Person
    Grade: C

    Lecture attendance is mandatory, the professor does not record or have any slides/notes that are posted. The professor's teaching style is sort of him just talking through the algorithms without too much other structure which was sometimes hard to follow.

    Quarter Taken: Spring 2022 In-Person
    Grade: N/A

    Prof Majid is a great teacher. I learned a lot from this class; this class teaches you how to crush leetcode problems
    However prof majid DOES NOT UPLOAD LECTURE NOTES, so if you miss lectures, you will have no idea what he covered that day (very sadge)

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    Sarrafzedeh's lectures were clear and he always made sure students understood the material during lecture. However, I wish that some his lecture material was available to students afterwards, as he does not follow Powerpoints or upload lecture recordings.

    Quarter Taken: Spring 2022 In-Person
    Grade: A

    Class attendance isn't required, but the exams practically make it mandatory.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Majid is a very disorganized lecturer. I learned everything myself from the textbook, which suffices to get a good grade.

    Quarter Taken: Fall 2022 In-Person
    Grade: B

    Worst part of the class was the questionable grading on the exams, and Majid rarely assigns +'s and -'s. Majid is overall a pretty good lecturer and takes his time to walk you through concepts thoroughly, but doesn't use slides and writes very minimal notes, none of which are posted.

    Quarter Taken: Fall 2022 In-Person
    Grade: A

    Extremely arrogant, bad at explaining, refuses to record material, wouldn't recommend

    Quarter Taken: Fall 2022 In-Person
    Grade: B-

    Although Professor Majid seems to care about his student and shows a lot of flexibility regarding deadlines throughout the quarter, his lectures do not have slides and recordings, and his notes in class are pretty ineligible. I ended up spending a lot of the time reading the textbook. Overall a tough class IMO.

Course

Instructor
Majid Sarrafzadeh
Previously taught
25W 24S 24W 23F 22F 22S 20F 19F 18F 17F 16F 16W 14F 13F 12F 11F 10F 08F 07F 06F 05F 04F 03F 02F 01F

Grading Information

  • No group projects

  • Attendance required

  • 1 midterm

  • Finals week final

  • 78% recommend the textbook