This course is designed to convey an understanding of information structures in computer systems with the objective oriented approach using the C++ language. This course aims at developing techniques for the design and analysis of efficient algorithms. The students will learn how to construct the programs that are clear, complete and functional in precise manner. In this course, the students will learn the ways to formulate ideas into algorithms and refine algorithms into concrete programs that can be applied to practical problems. It treats structured problem solving, the process of data structuring and abstraction, analysis of algorithms, and the comparative study of algorithms as fundamental tools of program design.
The topics covered in this course include ADT(Abstract Data Types), OOP(Object Oriented Programming), complexity analysis of algorithms, recursion, dynamic storage management, searching, sorting, symbol tables, hashing and graph theory with applications, and common data structures. The common data structures covered in this course include stack, queue, list, tree and symbol table, etc.
This course is taught using the C++ languages and emphasizes an OOP approach to data structures. Each student should expect a considerable number of assignments, most of them are the programming assignments. Each student is required to attend the TA's discussion section class.