Introduction
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
titled:
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 tradeoffs (such
as
spacetime; 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.

Sorting algorithms
including quicksort, heapsort, and mergesort.

Graphs: shortest path algorithms, minimal spanning tree algorithms,
depth first and breadth first search.

Algorithm design techniques including greedy, divide and conquer, and dynamic
programming.
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)
Teaching Assistants
 Swaprava Nath
 Shweta Jain
 T. Lavanya Sita
 Satyanath Bhat
 Swapnil Dhamal
 Palash De
 Gaurav Chaudhary
 Debmalya Mandal
 Dilpreet Kaur
