Objectives
When you finish this course you should:
    -  Describe implementation, behavior, and use of selected data structures.
    
 -   Describe the algorithm for, characteristics and performance of selected sorting and searching algorithms.
    
 -  Identify various algorithm design techniques
    
 -  Analyze algorithms for efficiency and correctness.
    
 -  Differentiate the classes P, NP and NP-Complete.
 
Updated 7/21