This course is designed to teach efficient use of data structures and how to design an algorithm to solve a practical problem. Students will learn the logical relations between data structures associated the real problem and its physical representation. Topics include algorithms and algorithm efficiency analysis, data organization and the applications. Practical use of the arrays, stacks, queues, single and double liked lists, trees, graphs, and heaps will be covered in depth. The class based data models with OOB design concept will also be introduced.