Back to Algorithmic Toolbox

4.7

stars

6,056 ratings

•

1,272 reviews

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second)....

Jan 20, 2017

I liked the fact that the algorithms are not just the introductory searching and sorting algorithms. The assignments are fairly difficult (I have decent scripting experience), but not impossibly so.

Sep 29, 2017

good course, I like the fact you can use a lot of languages for you programming exercises, the content is really helpful, I would like to have more indications from the grading system to save time.

Filter by:

By Matheus R

•Jun 18, 2018

I'm still in week 2, but so far I'm loving it. It's far more interesting and engaging than I thought it would be, and not as hard as I thought it would be. It requires some programming experience (a few months of practice and maybe a more advanced understanding of your programming language of choice will do) and the "mathy" way some algorithms are explained can be a little scary for who hasn't a good maths background (like me!) but don't let it scare you away. Everything is actually much simpler than it looks like and the only real demand is some patience and a willingness to find new ways to solve problems. Every time you an assignment right, you feel like you "leveled up" your problem solving skills a little bit. Totally worth it. Looking forward to the rest of the specialization.

By Andrey T

•May 22, 2016

This is a good course, and I liked the quality of video lectures. The material is structured and lets the students understand the basic approaches they can follow to solve algorithmic tasks.

Also a good plus is that there are assignments. First, they are of different complexity - so anyone will find an interesting task there. Second, there are prepared starter files for 3 languages - so you spend time working on algos, not on bootstrapping projects. And third - grading is automatic.

Just for fiuture - as a more engaging thing there could be also made tasks to review of other people's assignments (as it is done in other courses) and implementing a test case which makes a wrong solution to fail (which is something like TopCoder does). But this idea is too raw and needs more thinking.

By Michael B

•May 29, 2016

A great course in its own right but it also fills a void between the "Learn <programming language>" and using programming languages to analyze Big Data. The instructors have put together an excellent introduction to the wonderful, and scary, world of algorithms. I must admit I was ready to send my PC flying through the window on numerous occasions when I could not get my particular implementation of an algorithm to run within the time AND memory limits set by the instructors. More so, because often you are not told what particular test case made it fail. In the end, I believe this is a great approach to have learners really dive into the material and think about the various run times before submitting a particular solution. Well worth while your time!

By Abe E

•Aug 20, 2017

Lots of good problems. The bar to pass is very low, but I felt I actually learned by completing the whole thing. There is a forum with some helpful advice on some of the problems. The easiest problems are the ones you just copy the algorithm verbatim from the slides, but there are some more interesting problems with terrible edge cases, like the minimal distance among n points.

They follow the textbook pretty well, so you can pick up that book for cheap and read it too! I liked most of the lecturers, but a few I could have done without and ended up referencing other sources as a result. I learned a lot and will continue in the specialization.

By Theodore G

•Oct 23, 2016

Congratulations for this well-designed, informative and extremely educative course! The language agnostic way of presenting and explaining these basic but important algorithmic techniques provides an extremely useful way to better understand and further elaborate these methods by using the programming language of our choice. Of course, some programming experience in at least one language is needed, but this course can also provide a great lab to start learning others. The programming assignments and the way you have designed them (time/memory constraints) are ideal to learn designing these algorithmic techniques correctly and efficiently.

By Chen X

•Feb 18, 2019

Pros:

Great practical programming assignment questions.

Some very nice lectures and problem explanations, especially in asymptotic notation and scaling, D+C, and dynamic programming 1.

Cons:

Some annoying mistakes in the python3 assignment boilerplate code for inputs. Like overriding the 'input' function name with a variable.

Did not give rigid definitions of types of programming. Greedy, D+C, dynamic.

Should have been more rigid in defining problem steps in the greedy algorithms chapter. Seemed waffly.

The course textbook they recommended buying was basically just the problem statements + lecture notes. Not useful.

Overall, a solid course.

By John B

•Dec 30, 2017

This was a well developed and taught course. The programming assignments were just the right level of difficulty, and the system for submitting assignments worked very well. I learned a lot about the content, and feel stronger in my programming abilities and computer science knowledge.

The only critique I would have is that some of the slides where the algorithms are written out have some confusing notation (using w and w_i in the same line of an algorithm for one) and sometimes the index conventions seemed not to line up with the usual "starts at 0" format. Even still it was always easy to correct for this.

