Chevron Left
Back to Algorithmic Toolbox

Learner Reviews & Feedback for Algorithmic Toolbox by University of California San Diego

4.6
stars
12,346 ratings

About the Course

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

Top reviews

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.

Filter by:

1801 - 1825 of 2,544 Reviews for Algorithmic Toolbox

By Zizou

Mar 16, 2020

I learnt a lot! I loved the programming challenges given for each week. I made sure to solve all the problems and not just the required amount to pass the specific week, each week has a mix of easy, medium, hard problems. If you only do the required amount of problems to pass, then you might end up skipping the hard problems. The hard problems are challenging. One thing I did not like about the the course is help on issues posted in discussion forums, I did not get any help yet on the few times I posted in the forum. But many a times the questions one will have would be discussed previously, so make sure to go through the discussion forum to find if your question has already been discussed if you had one. I liked that they taught how to write stress tests, but its not easy to come up with naive solutions some times and this where better support from TA's would help.

By Никита Б

Oct 30, 2021

Этот курс хорошо заставляет подумать над некоторыми задачами. При этом вся нужная теория объясняется и ее вполне достаточно, чтобы додуматься до решения(но я не на столько умен, чтобы решить все задачи из этого курса). Курс короткий, но очень ёмкий. Воды почти нет. Есть только одна претензия. Меня очень раздражало на протяжении всего курса, что в контрольных задачах всего лишь названия задач. Нет описания задачи формата ввода/вывода. Это приходилось искать в книжке, что очень неудобно. Курс не совсем подходит абсолютным новичкам в программировании, у них ещё не сложилось правильное мышление. Так же как и если вы знаток алгоритмов, то тут вам ловить нечего. Если же вы хотите подтянуть свой уровень программирования и логическое мышление, то этот курс для вас В целом курсом доволен, считаю, что время зря не потратил, рекомендую

By Jed S

Aug 21, 2018

There are a number of things I would improve, chief among them the forums are difficult to navigate or get meaningful info about what a solution might look like. Part of this is probably a (spoken) language issue, another is probably the level that people come to the course with. Also, at some points there are some true disconnects between what is taught and what you are expected to figure out. Other modules feel about right (week 5, for example). I feel like many of these issues could be resolved by 1) providing the data for the samples in the pdfs as part of the starter files, 2) managing the starter files as a github project where issues can be raised and tackled. Overall though, really great information and I am excited by the level of knowledge I've acquired through thinking about these ideas deeply over the last month.

By Stefan N

Sep 15, 2016

I like the course structure and material. It starts off easy enough to get you interested and then throws at you challenges at early stage, if you are up for it.

What I don't like is video session itself, some of instructors talk too fast and dwell much into topic, assuming you understood everything. And as way to composite that, they offer a "resource" links to help you understand.

Then some of them have "hard" accent, it's really difficult to follow them even for native speaker, yet alone for those whose English is second language.

Now exercise and assignments are spot on but you are forced to relay on other sources to grasp everything. I doubt anyone taking this course has not reached for "outer" help at least once.

By Sriram D

Jun 26, 2017

This course is good, challenging as well as relevant. It stresses more on how to classify any computer science problem and apply the appropriate technique( divide and conquer, greedy or dynamic programming). Learnt a lot from teachers. Some of the topics can be hard to understand but one should not give up. Listening to video multiple times, working out on a paper, may be referring a youtube video would definitely help to understand the concepts. Since the concepts are deep especially in dynamic programming, one may find it not very clear during the first attempt, but as I said one should apply himself a lot for the better outcome. At the end its a good course, please go ahead and take it.

By Madhuri K

Nov 10, 2017

I loved this study . Having busy working days ..its hard to sneak and decide how and where to get started with some challenging studies like Algorithms. This toolbox just gave me worth the money head start to algorithms.

The assignments are the highlight with lots of flexibility of choosing various programming language like ( java python haskell c cpp) to submit code in. Icing on the cake were the starter files.

I was overdue for assignments ( Oops !) but it was very helpful that coursera kept me on toes by sending timely reminder mails to not give up ! ( How cool is that !) . I value it !

