CS202
CS202
Preamble: The proposed new curriculum for CSE includes six discipline core courses:
1. Mathematical Foundations of Computer Science
2. Advanced Data Structures and Algorithms
3. Paradigms of Programming
4. Computer Organization
5. Information Systems
6. Communicating Distributed Processes
The proposed course follows the new CS curriculum design approach that strives to cover in the
above-mentioned six core course all the fundamental concepts that a CS undergraduate student
must know of.
The course proposal attempts to include the fundamental topics in data structures and algorithms.
The topics form the essential core of this course that must be covered comprehensively, with lots
of examples, and practice exercises, and weekly tutorials. Advance topics in algorithm design
and analysis are going to be covered in discipline electives.
Objective: After the students have gone through a course on discrete structures, where they learn
the formal and abstract representations of data and its manipulation, a course on data structures
and algorithms should teach the students concrete implementations and manipulation of such
discrete structures and their use in design and analysis of non-trivial algorithms for a given
computational task. On completion of such a course, students should be able to
analyse the asymptotic performance of algorithms
demonstrate their familiarity with major data structures, rule to manipulate those, and
their canonical applications
construct efficient algorithms for some common computer engineering design problems
Further, as programming is an integral part of the CS education, in this course students should
implement the data structures and algorithms they learn, compute the corresponding achievable
performance (computation time, memory requirement, etc), and if possible compare the
achievable performance with alternative designs.
Syllabus:
Reference Books:
1. S. Sahni, Data Structures, Algorithms, and Applications in C++, Silicon Press, 2/e, 2005.
2. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms,
MIT Press, 3/e, 2009.
3. A. M. Tenenbaum, Y. Langsam, and M. J. Augenstein, Data Structures Using C and C++,
Prentice Hall, 2/e, 1995.