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.
Mar 06, 2018
Cool course. Thank you! One suggestion about your book (Learning Algorithms Through Programming and Puzzle Solving): could you add some theory which would serve as a brief reminder before problems?
par 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.
par 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.
par Chen X•
Feb 18, 2019
Great practical programming assignment questions.
Some very nice lectures and problem explanations, especially in asymptotic notation and scaling, D+C, and dynamic programming 1.
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.
par 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.
par Abhijit H J•
Nov 23, 2019
The content taught is the lecture is not sufficient to pass the practical assignments.
I request you to use a dark background on slides.
The working of the pseudocode is not clearly explained with examples. I find difficulty in understanding the working of the pseudocode on examples.
par Alyson L V•
Nov 03, 2018
To much talk about how to calcule the Big(O) and no enough explaining about the content
Sep 27, 2016
Bad teaching quality.
par emmanuel g•
Mar 27, 2017
I would like to give this course worse than a 1 star. The course explanations are very poor. The explanations drag on and make no sense. I had to go to outside sources to make sense of what the videos were discussing, which I felt like defeats the purpose. Why am I paying for something when I have to use other sources to better explain. I would never recommend this course to anyone. Listening to these teachers explain each subject poorly was killing me. I like to learn through examples but what they provide just makes it more confusing and hard to follow. Each instructor got worse and worse! The videos were so hard to watch and the accents made it even more worse! I feel robbed from taking this course. I should have asked for my refund within the first week, but I felt since I was paying, I would stick it out a little longer. You will get a better explanation if you take each subject and youtube the videos on each subject. Very useless course. Hated every week of this course and I wouldn't dare to continue with the full specialization program. It's very sad to hear that this course gets recommended a lot, but it missed it's mark completely.
par Debashis G•
Sep 16, 2016
If one has taken the Algorithms 1 and 2 course by Profs. Sedgewick and Wayne, this course will be a disappointment and waste of time.
par Ashraf K•
Sep 08, 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
par Brian T•
Aug 10, 2019
I was able to complete the entire course, however I do see a LOT of room for improvement.
The transcript has many incorrect words. If the lecturers are reading off a script, then it doesn't seem like it as many of them accidentally mess up their words. This can confuse novice learners. The slides appear to be the critical portion of the course, with the lecturers explaining what is on the slides and little more.
I used Python for this course. Most novice learners will be using IDLE and not touch anything related to PyCharm (or, like me, already have PyCharm Community installed rather than PyCharm EDU and would not like to experience the annoyance of having to install yet another PyCharm). Much of the input for the autograder relies on sys.stdin, which would read files stored on the server. However, for client testing on IDLE, this needs to be replaced with an input() function so that you could test for bugs. Novice learners may not know how to do this and will experience frustration when their input isn't accepted.
Many of the lecturers are probably not native English speakers, and that is not a problem. Personally, I can easily understand what they were saying. However, other people who do not have experience listening to those with more pronounced accents may have difficulty understanding the lecturers, and the accents will obviously not help when it comes to understanding new and difficult concepts.
The usage of pseudocode is understandable, as people will be coding in multiple languages. However, I would recommend that the pseudocode use names such as "max_array" and "min_array" rather than simply "M" and "m" with the lecturer having to remind us which is which. Same for indexes, don't use "i" and "j", try to use "row" and "column." This will teach us good coding habits (use descriptive names) while making explanations clearer.
Of all the courses, the "worst" part of the course is likely the weeks involving Dynamic Programming. Dynamic Programming is a very difficult but also very important. Most novices will have never seen the concept of Dynamic Programming, so the need for a clear lecturer and in-depth explanations becomes much more important. However, the explanations are rushed (which is not good as 2D arrays are being used more and are much less intuitive). Also, I'm surprised they didn't talk about shortest paths/number of paths, which would help people get used to 2D arrays.
Finally: Unless you are already experienced in these algorithmic concepts, the time you need to complete this course is probably much greater than the course's estimates. Be prepared to dedicate yourself.
par 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.
par 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.
par 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. :)
par 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.
par 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.
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
par 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.
par 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.
par 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
par 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.
par 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.
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.
par 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.
par 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.