X
X
X

X
Courses » Programming, Data Structures and Algorithms in Python

Programming, Data Structures and Algorithms in Python


INTENDED AUDIENCE
Students in any branch of mathematics/science/engineering, 1st year

PRE-REQUISITES

School level mathematics.

INDUSTRY SUPPORT – LIST OF COMPANIES/INDUSTRY THAT WILL RECOGNIZE/VALUE THIS ONLINE COURSE

This course should be of value to any company requiring programming skills.


COURSE INSTRUCTOR



Madhavan Mukund studied at IIT Bombay (BTech) and Aarhus University (PhD). He has been a faculty member at Chennai Mathematical Institute since 1992, where he is presently Professor and Dean of Studies. 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.

He is President of both the Indian Association for Research in Computing Science (IARCS) and the ACM India Council. 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 Council. He has contributed lectures on algorithms to the Massively Empowered Classroom (MEC) project of Microsoft Research and the QEEE programme of MHRD.

MORE DETAILS ABOUT THE COURSE

Course url: https://onlinecourses.nptel.ac.in/noc16_cs11
Course duration : 08 weeks
Start date and end date of course: 18 July 2016 - 9 September 2016
Dates of exams :
 
18 September 2016 & 25 September 2016
Time of exam : 2pm - 5pm
Final List of exam cities will be available in exam registration form.
Exam registration url - Will be announced shortly
Exam Fee:
The online registration form has to be filled and the certification exam fee of approximately Rs 1000(non-Programming)/1250(Programming) needs to be paid.

CERTIFICATE

E-Certificate will be given to those who register and write the exam. Certificate will have your name, photograph and the score in the final exam. It will have the logos of NPTEL and IIT Madras.
It will be e-verifiable at nptel.ac.in/noc.
COURSE LAYOUT

Week 1
Informal introduction to programmin, algorithms and data structures viagcd
Downloading and installing Python
gcd in Python: variables, operations, control flow - assignments, condition-als, loops, functions


Week 2
Python: types, expressions, strings, lists, tuples
Python memory model: names, mutable and immutable values
List operations: slices etc
Binary search
Inductive function de nitions: numerical and structural induction
Elementary inductive sorting: selection and insertion sort
In-place sorting

Week 3
Basic algorithmic analysis: input size, asymptotic complexity, O() notation
Arrays vs lists
Merge sort
Quicksort
Stable sorting


Week 4
Dictionaries
More on Python functions: optional arguments, default values
Passing functions as arguments
Higher order functions on lists: map, lter, list comprehension


Week 5
Exception handling
Basic input/output
Handling files
String processing


Week 6
Backtracking: N Queens, recording all solutions
Scope in Python: local, global, nonlocal names
Nested functions
Data structures: stack, queue
Heaps


Week 7
Abstract datatypes
Classes and objects in Python
"Linked" lists: find, insert, delete
Binary search trees: find, insert, delete
Height-balanced binary search trees


Week 8
Effcient evaluation of recursive de nitions: memoization
Dynamic programming: examples
Other programming languages: C and manual memory management
Other programming paradigms: functional programming


REFERENCE BOOKS

Dive into Python 3, Mark Pilgrim, http://www.diveintopython3.net/
Think Python, 2nd Edition, Allen B. Downey, http://greenteapress.com/wp/think-python-2e/
Algorithm Design, Jon Kleinberg and Eva Tardos, Pearson (2013)