2
CS6301 PROGRAMMING AND DATA STRUCTURES II L T P C 3 0 0 3 OBJECTIVES: The student should be made to: Be familiar with the C++ concepts of abstraction, encapsulation, constructor, polymorphism, overloading and Inheritance. Learn advanced nonlinear data structures. Be exposed to graph algorithms Learn to apply Tree and Graph structures UNIT I OBJECT ORIENTED PROGRAMMING FUNDAMENTALS 9 C++ Programming features - Data Abstraction - Encapsulation - class - object - constructors   static members  constant members  member functions  pointers  references - Role of this pointer  Storage classes  function as arguments. UNIT II OBJECT ORIENTED PROGRAMMING CONCEPTS 9 String Handling  Copy Constructor - Polymorphism  compile time and run time polymorphisms  function overloading  operators overloading  dynamic memory allocation - Nested classes - Inheritance   virtual functions. UNIT III C++ PROGRAMMING ADVANCED FEATURES 9  Abstract class  Exception handling - Standard libraries - Generic Programming - templates   class template - function template   STL  containers  iterators  function adaptors   allocators -Parameterizing the class - File handling concepts. UNIT IV ADVANCED NON-LINEAR DATA STRUCTURES 9  AVL trees  B-Trees  Red-Black trees  Splay trees - Binomial Heaps   Fibonacci Heaps  DisjointSets   Amortized Analysis  accounting method  potential method  aggregate analysis. UNIT V GRAPHS 9 Representation of Graphs   Breadth-first search  Depth-first search  Topological sort   Minimum Spanning Trees   Kruskal and Prim algorithm  Shortest path algorithm   Dijkstra’s algorithm Bellman-Ford algorithm  Floyd - Warshall algorithm. TOTAL: 45 PERIODS OUTCOMES: At the end of the course, the student should be able to: Design problem solutions using Object Oriented Techniques.  Apply th e concep ts of da ta abstract ion, encap sulation and inheritance fo r problem s olutions. Use the control structures of C++ appropriately. Critically analyse the various algorithms.  Apply th e differen t data st ructures to problem so lutions. TEXT BOOKS: 1. Bjarne Stroustrup, “The C++ Programming Language”, 3 rd Edition, Pearson Education, 2007. 2. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C++”, 2 nd Edition, Pearson Education, 2005 REFERENCES: 1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, "Introduction to Algorithms", Second Edition, Mc Graw Hill, 2002. 2. Michael T Goodrich, Roberto Tamassia, David Mount, “Data Structures and Algorithms in C++”, 7th Edition, Wiley Publishers, 2004.

ProgramPROGRAMMING AND DATA STRUCTURESming and Data Structures

Embed Size (px)

DESCRIPTION

PROGRAMMING AND DATA STRUCTURESSyllabus of 3rd Sem Anna University

Citation preview

CS6301 PROGRAMMING AND DATA STRUCTURES II L T P C3 0 0 3OBJECTIVES:The student should be made to: Be familiar with the C++ concepts of abstraction, encapsulation, constructor, polymorphism,overloading and Inheritance. Learn advanced nonlinear data structures. Be exposed to graph algorithms Learn to apply Tree and Graph structuresUNIT I OBJECT ORIENTED PROGRAMMING FUNDAMENTALS 9C++ Programming features - Data Abstraction - Encapsulation - class - object - constructors static members constant members member functions pointers references - Role of this pointer Storage classes function as arguments.UNIT II OBJECT ORIENTED PROGRAMMING CONCEPTS 9String Handling Copy Constructor - Polymorphism compile time and run time polymorphisms function overloading operators overloading dynamic memory allocation - Nested classes -Inheritance virtual functions.UNIT III C++ PROGRAMMING ADVANCED FEATURES 9Abstract class Exception handling - Standard libraries - Generic Programming - templates class template - function template STL containers iterators function adaptors allocators -Parameterizing the class - File handling concepts.UNIT IV ADVANCED NON-LINEAR DATA STRUCTURES 9AVL trees B-Trees Red-Black trees Splay trees - Binomial Heaps Fibonacci Heaps DisjointSets Amortized Analysis accounting method potential method aggregate analysis.UNIT V GRAPHS 9Representation of Graphs Breadth-first search Depth-first search Topological sort Minimum Spanning Trees Kruskal and Prim algorithm Shortest path algorithm Dijkstras algorithm Bellman-Ford algorithm Floyd - Warshall algorithm.TOTAL: 45 PERIODSOUTCOMES:At the end of the course, the student should be able to: Design problem solutions using Object Oriented Techniques. Apply the concepts of data abstraction, encapsulation and inheritance for problem solutions. Use the control structures of C++ appropriately. Critically analyse the various algorithms. Apply the different data structures to problem solutions.TEXT BOOKS:1. Bjarne Stroustrup, The C++ Programming Language, 3rd Edition, Pearson Education, 2007.2. Mark Allen Weiss, Data Structures and Algorithm Analysis in C++, 2nd Edition, Pearson Education, 2005REFERENCES:1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, "Introduction to Algorithms", Second Edition, Mc Graw Hill, 2002.2. Michael T Goodrich, Roberto Tamassia, David Mount, Data Structures and Algorithms in C++, 7th Edition, Wiley Publishers, 2004.CS6311 PROGRAMMING AND DATA STRUCTURE LABORATORY II L T P C0 0 3 2OBJECTIVES:The student should be made to: Be familiarized with good programming design methods, particularly Top- Down design. Getting exposure in implementing the different data structures using C++ Appreciate recursive algorithms.LIST OF EXPERIMENTS:IMPLEMENTATION IN THE FOLLOWING TOPICS:1. Constructors & Destructors, Copy Constructor.2. Friend Function & Friend Class.3. Inheritance.4. Polymorphism & Function Overloading.5. Virtual Functions.6. Overload Unary & Binary Operators Both as Member Function & Non Member Function.7. Class Templates & Function Templates.8. Exception Handling Mechanism.9. Standard Template Library concept.10. File Stream classes.11. Applications of Stack and Queue12. Binary Search Tree13. Tree traversal Techniques14. Minimum Spanning Trees15. Shortest Path AlgorithmsTOTAL: 45 PERIODSOUTCOMES:At the end of the course, the student should be able to: Design and implement C++ programs for manipulating stacks, queues, linked lists, trees, and graphs. Apply good programming design methods for program development. Apply the different data structures for implementing solutions to practical problems. Develop recursive programs using trees and graphs.REFERENCE:spoken-tutorial.org.LIST OF EQUIPMENT FOR A BATCH OF 30 STUDENTS:Standalone desktops with C++ complier 30 Nos.(or)Server with C++ compiler supporting 30 terminals or more.