This course provides an introduction to data structure and algorithms, types of data structures and programming principles. Student will learn abstract data type concepts using class and apply ADT concept in the implementation of data structures. Recursive function, algorithm efficiency, order of magnitude analysis and Big O notation will be discussed. Students will implement operations that can be applied to data structures using various sorting and searching techniques. Further, students will be exposed to linear data structures such as linked lists, stack and queue. Non-linear data structures such as tree and graphs will also be discussed. At the end of the course, students should be able to implement and apply the theory and concepts of data structure in the mini project which is conducted in group.