CSC 1700
Analysis of Algorithms
3 Credits Format: lecture 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.
Textbooks:
- Introduction to the Design and Analysis of Algorithms, 2nd Edition, Levitin, Addison Wesley
Objectives:
- 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.
Coordinator: Dr. Anany Levitin
Prerequisites: CSC 2053
Required For:
- Computer Science Major
- Computer Science Minor