Writing elegant, efficient, and correct computer programs is at the heart
of the computer science discipline. Data structures and algorithms play
an important role in this process. In fact, Nicklaus Wirth, a computer
science legend and a Turing Award laureate, has written a famous book
Data Structures + Algorithms = Programs.
The objective of this course is to provide a sound
exposure to commonly used programming principles,
essential data structures, and simple but key algorithm design
techniques. The target of the course is to make
students learn C programming through the lens of fundamental
data structures and simple algorithmic ideas. At the end of the course,
the students are expected to gain an appreciation of the trade-offs (such
space-time; iteration versus recursion; arrays versus linked lists)
involved in picking the right data structures and the right algorithms to
solve interesting computational problems.
Contents of the Course
Notions of algorithms and data structures.
Importance of algorithms and data
structures in programming.
Introduction to C programming.
Notion of complexity of algorithms and the big Oh notation.
Simple algorithm analysis techniques.
Iteration and Recursion.
Arrays and common algorithms with arrays.
Linked lists and common algorithms
with linked lists.
Searching with hash tables and binary search trees.
Pattern search algorithms.
including quick-sort, heap-sort, and merge-sort.
Graphs: shortest path algorithms, minimal spanning tree algorithms,
depth first and breadth first search.
Algorithm design techniques including greedy, divide and conquer, and dynamic
Schedule of the Course
- Test 1 : August 31, 2012
- Test 2 : September Last Week
- Test 3 : November 2, 2012
- Finals (Theory) : December Second Week (09.00 - 12.00 Hours)
- Finals (Lab) : December First Week (14.00 - 17.00 Hours)
- Swaprava Nath
- Shweta Jain
- T. Lavanya Sita
- Satyanath Bhat
- Swapnil Dhamal
- Palash De
- Gaurav Chaudhary
- Debmalya Mandal
- Dilpreet Kaur