Programming, Data Structures and Algorithms using Python
ABOUT THE COURSE:
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 files. As far as data structures are concerned, the course
covers Python dictionaries as well as classes and objects for defining
user defined datatypes such as linked lists and binary search trees.
INTENDED AUDIENCE:Students in any branch of mathematics/science/engineering, 1st year
PRE-REQUISITES: School level mathematics. INDUSTRY SUPPORT: This course should be of value to any company requiring programming skills.
Madhavan Mukundstudied 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 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.
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 denitions: 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 denitions: memoization Dynamic programming: examples Other programming languages: C and manual memory management Other programming paradigms: functional programming
CERTIFICATION EXAM :
The exam is optional for a fee.
Date of Exam: March 31st 2019 (Sunday).
Time of Exam: Morning session 9am to 2 noon; Afternoon session: 2pm to 5pm
Registration url: Announcements will be made when the registration form is open for registrations.
The online registration form has to be filled and the certification exam fee needs to be paid. More details will be made available when the exam registration form is published.
Final score will be calculated as : 25% assignment score + 75% final exam score
25% assignment score is calculated as 25% of average of Best 6 out of 8 assignments
E-Certificate will be given to those who register and write the exam and score greater than or equal to 40% final score. Certificate will have your name, photograph and the score in the final exam with the breakup.It will have the logos of NPTEL and IIT Madras. It will be e-verifiable at nptel.ac.in/noc.