This course introduces programming methods to solve problems. Topics for this course include the introduction to data structure such as linked list, stack, queue, tree, graph, sorting techniques and searching methods. Emphasis will be given on modular programming technique. This course also introduces algorithm time complexity as a measuring technique of an efficient algorithm. In addition, the time complexity algorithm as an efficient algorithm measurement technique will also be introduced.