Syllabus  |   Lectures  |   Downloads  |   FAQ  |   Ask a question  |  
Course Co-ordinated by IIT Madras
Coordinators
 
Prof. Madhavan Mukund
Chennai Mathematical Institute

 

Download Syllabus in PDF format



Untitled Document


Week Lessons/Topics
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
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

School level mathematics.


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)



Important: Please enable javascript in your browser and download Adobe Flash player to view this site
Site Maintained by Web Studio, IIT Madras. Contact Webmaster: nptel@iitm.ac.in