Course Information


CSC 1700: Analysis of Algorithms

Credits: 3 Level: undergraduate


Description:

Efficiency classifications and mathematical analysis of recursive and nonrecursive algorithms. Major algorithm design techniques: brute force, divide-and-conquer, decrease-and-conquer, transform-and-conquer, space and time tradeoffs, greedy approach, dynamic programming, backtracking and branch-and-bound. Introduction to NP-completeness, approximation algorithms. Applications to a wide variety of computational problems: sorting, searching, string processing, graphs, arithmetic, linear algebra.

Course Outcomes:
  • Establish an understanding of the fundamental techniques for the design and analysis of algorithms.

  • Establish an understanding of efficiency classifications and mathematical analysis of recursive and nonrecursive algorithms.

  • Apply analysis techniques to important problems from various areas of computing, including sorting, searching, string processing, graphs, and arithmetic.

Prerequisites:

CSC 1052 and CSC 1300