UD Home
CIS Home
Search
Contact
Welcome Research Undergraduate Graduate Resources People

CISC 621: Algorithm Design and Analysis

Catalog Description:
Emphasis on developing expertise in the design and analysis of algorithms. Equal importance given to techniques and specific algorithms. Particular topics include advanced data structures, graph algorithms, disjoint set manipulation, sorting and selection, amortized analysis, NP-completeness, and matrix and polynomial multiplication.

Current Texts:
Introduction to Algorithms
Cormen, Leiserson, and Rivest
McGraw-Hill

Goals:
The fundamental methods for designing good algorithms in both theory and practice are studied, together with the methods for analyzing time and space demands of algorithms. Important algorithms of data access, graphs, and algebraic structures are studied. Computational complexity classes are introduced. Approximation methods and probabilistic methods for hard problems are considered.

Content:

  • Review of mathematical techniques for the analysis of algorithms.
  • Algorithm strategies: divide and conquer, balancing, dynamic programming
  • Sorting and order statistics: fast algorithms for sorting, for median
  • Stored data access: hashing, trees, balanced tree structures, dictionaries
  • Graph algorithms: path finding, shortest path, transitive closure
  • Fast fourier transform and its applications
  • Introduction to the complexity hierarchy: Nondeterministic models, the classes P and NP, NP completeness, the reduction of one problem to another, exponentially hard problems.

Required Background: CISC 220 (Data Structures), CISC 320 (Algorithms and Advanced Programming) and Math 215 (Discrete Mathematics).

Helpful Background: An undergraduate course on algorithms, and/or one on logic. A strong background in mathematics (analysis and algebra) is helpful but not assumed.



Department of Computer & Information Sciences
103 Smith Hall | Newark, DE 19716
- email webmaster -