Thank you team ! Special thanks to Mr.Alexander .

By Andrew B

Sep 5, 2016

Overall this was a good course. Some of the presenters need to work on their presentation skills (personally I had no problems with the accents). I also felt that the sections on dynamic programming seemed a bit rushed and I needed to spend a bit of time researching this on third parties before I felt comfortable completing the exercises.

The grading system was really cool and the exercises seemed well thought-out and thorough. I'd recommend this course to existing developers without a computer science background. Those who want more mathematical rigour should look into the Tim Roughgarden/Stanford course.

By Andrea

Oct 22, 2017

Excellent course with clear lecture and interesting hands on exercise. However, as fun of learning in a deep way the content I retain the number of hours as underestimation of the real commitment that is needed. In other words, a lesson of 10min video it might requires 1-2 hours of study just to truly understand the concept and also look for other resources to explore more detail of it. Done as at full time is achievable to finish the course in time with a great understanding. Excellent course to give you a guidance on what needed to be study as a base for future courses (my case "ML path")

By EJ M

Jul 11, 2017

It was overall a great course. The only problem is that it gets very dry at times and hard to pay attention when they explain very fine details of implementations. It can feel a lot like sitting in class with the instructor reading from a textbook. For sure, the Divide and Conquer needs a facelift. The videos focused on some pretty intense details and jumped all over the place.

Other than that the exercises are really awesome. They start you off with an average difficulty problem and provide some advanced level extra assignments if you want to really dive into that particular subject.

By Natraj n c

Jun 3, 2019

Without any doubt, I can say that the assignments are amazing! I 've never seen such good challenging assignments. You can only do them if you get the concepts. The lecture videos can be improved like explaining techniques of how to think to solve a particular coding problem. As assignments are in particular sections we are able to directly apply that concept but in the real world, it doesn't work like that. We have to think about which concept to apply to solve the problem(like divide and conquer, greedy approach, etc..). Anyway, this course is best to check your skills in coding!

By Naveen

Jun 17, 2019

People who like to learn by practicing would like this course. A variety of questions at different levels of difficulty are provided in the assignments, which reinforce the 'algorithmic thought process' that is taught in the lectures. The accent is sometimes hard to understand but subtitles are helpful.

To potential learners: Good understanding of recursion and basic data structures like array, vector (C++) will be quite helpful during the course. The estimated completion time on the course home page is probably 30 - 40% of the actual time taken to complete the course.

By Rika D

Dec 2, 2018

Really helped me with what I am terrible at - how to optimize my solution for runtime and memory. For context, I do not have any formal education in software development and am self-taught so the difficulty of this course was exactly what I needed. (Maybe someone with more education might feel that this class is easier and did not go in as depth.) Did not give this 5 stars because of how buggy the submission/solution checking software is (for BinarySearch, without changing the code, I got a different runtime with every submission, which either passed or failed)

By Danny Z

Jan 19, 2018

The contents on dynamic programming is not as easy to follow. I think the problem is that there are many symbols in the pseudo code. It is hard to follow the explanation while trying to figure out what each of these symbols means for the first time.

Other than this part, this is a great course. Some of the technics are really useful. The assignments have clear instructions, and some of the problems are quite challenging and pushes you to really understand the week's contents.

I would recommend this course for anyone feeling weak at algorithm.

By Mehrdad M

Apr 4, 2019

Some of the lectures was really bad and the instructor wasn't able to convey the context. I felt that I needed more illustration, example and intuition to get the idea so I had to go to other resources which to understand some topic which was really time consuming.

-The exercises were really good and help me to learn a lot.

-Some code stating skeleton were misleading

-I wrote my codes in C and it was really hard to implement exercises as some assignment required complex data structures such as dynamic sized arrays which C does't have

By UMANG T

Sep 13, 2020

The questions covered in the course were of good quality. The assignment problems were quite challenging as well. I'll definitely give a try to the ones I didn't solve. Also, puzzle-based learning was a great thing. However, the explanation of concepts could have been more detailed and clear. It felt sometimes like we are unable to imagine or relate to what they speak, and it starts from around Week 4 when the level of problems discussed was too high but very little time was given comparatively. Overall it was a Great Experience!

