This online 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)....

SG

Jan 19, 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.

BD

Jan 19, 2021

The course was really amazing which provided deep knowledge from basic to advance that how algorithms works and how to design algorithms. Thanks to all the expert teachers who taught in this course.

筛选依据：

创建者 Nasim Z

•Jun 14, 2016

Algorithmic Toolbox consists of a series of slides containing slimmed down explanations on introductory algorithmic concepts, followed up with programming assignments. The slides are the centrepiece of the course, as the presenters rarely stray from the bullet points and pseudocode they're comprised of.

I learned a lot during this course. Although, to gain confidence in your knowledge, this is a course that will require you to seek out additional materials to supplement your learning. Perhaps unsurprising being an introductory course, but the presenters struggle when faced with setting expectations.

Throughout the course presenters often gloss over fairly complex concepts, treating them as they were trivial knowledge. This applies to mathematical definitions, proofs where most steps are skipped, tree diagrams without the context of their underlying theory, or bullet points used in place of what could be detailed explanations.

All material is left equally weighted. Rather than providing explanations like: "We don't need to go into detail on this, only x concept from it is important for what we want to focus on. Reference this chapter in this book for more detail." presenters would read mathematical definitions verbatim from the slides and move on. I was often unsure of how much I would need to know about such concepts.

In terms of communication ability, the presenters don't hold up against many of the free/low-cost services I'm accustomed to using, for example: MIT OpenCourseWare, Udacity, edX, Khan Academy, Code School, Treehouse, etc. Perhaps unsurprising, as these competing services often feature professional communicators rather than professional researchers. But the marketplace for quality online education is definitely becoming a competitive one. Users now expect nothing less than presenters with exceptional communication/teaching ability.

In most videos the presenters read verbatim from the slides and motion with their hands to explain concepts that would be better broken down on a whiteboard. Rarely straying from the slides, the times the presenters go into more depth on a concept, you get a scribble in the corner of a slide, lacking the clarity I've come to expect when approaching complex concepts from master educators like YouTuber PatrickJMT or Khan Academy. After a couple weeks into the course, I just went straight to the slides, read MIT's Introduction to Algorithms, and skipped most of the course videos.

But all things considered, the course served as a good curriculum to guide my focus through the introductory concepts, regardless of where I sought it out.

创建者 Ashraf K

•Sep 7, 2016

the material are great so much information and it is the first from the hole specialization

but! the explanation is so weak doesn't match at all with this big data

the pseudocode is so distracting and hard to read

i always get lost and i don't know is it an array in the code or variable and what does he want to do with it

the pseudocode should be just a normal english code saying what to do

not an understandable signs :\

i am really sad that i couldn't get benefits from this amount of knowledge

创建者 Federico C

•Mar 9, 2021

There is no way of understanding content without checking other sources, the explanations are poor.

创建者 Ramin A

•Oct 31, 2016

Def a useful skills to have when starting to interview for jobs. This is a hard course to teach to begin with. I found the lectures really boring, too long, hard to understand and just not really motivated well. I think the homework problem are good, but they are very time consuming. You need to use various methods to find edges cases and though that might be a good skill to have as well, it's just too much to get done in one week and somewhat frustrating when you're only stuck in one test case. I think this could be an excellent course with a few modification on the slides and adding more motivations and making shorter homework problems that focuses on the main part of the material for that as oppose to things we've already covered in the previous week. At the moment, I don't think I'll continue this specialization the way it's designed.

创建者 Pavel T

•Feb 23, 2020

This course is a complete mess.

1. In week 2 they presented fibonacci numbers solution and they said that runtime complexity is quadratic but in presented solution it was linear.

2. In practical task of week 2 they didn't provide sufficient description about what should be done

3. Language of some speakers is mediocre

创建者 Edson J A M

•Mar 21, 2018

I tried to have this specialization and canceled before the 7-days free because the explanation is so poor by the teacher.

When seeing about Big-O notation is possible to see a poor explanation and most of the time you need to access a content to other source as KhanAcademy. It's not acceptable.

创建者 Andrea L

•Sep 1, 2017

Very unsatisfied. At the end, I feel I learnt nothing.

1 - Explanations not always clear

2 - Too many exercises in the assignments

3 - Some exercise was not very useful and takes much time to understand what they want exactly.

4 - Price is too high per month for this course.

创建者 sudheer n

•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.

创建者 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.

创建者 Kirill S

•Oct 2, 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.

创建者 Kevin K

•Aug 4, 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.

创建者 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!

创建者 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.

创建者 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.

创建者 Ananth D

•Jan 26, 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.

创建者 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.

创建者 Jan K

•Mar 1, 2017

The best course I have done on Coursera. The authors have put together a great set of lectures and especially programming assignments, which really force you to think about what you are doing rather than go by trial and error. What's more, you can submit these in about a dozen commonly used programming languages so you can practise the language of your choice while learning about algorithms. Highly recommended!

创建者 Mohamed A

•Aug 26, 2019

amazing course. if you are looking to know fundamental algorithms like DP, Greedy, divide and conquer this course is amazing.

in my opinion, this course is essential for any software engineer but if you just started your way it is better to know how to write simple programmers and be confident with basic topics like loops, conditions ..etc

i recommend python for every body as a start if you have no knowledge

创建者 Andre C

•Jun 19, 2016

This course was a great introduction to algorithms. I am a novice programmer at best and had little to no knowledge about algorithms before this course. The concepts and programming assignments were challenging and I did not finish all of them the way I would have liked to but the challenge has made me more knowledgeable and a slightly better coder. Thank you. I will be taking data structures next.

创建者 Alexander D

•May 15, 2017

Great introductory course. Lots of details and interesting problem sets. Extremely quick responses with the discussion forum. Great help.

One suggestion would be to be a bit better at explaining things, especially the mathematical proofs. They are quick rigorous, yes, but more emphasis should be given on understanding why in simple, human language. Then we could go over the proof together.

创建者 Alejandro O

•Dec 30, 2017

This is the best algorithm course that I have taken, it has its problems but overall complete and the instructors guide you and seem to care for teaching well their subject.

I appreciate the work that you have done here for all of us interested to polish our skills and deepen our knowledge in algorithms.

Keep the good work guys.

*This opinion is based on the complete specialization

创建者 ARELLANO, J (

•Oct 6, 2019

This course is really helpful, at first I was submitting my cpp files for the projects and was having a hard time on having it on a passing grade. This course encouraged me to learn how to code using python. I have a hard time understanding the lessons but it's a good thing that I can just go back and play the video over and over again in order for me to understand each lessons.

创建者 Karan R S

•Jul 24, 2016

My programming and algorithm design greatly improved after taking this course. Through the advanced problem sets I was able to appreciate the finer aspects of efficient algorithm designing and I'm sure that I'll improve a lot with courses to come.

I would definitely recommend this course to any one who wishes to improve his/her skill set for designing efficient algorithms.

创建者 Abhinav R

•Mar 9, 2020

I think this was a great course wonderfully designed with tons of problem solving assignments.It challenged me a lot and I got to learn a lot of new concepts.The idea of dynamic programming always scared me but now I am quite connfident about it and looking forward to solve more problems based on dynamic programming and completing the next course of the specialization! :)

创建者 PRANAV A

•Jan 28, 2020

The course gives a very good insight on how different types of algorithms work, and at the same time lets us think of various ways in which they can be implemented, this really helps in building a very strong base in Algorithms which is absolutely necessary for learning advanced topics. I would really like to thank all the instructors for creating such an amazing course.