2025-2026 Undergraduate Catalog 
    
    Jul 04, 2025  
2025-2026 Undergraduate Catalog
Add to Personal Catalog (opens a new window)

CS 442 - Algorithm Design and Analysis



5.0 Credits
Principles of design of efficient algorithms: recursion, divide and conquer, balancing, dynamic programming, greedy method, and data structure selection. Correctness and analysis of algorithms. Examples drawn from problems in sorting, searching, set manipulation, pattern-matching, graphs, matrices, polynomials, and integers.
Prerequisite Completion of CS 302 and CS 334 with a grade of 2.5 or higher or instructor permission.
Course-level Learning Objectives (CLOs)
Upon successful completion of this course, students will be able to:

  1. Translate word problems into computational problems.
  2. Determine an appropriate algorithm design paradigm for a new problem.
  3. Design an algorithm using a variety of algorithm-design paradigms (including greedy algorithms, divide and conquer, dynamic programming, flow modeling, and others).
  4. Prove an algorithm produces the correct answer.
  5. Reduce between a known problem and a new problem (for showing hardness or for reusing existing algorithms).
  6. Identify and cope with computational problems that are infeasible.
  7. Assess the implications of modeling decisions in the real world.


Course Typically Offered
Winter



Add to Personal Catalog (opens a new window)