Syllabus

EC6301         OBJECT ORIENTED PROGRAMMING AND DATA STRUCTURES

 

OBJECTIVES:

• To comprehend the fundamentals of object oriented programming, particularly in C++.

• To use object oriented programming to implement data structures.

• To introduce linear, non-linear data structures and their applications.

 

UNIT I             DATA ABSTRACTION & OVERLOADING

Overview of C++ – Structures – Class Scope and Accessing Class Members – Reference Variables – Initialization – Constructors – Destructors – Member Functions and Classes – Friend Function –Dynamic Memory Allocation – Static Class Members – Container Classes and Integrators – Proxy Classes – Overloading: Function overloading and Operator Overloading.

 

UNIT II            INHERITANCE & POLYMORPHISM

Base Classes and Derived Classes – Protected Members – Casting Class pointers and Member Functions – Overriding – Public, Protected and Private Inheritance – Constructors and Destructors in derived Classes – Implicit Derived – Class Object To Base – Class Object Conversion – Composition Vs. Inheritance – Virtual functions – This Pointer – Abstract Base Classes and Concrete Classes –

Virtual Destructors – Dynamic Binding.

 

UNIT III           LINEAR DATA STRUCTURES

Abstract Data Types (ADTs) – List ADT – array-based implementation – linked list implementation – singly linked lists –Polynomial Manipulation - Stack ADT – Queue ADT - Evaluating arithmetic

Expressions

 

UNIT IV           NON-LINEAR DATA STRUCTURES

Trees – Binary Trees – Binary tree representation and traversals – Application of trees: Set representation and Union-Find operations – Graph and its representations – Graph Traversals – Representation of Graphs – Breadth-first search – Depth-first search - Connected components.

 

UNIT V            SORTING and SEARCHING

Sorting algorithms: Insertion sort - Quick sort - Merge sort - Searching: Linear search –Binary Search

 

OUTCOMES:

Upon completion of the course, students will be able to:

·         Explain the concepts of Object oriented programming.

·         Write simple applications using C++.

·         Discuss the different methods of organizing large amount of data.

 

TEXT BOOKS:

1.    Deitel and Deitel, “C++, How To Program”, Fifth Edition, Pearson Education, 2005.

2.    Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, Third Edition, Addison-Wesley, 2007.

 

REFERENCES:

1.    Bhushan Trivedi, “Programming with ANSI C++, A Step-By-Step approach”, Oxford University Press, 2010.

2.    Goodrich, Michael T., Roberto Tamassia, David Mount, “Data Structures and Algorithms in C++”, 7th Edition, Wiley. 2004.

3.    Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, "Introduction to Algorithms", Second Edition, McGraw Hill, 2002.

4.    Bjarne Stroustrup, “The C++ Programming Language”, 3rd Edition, Pearson Education, 2007.

5.    Ellis Horowitz, Sartaj Sahni and Dinesh Mehta, “Fundamentals of Data Structures in C++”, Galgotia Publications, 2007.