Chevron Left
Back to Data Structures

Learner Reviews & Feedback for Data Structures by University of California San Diego

4.6
stars
5,350 ratings

About the Course

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this online course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures. A few examples of questions that we are going to cover in this class are the following: 1. What is a good strategy of resizing a dynamic array? 2. How priority queues are implemented in C++, Java, and Python? 3. How to implement a hash table so that the amortized running time of all operations is O(1) on average? 4. What are good strategies to keep a binary tree balanced? You will also learn how services like Dropbox manage to upload some large files instantly and to save a lot of storage space!...

Top reviews

DG

May 23, 2016

I like this course very much! Rope is the cleverest task I have ever done! Of course, I hope in future I will work on even more difficult problems, but this is pretty good already for me as a student!

PS

Jul 9, 2020

I think the course content and assignments were great. A suggestion though, it will be more helpful if there are more and varied corner cases that would save time spent in thinking and making cases.

Filter by:

26 - 50 of 901 Reviews for Data Structures

By Сергей С

Mar 2, 2019

It was difficult in using of pseudocode in my code

By Nakul C

Jan 7, 2020

Its not an Good Course. No indepth details are provided. More focus is laid down on making videos short. There is no Explanation in this course, definitely not for beginner.

By David G

May 2, 2020

State-of-the-art programming techniques with detailed explanation of methodologies and why they are more efficient than basic solutions. Difficulty of the programming assignments ranges from easy practice exercises to really challenging problems.

By Prashant S

Jul 10, 2020

I think the course content and assignments were great. A suggestion though, it will be more helpful if there are more and varied corner cases that would save time spent in thinking and making cases.

By Adel F

Dec 11, 2018

Lots of fun problems to solve. To get the most of this course, solve every single problem. Good content, not enough sample problem on tree.

By Viswanath B

Dec 27, 2019

Good explanation and problems to practice. Assignments will drive you to complete them, rather than just theory.

By Cameron H

Mar 11, 2019

Excellent course. Great coverage of data structures. Good practice questions and explanatory videos.

By Sojitra k d

Aug 1, 2020

i am very glad for this course and very inspired thank you for this review

By Himanshu P I S

Jun 19, 2020

one of the best course

By Giorgio B

Sep 23, 2020

Interesting topics, great assignments except for last one. Was too hard yes (I like this), but the test response is not always clear. If there is an overflow I should read "overflow" but sometimes, as your manual says, overflow could show "wrong answer". And this is not fair, as when the problem is hard we need to understand if the answer is wrong or it causes overflow. You could say this enforces students to think and think and think until they solve it. I've used 2 week for the entire course and 2 weeks for the last one exercise.... this is a bit stressful.

By Stephen T

May 15, 2016

The course has excellent homework to help you study, but the course itself sometimes doesn't cover more generally applied knowledge such as red-black BST. Also, the professors' teaching style may be confusing sometimes and require extra work to understand, especially when they didn't have a pen in hand and were just talking quickly to the air. I do hope the following series will eventually tackle these issues, and I'll be glad to give the whole series 5 stars.

By Sumit K

Sep 7, 2019

Should explain more and the content became boring sometime.

By Zsolt S

Jul 25, 2016

All in all a great and challenging course. A big thank you to all the teachers! I especially liked the assignments as completing them forced me to think about all the little details and edge cases.

A few observations/constructive criticisms:

- While the first 3 weeks had almost everything explained rigorously, including complete, usable pseudo codes, the last 2 weeks had lots of holes in terms of details. I think it is down to the fact that it covered a lot, however, pseudo codes suddenly became very high level, to the point where a 5 liner translated to ~100 lines of real code. This in terms meant that learners had to do quite a bit of additional research about the nitty-gritty. Nevertheless I thoroughly enjoyed this extra research, just be mindful about the extra time required.

- There are languages with first class support, namely C++, Java and Python3, which means there are starter files supplied. If you choose a different, supported language then be prepared that you have to implement everything from scratch, which again mean extra time, although I would argue that you will learn more, especially in the last 2 weeks.

- Forums seemed to be more active in the past, especially with regards to teacher contribution. Be prepared to be self-reliant and able to come up with answers to your own questions.

By Jimmy B

Sep 17, 2016

I found the assignments challenging in the absolute best sense of the term, and therefore incredibly rewarding as well! Whenever I've gotten stuck, the answer was always in the course material somewhere, even if I didn't see it there at first. The discussion forums were extremely helpful, and I was astounded to see that that instructors were still actively monitoring the discussion forums and responding to student questions. I'm obviously not an expert in this field, but I've been an educator before, and my own impression of the assignments was that they were extremely well designed: it was impossible to pass them without knowing what you were doing, the tools to approach them were always found in the lectures, and the challenge problems pushed your knowledge even farther. I would recommend the specialization to everyone. Additionally, I noticed that the content aligns well with other DS&A syllabi I have seen in brick-and-mortar institutions, especially the first 3 or 4 courses. It's also a very nice luxury to be able to submit in Python. I have certainly learned a great deal.

By Sergey L

May 14, 2016

I always wanted to improve the algorithms and data structures field. The books wasn't so efficient. Especially they weren't so practical. These courses are the first courses where I really got a lot of knowledge. Especially because of assignments. All lectors are very good in explanation of the material and tell many additional useful things. These courses are the really good base, after which you can open the books related to algorithms and read more details if you needed.

