Prerequisite: Instructor's permission
Introduction to problem solving with computers using a modern language such as Java or C/C++. Introduction to simple data structures, dynamic aspects of operations on data, analysis of algorithms. Creation and manipulation of data structures: arrays, lists, stacks, queues, trees, graphs, hash tables. Data structures and algorithms for - sorting and searching, breadth fist and depth first searches, Greedy Algorithms. Formal models of computation, time and space complexity; Theory of P & NP.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein (2003) Introduction to Algorithms and Java, 2nd edition, McGraw-Hill.
- G. L. Heileman (2002) Data Structures Algorithms and Object Oriented Programming, Tata Mcgraw Hill.
- Alfred V. Aho, John E. Hopcroft and Jeffrey Ullman (1983) Data Structures and Algorithms, Pearson Education India.
- Michael T. Goodrich, David Mount and Roberto Tamassia (2003) Data Structures and Algorithms in C++, John Wiley & Son..