Can be completed in | 2 Week |
---|---|
Total Lectures | 20 |
Course Validity | 7 Week |
Basic (INR) | Standard (INR) | Professional (INR) | ||
---|---|---|---|---|
Choose your package |
Introduction to Algorithms (IALG) course is designed to introduce the algorithmic approach to programming. Data-structures and algorithms together form a solid base on which one can easily build programming expertise. Each algorithm is explained in detail, its usage and data-structure requirements. Implementations are discussed in C++ and STL implementation (if available) is discussed.
Design and analysis techniques such as greedy algorithms, amortized analysis and dynamic programming are discussed. Exponential complexity algorithms are introduced and approximate solutions touched upon. The course has various exercises around algorithms. The course can be completed in around two weeks time. We also suggest you to go through our blog on Art of Programming: Data Structures to gain an insight into why it makes sense to learn more about data structures and algorithms.
This course is taught by Anup Gangwar and Basant Dwivedi. They will be moderating the course forums as well as lead the contact sessions.
This course assumes a sufficient background in the 'C++' programming language, familiarity with Linux and good exposure to data-structures. If you have experience in working with any other UNIX system, then it is fine too. We recommend that you take up the courses User Level Linux, Programming With C++ and Data Structures to gain sufficient background before taking up this course.
This course is at beginners level. Most of the topics are treated with programming point of view. Focus is to expose you with the common algorithms, their complexity, basic idea behind these algorithms and popular algorithm design techniques. However, detailed theory behind individual algorihtms are not discussed. There are excellent text books such as "Introduction to Algorithms by Thomas H. Cormen et al." for detailed theory and proofs.
The first few sections provide the background which is necessary for further sections. Subsequent sections pick up one algorithm and delve deeper providing C++ as well as STL implementations wherever available. Table of content for this course is as follows.
The objective of this course as outlined above is to help you understand common algorithms and how to write programs around them. After finishing this course, you will be able to pick the right algorithm or design new ones for your programming problems. You will also be able to perform analysis and make appropriate trade-offs.