I am definitely going to complete the whole specialization!

The only thing which was not convenient for me is that both courses Algorithmic Toolbox and Data Structures are started at the same time. It was difficult to find out the time for both courses and spend enough time to solve all assignments instead of only enough for passing.

Anyway, now I am started the second iteration of the course and I am going to solve all assignments which I skipped.

Big thanks to Daniel, Alex, Pavel, Neil and Mike!

Regards,

Sergey

By Theodore G

Nov 6, 2016

Congratulations for this second course of the "Data Structures and Algorithms Specialization". This was again well-designed, informative, and most importantly an extremely educative course. Yes, it is demanding and some times requires significant effort and time for someone to pass the programming assignments. But there is "no free lunch"! Making easy to pass the tests or providing all the test cases may help more people to earn this certification, but the added value of a course that can really learn you how to design better algorithms will be missing. On the downside, I would ask from the instructors to further elaborate on some week lectures (modules), especially if the topic is going to be discussed in the corresponding programming assignments. The problem with the splay trees is probably characteristic. Overall, well done! Many thanks for the quality of the course you provide! Keep up the good work!

By Sylvain L

Apr 10, 2016

A really great course that deliver exactly its promises : a college-grade algorithmic course.

If you are looking to know all about classical data structures (arrays, lists, trees, heaps, ...) used in every program, this is the course for you. And if you are not interested in those topics ... well, you should !

Or course, this is a challenging course by it abstract nature. But with some work, the support of the instructors and of your peers, you will overcome the difficulties. After that with your newly gained knowledge, you will be able to choose the right data structure for your needs or implement it efficiently in the language of your choice.

Worth mentioning the course is language-agnostic -- and the assignment may be submitted in C, C++, Java or Python.

By Malcolm B

Dec 4, 2022

Very well done material. The homework problems are very challenging but the course adequately equips you with the necessary knowledge to dive in, and with a bit of research at times, deduce the correct answer to the problem. This course has improved my skills in building out good stress tests that help sniff out edge conditions not accounted for. Also, this course has improved my problem solving skills to be able to determine a condition not previously considered. I highly recommend referencing the forums when stuck on a problem. This has helped get me pointed in the right direction numerous times. In short, this course has really helped me grasp the data structure concepts more than my previous study attempts. I highly recommend taking this course.

By Pablo E M M

Sep 6, 2017

this is my second course that I have taken. I learned many things this course is more difficult than algorithmic toolbox but when you work hard you can finish all units

in the beginning i thought that i would not be able to continue because i dont have a lot of knowledge in c+, java or python, but i decided to learn c+ sonce the first course. these coursed were very difficult but i could finish then and this is all because of the professors whom were excellent and the challenging homework.

Thanks to everyone that has dedicated there time and resources to mke this wonderful course, I appreciate it a lot

By Sanskar

Dec 14, 2018

I really enjoyed learning stacks, queues, hash, heap, trees etc in this course. the videos and slides are very practical and informative with large no. of figures which really helped me in understanding how a particular algorithm is working and how it is efficient. every quiz contains very good conceptual questions related to a particular topic. some of them are tricky . each question has its own flavor and it really helped me to clear my doubts. Completing an assignment is really a challenge and i felt good each time when i passed a particular assignment.

By Lucas L

Dec 29, 2020

I really liked the course. I wanted to take a course on data structures for a long time, and this course was everything that I expected and more. All data structures are explained in detail, as are their running times. The instructors presented the proofs for all theorems and lemmas. Furthermore, the programming assignments were fun and quite challenging sometimes. Some quizzes were also quite challenging. But it all contributed to the learning experience. Looking forward, I feel very confident to use these data structures in my programs now.

By chaman

Apr 1, 2023

The strengths of this course is its emphasis on problem-solving and algorithm design. The course covers a range of classic problems and algorithms and provides step-by-step explanations of how to solve them. The course also includes programming assignments that allow students to apply what they've learned to real-world problems.

The instructors of the course are highly knowledgeable and experienced in the field of data structures. They provide clear explanations and helpful examples, making the course easy to follow and understand.

By Vlad N

May 7, 2018

Really good course to understand implementation details and analysis of the most used data structures, both basic and advanced. The explanations are awesome accompanied by challenging problems to solidify your knowledge. I'd definitely recommend this course to anybody who's looking to improve their problem-solving skills, getting ready for coding interview or just want clear explanations of some of the core data structures concepts in computer science. I really enjoyed this course, thank you everybody for putting it all together!

By Gaurav V

Feb 13, 2020

I thought having done Algorithmic Design with much difficulty Data Structures would be a bit easier. To my surprise this one proved to be a tough one.

But having gone through the grind, I feel happy and satisfied to have done this course and feel enthusiastic about pursuing the specialization further. This is far more effective way of learning and understand the concepts covered than going through books and/or videos alone.

The assignments are the real things in these courses. That's where the real learning happens.

By Said F G

Jul 30, 2023

Congratulations! Nice training. And I would like just to make one sugestion for next time: while recording videos, pay atention to the position of subtitles, they are overwriting content and makes a little bit more dificult to enjoy the video.

Parabéns! Ótimo treinamento. E eu gostaria de fazer apenas uma sugestão para a próxima oportunidade: ao gravar a aula, atentem-se para a posição das legendas, elas estão sobrepondo o conteúdo, tornando um pouquinho mais difícil de aproveitar bem o vídeo.