This course provides an introduction to algorithm designs with an emphasis on the fundamental algorithmic paradigms such as greedy algorithms, divide-and-conquer, dynamic programming, graph-related algorithms, and NP-completeness. The course format is in-class lectures and the evaluation will be through written homework assignments and exams. See the policies section for more information.


  • Course Format: In-person (lectures and exams)
  • Meeting Days: Tuesday/Thursday
  • Meeting Time: 03:30 pm - 05:40 pm
  • Location: Klaus Advanced Computing 2443
  • 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.