CS6150 - Advanced Programming
Course Data :
Description:The objective of the course is to teach students advanced problem solving through programming. It aims to train students in writing efficient C++ programs. The expected outcomes are that the students will learn to: (1) Identify and abstract the programming task involved for a given programming problem. (2) Select appropriate data structures and algorithmic paradigms (such as greedy, dynamic programming, divide and conquer etc.). (3) Use libraries (such as STL, BOOST) efficiently. (4) Understand OO design concepts like classes, objects, inheritance, interfaces.
Course Contents:The topics for the programming assignments will be based upon (but not limited to): Recursion, Object-Oriented Programming Concepts, Programming Libraries (such as STL, BOOST), Heaps and Priority Queues, Searching and Sorting algorithms, Trees: Search trees, Balanced trees, Red-black trees, Graphs and Graph-based algorithms, Divide-and-Conquer, Dynamic programming, Greedy algorithms.
Textbooks:NIL
Reference Books: (1) Data Structures and Algorithms in C++, 2nd Edition, by Michael T. Goodrich, Roberto Tamassia, David M. Mount, Wiley, 2011, (2) Data Structure and Algorithm in C++, 4th Edition, by Adam Drozdek, Cengage Learning India, 2013, (3) Algorithms in C++: Fundamentals, Data Structures, Sorting, Searching, by Robert Sedgewick, Pearson Education India, 2002, (4) Algorithms in C++ Part 5: Graph Algorithms, by Robert Sedgewick, Addison-Wesley, 2001, (5) Data Structures and Algorithm Analysis in C++, Pearson Education, Mark Allen Weiss, 2014, (6) C++ Primer (5th Edition), by Stanley B. Lippman, Jose Lajoie, Barbara E. Moo, O'Reilly, 2012, (7) STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library, by David R. Musser and Atul Saini, Addison-Wesley Professional Computing Series, 1995.
Pre-Requisites |
Parameters
Credits |
Type |
Date of Introduction |
12 |
Core |
Aug 2020 |
|
Previous Instances of the Course