YoVDO

Getting Started with Competitive Programming

Offered By: NPTEL via Swayam

Tags

Programming Courses Algorithm Design Courses Sorting Algorithms Courses Searching Algorithms Courses Greedy Algorithms Courses Competitive Programming Courses

Course Description

Overview

This is a course on algorithm design with a focus on issues of modeling and implementation. Each lecture will be focused entirely on one or two problems that reveal the use of a specific algorithmic technique. The techniques themselves are chosen to be in line with those covered in existing NPTEL courses on data structures and algorithms, so that students who complete those courses can find in this course a natural follow up. This course is intended for anyone who wants to deepen their appreciation for algorithmic techniques that they have learned in a foundational course and/or would like to take a first step towards preparing for coding competitions such as the ICPC. INTENDED AUDIENCE : Undergraduate students who have already done a basic data structures/algorithms course.PREREQUISITES : Data Structures and Algorithms, Familiarity with a programming language (ideally C++ or Python)INDUSTRY SUPPORT : Most technology-based companies typically hire based on a test of coding competence and this course will prepare students for this. Notable examples include: Facebook, Google, Amazon, Apple, Microsoft, etc.

Syllabus

Week 1: Sorting and Searching Algorithms
Week 2: Greedy Algorithms - I
Week 3: Greedy Algorithms - II
Week 4: Disjoint Set Union with Path Compression
Week 5: Minimum Spanning Tree
Week 6: Shortest Paths: Dijkstra and Beyond
Week 7: Network Flows - I
Week 8: Network Flows - II, Divide and Conquer
Week 9: Dynamic programming - I
Week 10: Dynamic programming - II
Week 11: Dynamic programming - III
Week 12: Dynamic programming - IV

Taught by

Prof. Neeldhara

Tags

Related Courses

Algorithms: Design and Analysis, Part 2
Stanford University via Coursera
Conception et mise en œuvre d'algorithmes.
École Polytechnique via Coursera
Biology Meets Programming: Bioinformatics for Beginners
University of California, San Diego via Coursera
算法基础
Peking University via Coursera
算法基础 | Fundamental Algorithms
Peking University via edX