By Leslie C

Feb 3, 2023

Overall it is a good and challenging course that is programming-heavy. I really liked that we were given starter codes for the programs in a variety of languages. The slides could use some more detail about interpreting the pseudocode and the "instructors"/discussion board isn't responsive in a timely manner. The grading process could use improvement to provide better feedback to the users about failed test cases. It can be frustrating when the grading doesn't show the input/expected output when some of the test cases fail.

By Gregory H

Feb 4, 2020

Good amount of resources included to help learn the topics of the course. The estimated time to complete each week is quite misleading, however, at 5-8 hours per week. I ended up needing more like 10-15 to even pass most of the assignments as they are quite difficult. It's also frustrating that they are your only grade in the course as I often felt I had a good conceptual understanding of the algorithms presented but did not know some of the underlying mathematical concepts necessary to solve a lot of the problems.

By Pinaki B

Aug 14, 2020

This was an amazing course for someone with a very minimal background In DSA! I learned a ton not only about the solutions of common algorithmic problems, but additionally the process and thinking in order to come up with my own independent solutions. The only point of frustration for me was when a hidden test case caused me to debug for hours even though I would have learned just as much if given the test case. Overall though, this course is definitely recommended if you want to start your DSA journey.

By Kirill V

Jan 24, 2018

I did not know much about data structures when starting and had to figure them out by myself to complete assignments in the final two weeks of the course, which unfortunately took a very long time to figure out. It turns out that the relevant data structures (particularly tree lists/arrays) are in the next course and it would be good if I knew about this beforehand.

Otherwise, the course is very good and teaches how to think about problems to solve them and not only solve them with pre-made solutions.

By Anthony K

Dec 27, 2016

Lectures and quizzes are okay, assignments are great to make you think deeper about the topics. I have to agree with a lot of the other course takers that you get very little help from the teaching staffs. However, I do feel that the discussion forums are enough to help you through all of the programming tasks.

Programming assignments aren't really friendly to Haskell's list, and vectors are not available. If you use Haskell, you'll be forced to work with arrays or sequences, which are not as nice.

By João R

Nov 4, 2021

Pros:

Very nice concepts explained and the diversity in the assignments was amazing.

I think the concepts were better explained than when I first went to college 15 years ago.

Cons:

Week 5 needs some re work to make the materials match the other part of the course.

I'd also like some more focus into the theory in the assignments material as I felt that only in the first few weeks of the course did we get a grasp into why Big O notation is important (that was lost as soon as we hit Dynamic Programming).

By VISHAARAD B

May 20, 2020

Course content is good (the interactive puzzles,quizzes and assignments) but the explanations get worse as the course progresses. Especially the dynamic programming weeks, they are not explained very well but the examples done in those videos thankfully make some sense. Take the course realizing that you will have to seek other sources from time to time and strive hard to get it if you're new to this, but the questions and puzzles do end up making it worth your time, so decide accordingly.

By Philippe D

Nov 6, 2018

This is the Dark Souls of MOOCs. Tough but rewarding when you complete it. Easily one of the most beneficial courses I've taken on Coursera. In my opinion, it's up there with Andrew Ng's Machine Learning and Deep Learning courses. No fluff here, you have to really learn the material to pass. There are some small flaws in the course, material isn't always adequately covered. So definitely use the forums and outside texts and videos. Overall though, I would definitely recommend it.

By Mohammed M

Sep 6, 2020

It is very good course with very good material.

My negative point will be only on the last 2 weeks (dynamic programming) as the videos shall be more detailed with more examples for better understanding, I did not understand everything at the videos.

Positive points: Instructors are very good, the assignments is very challenging, however they are common problems.

Also the splitting of the content is very useful and helps a lot.

Thanks for the great effort!

By Pablo E M M

Aug 25, 2017

It's a great course i learnt many thing about algorithm, c++ and solving problem efficiently.

I began two week late this Course so, i decided to complete the minimum required in the homework; i thought in complete it after, in the final week, but the course finish when you get more than 60% of the course, i can't improve my califications :/. So my advise is try to finish the most quantity of the work before submit the last homework, and work hard.