Course Objectives
Students who complete this class should be able to :
-  Demonstrate the ability to employ proper design methodologies for programming.
-  Design and implement a program incorporating various user-defined data types.
-  Design and implement a program incorporating data structures. 
-  Design and implement abstract data types.
-  Demonstrate the ability to use an abstract data type.
-  Describe the algorithm for, characteristics and performance of selected sorting, searching, and recursive algorithms.