ESc-101 Algorithms and Programming

Y.Narahari and T. Matthew Jacob
Computer Science and Automation
Indian Institute of Science

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 trade-offs (such as 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.
  • Sorting 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 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