“…In the taxonomy developed by Luu et al, 14 CS 374 covers algorithm strategies (greedy, divide-and-conquer, backtracking, transform and conquer (reductions), dynamic programming), some fundamental algorithms (graph traversal and shortest paths), basic algorithm analysis (mostly as review), basic automata and complexity theory (finite-state machines, regular languages, and NP-completeness), and some more advanced algorithms (graphs). Almost all graded work consists of open-ended algorithm design and proof questions, in weekly written homework assignments and exams; there is no graded programming component.…”