By Shiv W

•Oct 30, 2018

This Course is really very helpful in understanding the basic algorithms and various efficient problem solving technique. Week assignments are very good and helped me evolve my skills in implementing solutions and to consider every possible kind of instances for a problem. I loved the lectures and the way professors explain things and touch every aspect of the topic. I enjoyed this course very much and have learnt much more than what I thought I required. I am really very thankful and grateful to the professors and the Coursera. Thank You Very Very much. :)

By Shreyansh K

•Aug 03, 2017

I always feared coding problems on divide and conquer and dynamic programming. The way this course gradually took me from easy stuffs to advanced was awesome. After doing the course, I feel confident on coding difficult problems. I also appreciate the granularity of topic that this course covers. I took many courses but nowhere until now, I have seen courses that cover how to test and debug your code. Great Course and much take course in case one wants to get good at competitive programming. Good Job teachers. Your efforts are appreciated.

By Kyle C

•Jun 26, 2018

This was a pretty great first into to algorithms. Took me from essentially no formal experience to feeling pretty confident about where I go from here (CLRS, cracking the coding interview, etc). The only feedback I have for the instructors are: some of the lecturers don't have good english and it borders on impacting the comprehensibility of the course. Usually the subtitles fill in the gaps -- but in the latter half of the course these are often wrong as well. Fixing these would be a huge help! Thanks for creating such a useful resource.

By Nandan K

•Oct 10, 2017

Really nice course that get's you started to the world of algorithms. It has a balanced progression and introduction to basic concepts, but highly recommend to do all the optional assignments since they help absorb all the presented material to the fullest extent. But to solidify the knowledge gained, I would recommend to solve more problems on the introduced concepts since I feel this course falls short in number of diverse problem statements to be able to think on how to apply the concepts in different scenarios.

By Zhenya

•Nov 29, 2018

I recommand for everybody. Teachers explain all from the basic level, and you shouldn't be afraid, you will understand all algorithms from this course. I like this course and this specialization very much

Для русского язычного населения тоже очень рекомендую, английский базового уровня, преподаватели с хорошим произношением, просто огонь. Сам курс вам тоже очень понравится. Очень нравится, что сначала дают теорию, а потом сразу к этой теории задачи, чтобы вы всё смогли отработать

Thanks for this course

By Boris T

•Jan 04, 2018

Great course with the thoroughly prepared exercices and detailed video explanations for each topic. Covers a wide range of fundamental alogorithmic technicues that are good to learn for everyone who wants to become a better software engeener or just to improve programming skills. The course passing grade is pretty soft. It is enough to attentively watch the video lectures and carefully implement algorithms covered there to pass the course, however some advanced problems are really challenging.

By Fil G

•Oct 20, 2018

A very thorough introduction to the core concepts of Algorithm design, including sorting, binary search, greedy algorithms and dynamic programming. The assignment are tough with the last few definitely challenging, you will spend quite a bit of time implementing them if you are new to programming in general but there is enough help on the site (and the internet) to help you figure things out. Working through the problems is essential to getting the most out of the course.

By Tushar K

•Jul 05, 2018

This is a really well planned course. I was doing this course and auditing my on-campus course too, initially. But, I soon realised that this is what I need. It has a perfect balance of mathematical rigour and practical programming. The programming challenges sometimes felt tough, but since ample time is given to solve, I could make it in the end. Thanks to the instructors for teaching students across the globe. Knowledge is a debt that can never be repaid! Thanks

By Lee Z Y

•Aug 26, 2017

I think this is the best algorithms course I've taken so far. It wasn't too hard, but if you wanted some challenge there's always the advanced problems. Speaking of the problems, I highly recommend that you solve all the programming assignments, including the advanced questions. Even if you can't solve it on your own, search up how to do it; just don't give up. Passing is easy, but to get the most of the course you need to finish all the programming assignments.

By sudheer n D

•Aug 19, 2019

This is one of the best courses i have taken. The way these instructors come up with a problem and explain why existing techniques are not that helpful, and intuitively explaining why new method/technique would suit the problem. everything about teaching was simple yet amazing.

