Programming, Data Structures and Algorithms in Python
This course is an introduction to programming and problem solving in Python. It does not assume any prior knowledge of programming. Using some motivating examples, the course quickly builds up basic concepts such as conditionals, loops, functions, lists, strings and tuples. It goes on to cover searching and sorting algorithms, dynamic programming and backtracking, as well as topics such as exception handling and using less. As far as data structures are concerned, the course covers Python dictionaries as well as classes and objects for denying user defined data types such as linked lists and binary search trees. (from nptel.ac.in )
Prof. Madhavan Mukund, Department of Computer Science and Engineering, Chennai Mathematical Institute.