Design and analysis of algorithms

2,000.00

Prof. Madhavan Mukund

Chennai Mathematical Institute

*Additional GST and optional Exam fee are applicable.

SKU: CMI Category:

Description

This course will cover basic concepts in the design and analysis of algorithms.
  • Asymptotic complexity, O() notation
  • Sorting and search
  • Algorithms on graphs: exploration, connectivity, shortest paths, directed acyclic graphs, spanning trees
  • Design techniques: divide and conquer, greedy, dynamic programming
  • Data structures: heaps, union of disjoint sets, search trees
  • Intractability

INTENDED AUDIENCE

Students in BE/BTech Computer Science, 2nd/3rd year.

PRE-REQUISITES

Exposure to introductory courses on programming and data structures.

ABOUT THE 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 Director. 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.

Certification Process

1. Join the course Learners may pay the applicable fees and enrol to a course on offer in the portal and get access to all of its contents including assignments. Validity of enrolment, which includes access to the videos and other learning material and attempting the assignments, will be mentioned on the course. Learner has to complete the assignments and get the minimum required marks to be eligible for the certification exam within this period. COURSE ENROLMENT FEE: The Fee for Enrolment is Rs. 2000 + GST 2. Watch Videos+Submit Assignments After enrolling, learners can watch lectures and learn and follow it up with attempting/answering the assignments given. 3. Get qualified to register for exams A learner can earn a certificate in the self paced course only by appearing for the online remote proctored exam and to register for this, the learner should get minimum required marks in the assignments as given below: CRITERIA TO GET A CERTIFICATE Assignment score = Score more than 50% in at least 6/8 assignments. Exam score = 50% of the proctored certification exam score out of 100 Only the e-certificate will be made available. Hard copies will not be dispatched." 4. Register for exams The certification exam is conducted online with remote proctoring. Once a learner has become eligible to register for the certification exam, they can choose a slot convenient to them from what is available and pay the exam fee. Schedule of available slot dates/timings for these remote-proctored online examinations will be published and made available to the learners. EXAM FEE: The remote proctoring exam is optional for a fee of Rs.1500 + GST. An additional fee of Rs.1500 will apply for a non-standard time slot. 5. Results and Certification After the exam, based on the certification criteria of the course, results will be declared and learners will be notified of the same. A link to download the e-certificate will be shared with learners who pass the certification exam. CERTIFICATE TEMPLATE

Course Details

Week 1 Module 1: Introduction Module 2: Examples and motivation Module 3: Examples and motivation Module 4: Asymptotic complexity: informal concepts Module 5: Asymptotic complexity: formal notation Module 6: Asymptotic complexity: examples Week 2 Module 1: Searching in list: binary search Module 2: Sorting: insertion sort Module 3: Sorting: selection sort Module 4: Sorting: merge sort Module 5: Sorting: quicksort Module 6: Sorting: stability and other issues Week 3 Module 1: Graphs: Motivation Module 2: Graph exploration: BFS Module 3: Graph exploration: DFS Module 4: DFS numbering and applications Module 5: Directed acyclic graphs Module 6: Directed acyclic graphs Week 4 Module 1: Shortest paths: unweighted and weighted Module 2: Single source shortest paths: Dijkstra Module 3: Single source shortest paths: Dijkstra Module 4: Minimum cost spanning trees: Prim’s algorithm Module 5: Minimum cost spanning trees: Kruskal’s Algorithm Module 6: Union-Find data structure Week 5 Module 1: Divide and conquer: counting inversions Module 2: Divide and conquer: nearest pair of points Module 3: Priority queues, heaps Module 4: Priority queues, heaps Module 5: Dijstra/Prims revisited using heaps Module 6: Search Trees: Introduction Week 6 Module 1: Search Trees: Traversals, insertions, deletions Module 2: Search Trees: Balancing Module 3: Greedy : Interval scheduling Module 4: Greedy : Proof strategies Module 5: Greedy : Huffman coding Module 6: Dynamic Programming: weighted interval scheduling Week 7 Module 1: Dynamic Programming: memoization Module 2: Dynamic Programming: edit distance Module 3: Dynamic Programming: longest ascending subsequence Module 4: Dynamic Programming: matrix multiplication Module 5: Dynamic Programming: shortest paths: Bellman Ford Module 6: Dynamic Programming: shortest paths: Floyd Warshall Week 8 Module 1: Intractability: NP completeness Module 2: Intractability: reductions Module 3: Intractability: examples Module 4: Intractability: more examples Module 5: Misc topics Module 6: Misc topics

Reviews

There are no reviews yet.

Be the first to review “Design and analysis of algorithms”