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.
By Amr A M•
Aug 31, 2019
course should be more fixable and provide IDE for run codes
Aug 30, 2019
This course is very useful and widens one's brain. However, I always felt there was something missing in the explanation
By Anirudh K•
Oct 05, 2019
The learning curve becomes very steep towards the end of the course. Also sometimes it's difficult to understand what the instructor is speaking and the transcripts aren't very good. The assignments need to have some more problems in the easier category as it's only by doing many problems one gets hold of a concept. Although the difficult problems help , but they tend to be more demotivating
By Ashok R•
Sep 13, 2019
The lectures were more narrative oriented and hence felt boring and monotonous at times.
By Kumar N•
Oct 29, 2019
Instructor was good but was not able to make us understand the concept easily..Need to be more ellaborative!
By Jibran Z B•
Nov 07, 2019
The way of communicating can be improved, rest is good.
By Sriragh K•
Jul 16, 2018
The course has multiple limitations and can improve a lot more. Two main issues I faced were these:Dynamic programming part one lectures were very poor and hard to understand as a result of which I had to view external sources to understand the topicSecondly, the idea of not showing test cases is a bit strange as understanding the failing test cases do not really come in the way of understanding algorithm, it simply makes the questions much harder and tedious to solve. This completely eliminates the purpose of the course and wastes the time of most students. I am a bit disappointed with this course and didn't see it as value for money.
By Nasim Z•
Jun 15, 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.
By Sonia R•
Jul 15, 2017
Teaching technique can be better and more interesting. Not so suitable for beginners.
By Emilio B•
Jan 25, 2017
The videos and explanations are very poor. Most of the time the instructors are reading off a script, and everything feels fake. By reading off a script they are forced to "hand-wave" and do not explain concepts covered completely.
The only thing I liked about this course were the problem sets, which were interesting to do. Will not buy rest of specialization, feels like this is just a cash cow for UCSD.
By VICTOR A•
Apr 26, 2016
The course starts very promising, but it gets worse week after week, culminating on a barely understandable week about dynamic programming. That’s when I gave up and decided to write this review instead, with just one assignment missing to complete the course.
Some of the teachers aren’t native english speakers, which is fine, but their english is very hard to understand. I found myself having to watch some portions of the videos over and over again in order to understand what was being said. I tried reading the transcripts instead, but the they’re even worse! It seems that they were automatically generated from the videos, thus suffering with the poor pronunciation.
The teachers use mathematical sophistication that feels unnecessary, but to be fair, they do mention it on the FAQ as part of the necessary background. However, even though it’s an online course, they barely use any teaching method besides very raw slides, some dry mathematical proofs and someone speaking about the content. The only resources offered to help learning are a few open source visualizations. I expected much more.
The only good aspect from this course are the assignment checkers, which allow you to write your solutions in multiple languages.
I deeply regret the money and time I spent on this course.
By Alexander T•
Jun 05, 2017
The time claimed as required for this course is wildly off.. It takes at least 3 times more than 4 hours, allotted for the weekly assignments. In a way, this makes this course very expensive.
By PRATIK A•
Jun 05, 2017
Course content was good. Explanation of various problems, solutions and algorithms could be made easier to understand by providing more (intuitive) examples. Overall, the course is good at gaining broad understanding of the different paradigms of algorithms.
By Tsz Y W•
Jul 28, 2016
These two stars go to the instructor in week 1. I left the course after week 3 because I couldn't tolerate the accents of the instructors. I got frustrated starting from week 2 where I have to reread the subtitles to understand the material. Please let someone who can speak English fluently teach the course, please. The course goes kinds of fast, this is first course of the Specialization and it quickly jumps to Greedy algorithm, really? In general Algorithm course, it is usually taught late.
By Die J•
May 04, 2016
Feedback in assignment is not good enough.
For example, for the points and segment, there are no correct answer in output as a reference.
By Supharerk T•
May 21, 2016
Update: As I proceed to wk 5, I know why there are some complaint on Dynamic programming,
Reduced to 2 stars. Lectures are totally useless for the assignment,
The course is really good until week 4 when it deteriorates very quick. No matter how many times I re-watch the lecture, I can't understand much. I ended up using wikipedia for the quiz instead :P
I can't use much of the course forum since there are too many posts there and it keep crashing my chrome.
This course gets my 3 stars from the first 3 weeks alone, otherwise it gonna be 0-2 stars.
By kamal n•
Nov 16, 2017
The programming technique - like DP, Greedy could have been better. I had to go to other website to better understand the concepts.
By Zhongyu K•
May 13, 2016
Even though this course covers a lot fundamentals for introduction to algorithm, the course itself is not designed as good as I expected. For starters, the weekly problem designs aren't very good. Some problem statements are ambiguous and not very clear unless you read more than one time or take a closer look at the examples. Often, the input format/arguments are designed to take redundant info. Some problem even has more than one possible correct outputs, which is just confusing for learning purpose.
In terms of lecture videos, it's good that there are some classic algorithm problems being demonstrated in the video, however the linkage between how to express a problem in mathematical languages is poorly explained. For example, in the lecture of edit distance, the realization of the matrix was not well explained at all. I personally appreciate a lot of the thorough proving steps introduced in the lectures, however I personally think the proofs are often not well explained to the audience (I also understand that it's more difficult to explain proving steps). Considering the large variety of audience, I would recommend the instructors separate the comprehensive more in-depth knowledge into optional videos, in this way the audiences could decide if they want to spend time in optional videos or not based on their own needs, meanwhile the instructors could spend a little bit more time to explain the difficult concepts better. Overall, I know that talking and analyzing algorithms can be kinda of boring and challenging, but I wish the course videos could be stated in a more interesting and intriguing way.
By Richard Z•
May 04, 2019
I would say that the lecture part of this course is quite poor. The professor presents abstract concepts and pseudo-code without giving an example. It takes me a long time to figure out what the professor wants to say. He should've given out the example before explaining the concepts. The contents though is decent, and I learn a lot in his course.
By Jian W•
Aug 20, 2019
Some Algorithm are not clear, and the homework submission system is not friendly at all!
By Payam K•
Jul 18, 2019
The instructors are terrible at teaching.
By 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.
By Farshid M•
Aug 12, 2019
Great material, review- but course setup is not efficient. programming assignments are failed with zero useful feedback, so debugging is unnecessarily too time consuming. In practice error messages are more informative. I am all for encouraging independence and not hand holding, but when the grader says "failed test 7/16, unknown signal 11", Just telling students to "test your code more" is not a good use of their time nor an efficient and effective way of teaching.
By Linh N•
Aug 18, 2019
The explanations for examples were hard to understand. Sometimes, there was no clue for your bug to fix and you had to dig up tons of external resources to pass the assignments without any help from mentors, and that made the price of this course ridiculously high.
By Aryan R•
Aug 21, 2019
I thought this course would be better, since I saw many awesome things in it. But to me, and I've seen for so many other, it gets really tough as the weeks go by. I want to learn, but this simply isn't being helpful to me OR making me learn something.