Basic structure for data representation – Data definition languages; Abstraction; Data types; Information; Records; Arrays; Strings and String processing; Linked list and Pointers, Nodes, Stack; heap allocation; Queues; Binary Trees; Directed graphs, Object Oriented Paradigm; Sorting, Searching, Algorithm design techniques – divide-and conquer, dynamic programming, greedy algorithm, amortized analysis.