Data Structure is one of the kernels for computer programming techniques. This course introduces the fundamental programming techniques, including the data format (structure) and the algorithms. This course not only introduces the feasible algorithms for well-known problems but also finds the most efficient ones. This course focuses on the techniques of designing programs and the methodology of developing algorithms. The course contents include (1) Basic Concepts, (2) Arrays, (3) Stacks and Queues, (4) Linked Lists, (5) Trees, (6) Graphs, (7) Sorting, (8) Hashing, (9) Heap Structures, (10) Search Structures, and (11) File Structures.