CS3150 Design and Analysis of Algorithms

This course focuses on the design and analysis of efficient algorithms. Techniques for analyzing algorithms in order to measure their efficiency are presented. Control structure abstractions, such as divide and conquer, greedy, dynamic programming, backtrack (branch and bound), and local search methods are studied. The theory of NP-completeness is presented along with current approaches to NP-hard problems.


CS3021 and MA2025

Lecture Hours


Lab Hours


Course Learning Outcomes

Upon completion of this course, students will be able to:

  • Demonstrate a familiarity with major computer algorithms and data structures.
  • Apply important design paradigms and methods of analysis.
  • Analyze the asymptotic performance of algorithms.
  • Understand the limits of polynomial time computing.