This course will cover the fundamental topics related to algorithm design and analysis, and discuss fundamental algorithmic paradigms, such as greedy algorithms, divide-and-conquer, dynamic programming, graph-related algorithms, and NP-completeness. The course is offered in a hybrid setting, where online lectures will be held via Zoom meetings and the evaluation will be through written homework assignments and in-person exams. In addition to online lectures, students will have access to a range of resources, including demo codes, visualizations, practice problems, and Piazza discussion. See the policies section for more information.


  • Course Format: Hybrid (online lectures, in-person exams)
  • Meeting Days: Tuesday/Thursday
  • Meeting Time: 03:30 pm - 05:40 pm (online lectures)
  • Location: Main Campus, College of Computing, Room 17 (in-person exams)
  • Discussion: Piazza
  • Homework Submission: Canvas
  • Announcements: Check this website and the Announcements section regularly for updates.
  • Contact: For course-related questions, Piazza is the best way of communication. For other enquiries or in emergencies, you can contact us via email. Please make sure to include the keyword CS3510 in the email subject.