Application for the next batch of the Diploma Program is now open.

Applications open now for next batch of the Diploma Program

Programming, Data Structures and Algorithms using Python

A good foundation course to introduce basic concepts in the design and analysis of algorithms as well as standard data structures, using Python as a base language for implementing these.

by Madhavan Mukund

Course ID: BSCS2002

Course Credits: 4

Course Type: Programming

Recommended Pre-requisites: None

What you’ll learn VIEW COURSE VIDEOS

Python Refresher
Complexity, Notations, Sorting and Searching Algorithms
Arrays, Lists, Stacks, Queues, Hashing
Graph Algorithms
Graph Algorithms (Continued)
Union-Find Data Structure, Priority Queue, Heap, Binary Search Tree
Balanced Search Tree, Greedy Algorithms
Divide and Conquer

Course structure & Assessments

12 weeks of coursework, weekly online assignments, 2 in-person invigilated quizzes, 1 in-person invigilated end term exam. For details of standard course structure and assessments, visit Academics page.

WEEK 1 Dynamic Programming
WEEK 2 String or Pattern Matching Algorithms
WEEK 3 Network Flows, Linear Programming, Class of Algorithms
WEEK 4 Summary
WEEK 5 Graph Algorithms
WEEK 6 Graph Algorithms (Continued)
WEEK 7 Divide and Conquer
WEEK 8 Abstract datatypes
WEEK 9 Abstract datatypes (Continued)
WEEK 10 Dynamic programming
WEEK 11 Dynamic programming (Continued)
WEEK 12 Network flows and linear programming
+ Show all weeks

About the Instructors

Madhavan Mukund
Director, Chennai Mathematical Institute

Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty member at Chennai Mathematical Institute since 1992.His main research area is formal verification. He has active research collaborations within and outside India and serves on international conference programme committees and editorial boards of journals.

...  more

He has served as President of both the Indian Association for Research in Computing Science (IARCS) (2011-2017) and the ACM India Council (2016-2018). He has been the National Coordinator of the Indian Computing Olympiad since 2002. He served as the Executive Director of the International Olympiad in Informatics from 2011-2014.

In addition to the NPTEL MOOC programme, he has been involved in organizing IARCS Instructional Courses for college teachers. He is a member of ACM India's Education Committee. He has contributed lectures on algorithms to the Massively Empowered Classroom (MEC) project of Microsoft Research and the QEEE programme of MHRD.


Other courses by the same instructor: BSCS1001 - Computational Thinking and BSCS2005 - Programming Concepts using Java