X
X
X

X
Courses » Programming, Data Structures and Algorithms using Python

Programming, Data Structures and Algorithms using Python

ABOUT THE COURSE

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 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 – LIST OF COMPANIES/INDUSTRY THAT WILL RECOGNIZE/VALUE THIS ONLINE COURSE

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

INTERNSHIP/JOB OPPORTUNITIES FOR TOP 5% OF THIS COURSE AT VuNet:

VuNet Systems( www.vunetsystems.com ) brings in a big data approach to manage the complex IT infrastructure of enterprises. With its powerful analytics and intuitive visualisations, it helps connect the 1000s of dots in an IT infrastructure to keep it always on and secure. VuNet has customers across verticals, from banks, manufacturing, consumer care to IT/ITES, with some leading retail payment companies as well.  VuNet has also been recognised among the NASSCOM Emerge50 innovative product startups and is also part of the Cisco Launchpad program - Cisco’s partnership program with top emerging startups.

We are always on the lookout for talented programmers and will interview the course toppers( top 5% ), who are interested in an internship/job opportunity. Upon completion of this course, the toppers can submit their resumes and programming code samples. VuNet will interview the candidates and offer internships or job opportunities based on the interview.

22791 students have enrolled already!!

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/noc17_cs10
Course duration : 08 weeks
Start date and end date of course: 23 January 2017 - 17 March 2017
Dates of exams :
 26 March
 
Time of exam : Shift 1 - 9.00am- 12.00 noon ,Shift 2 - 2.00 pm -5.00pm
Any one shift can be chosen to write the exam for the course
Final List of exam cities will be available in exam registration form.
Registration url - Will be announced shortly
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 from is published.

CERTIFICATE
Final score will be calculated as:25% of assignment score + 75% of 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
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)