Moreover the assignments are also quite challenging, so they will for sure give you tough time and make you put in more effort which in turn sharpen your strengths on the concepts.

By Lucien

•Mar 21, 2017

This is a great introduction to a more formal approach to algorithms and I look forward to the rest of the courses in the specialization. The dynamic programming week was somewhat more difficult than the other weeks, but I think that could be remedied with more visualizations during the lectures.

If you're lacking in any basic maths skills, I would recommend running through Khan academy first. Functional notation and series would be especially useful.

By Kirill S

•Oct 02, 2017

This course gave an insight in the world of algorithms and taught me a number of different approaches for solving algorithmic problems (stress testing, for example). I discovered the fact that my programs didn't worked properly in all cases (I was pretty confident that they did) and realized that there are really wise solutions for many computation problems. Lastly, all course materials were explained in detail, so there were no unclear moments.

By Kevin K

•Aug 05, 2016

This course is well-designed and delivered by the experienced instructors. It is particularly suitable for those who have some basic knowledge in programming (knowing how to use if-else if-else statements, for-loop and while-loop, etc.; knowing a little bit how to write a simple code in C, C++, Python or others) and would like to enhance his programming techniques through polishing his logical thinking ability while he is designing a algorithm.

By Jonathan O

•Aug 29, 2018

I love this course. Designing algorithms in the lectures and implementing them in the weekly assignments is not only rewarding and fun, but also engaging. The test cases applied to the algorithms in the assignments are comprehensive, looking for hard-to-find, yet very important, edge cases, meaning significant testing is required for each submission, mimicking the requirements of any algorithm used outside the classroom.

Well, on to course #2!

By Souvik R

•Jul 23, 2017

So far the best course I have seen that actually teaches algorithms.This course not only explains you the algorithm but will also make you solve programming challenges based on the algorithms which requires you to look at the algorithm from a different perspective and then solve the challenge.This is what I loved the best about this course.I believe I am much better now in implementing algorithms and solving programming challenges.

By Taranpreet s

•Dec 28, 2019

The best part of the course is Assignments, as only after trying to code the algorithms one can appreciate the content of the videos and reading Material. Conceptually Dynamic Programming(Weeek5,6) is the hardest to grasp. Assignment wise I found week 4 Divide and Conquer to be more challenging. For DP assignments, pseudo-code is given for most of the questions. Thanks to the instruction team for creating this wonderful course.

By Ananth D

•Jan 27, 2020

The course content is very well designed, also the problems enhance your thinking and take it to a next level.

Also the explanations by all Professors is too good, when i repeatedly listen to the same lecture, i get greater clarity into the concepts. Thank you to all the Professors involved in teaching and designing the course.

I wish there could have some more links provided throwing clarity on of dynamic Programming.

By Samantha K

•May 15, 2016

I would've never forced myself to learn to think recursively if it weren't for this course. As someone from a mechanical engineering discipline, with a minimal background in java programming, i was able to following along with this course and complete all assignments. The discussion boards and professor's lectures were particularly helpful along with the fact that I could download everything for viewing offline.

- AI for Everyone
- Introduction to TensorFlow
- Neural Networks and Deep Learning
- Algorithms, Part 1
- Algorithms, Part 2
- Machine Learning
- Machine Learning with Python
- Machine Learning Using Sas Viya
- R Programming
- Intro to Programming with Matlab
- Data Analysis with Python
- AWS Fundamentals: Going Cloud Native
- Google Cloud Platform Fundamentals
- Site Reliability Engineering
- Speak English Professionally
- The Science of Well Being
- Learning How to Learn
- Financial Markets
- Hypothesis Testing in Public Health
- Foundations of Everyday Leadership

- Deep Learning
- Python for Everybody
- Data Science
- Applied Data Science with Python
- Business Foundations
- Architecting with Google Cloud Platform
- Data Engineering on Google Cloud Platform
- Excel to MySQL
- Advanced Machine Learning
- Mathematics for Machine Learning
- Self-Driving Cars
- Blockchain Revolution for the Enterprise
- Business Analytics
- Excel Skills for Business
- Digital Marketing
- Statistical Analysis with R for Public Health
- Fundamentals of Immunology
- Anatomy
- Managing Innovation and Design Thinking
- Foundations of Positive Psychology