CS 4104: Data and Algorithm Analysis
This course emphasizes the understanding of data structures and
algorithms from an analytical perspective rather than an
The concepts developed allow discussion of the efficiency of an
algorithm and the comparison of two or more algorithms with respect
to space and run-time requirements.
Analytical methods are used to describe theoretical bounds
as well as practical ones.
In general, this course addresses the constraints that affect
Having successfully completed this course, the student will be able to:
Apply algorithm analysis to the design, coding, and testing of
programs to determine important runtime characteristics of software;
Apply mathematical techniques such as recurrence relations to
determine the upper bounds for algorithms;
Apply the concepts of upper and lower bounds to recognize when an
algorithm is a good solution for a problem;
Abstract away details that hinder problem analysis and solution
Apply the fundamental concepts of NP-completeness and tractable
vs. intractable problems to distinguish tractable from intractable
Build upon the acquired foundation for further theoretical studies
in computer science.
Prerequisites: A grade of C or better required in CS3114. Also MATH 3134 or MATH 3034.