Back to Data Structures

stars

5,375 ratings

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

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:

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.

By Souvik R

•Oct 5, 2017

This course gives you real world examples of the data structures that you are going to learn and implement and and this really helps in answering the basic question "Why am I doing for what am I doing?". The programming questions are challenging and solving it actually helps you understand every aspect of the data structure that you are applying to the question.

Overall this course has improved my understanding of data structures and also where to apply it.Wonderful work by the instructors!

By Dennis S

•Jun 10, 2016

Recently the instructors updated the course and implemented a solution to all my past complains.

In my opinion the team is really taking the quality serious.

However I just want to mention, that there are regular session for each course so that everybody can avoid having two overlapping courses in this specialization at the same time.

I did not know that and worked on two courses at the same time, until the instructor informed me about the short interval between sessions of a given course.

By Ananth D

•May 2, 2020

This course covers all possible data structures, what was need of those data structures, how could they be implemented and what is time complexity of such implementation. Also, the programming assignment problems were very challenging, some even taking 2 to 3 days of time to solve. I wish after the course is completed Professors could provide solutions to all problems, since it is difficult to find answers to every assignment problem.

By Taranpreet s

•Jul 22, 2020

All topics are explained with clarity, provides more conceptual depth than the first one. Quizes are useless, as you will pass them by hit and trail in 2-3 attempts. Programming assignments are where the actual learning happens. . One minor change that can be helpful is giving fractional score. For instance if you are not able to pass some problem due to memory constraints, some score should be given so that one can move forward.

By André B

•Oct 14, 2021

Although being a hard course, specially during Hashing and Binary Search Tree, I have found it to be a challenge to really try to understand the concepts behind the data structures without looking for answers in the internet. The assignments are hard and may take days to really understand your mistakes, but in my opinion they represent how hard it would be to encounter these problems in real life.

By Ivan K

•Jul 9, 2017

Thanks for the great course! Giving it a five stars. Although, the programming assignment for the last week could be better. Instead of implementing the same in-order tree-traversing three times with minor variations (first time as requested, second time to test if a given tree is a BST, and a "hard BST" variance), would be better to include tasks on implementing balancing and splaying a tree.

By Akash P

•Jun 28, 2020

The course is detailed, challenging and practical. Unlike a lot of other MOOCs which dilute the rigor of the course way below university standards, this course has coding assignments, which if done honestly, will definitely help anyone REALLY understand the intricacies behind all the data structures and algorithms that we are taught. I recommend this course to a lot of my friends too!

By HERNANDEZ B M I

•Nov 14, 2020

Excellent course, I learnt a lot.

The programming assignments are really challenging, so assume the course to take way longer than the estimated amount.

If you still decide to go through with it, the lectures are great, and the subjects are really interesting.

I'm amazed at the solutions past programmers have found to such complex problems as the ones presented throughout the course.

By Alexandr F

•Aug 28, 2016

Great course! As soon as you'll understand how the splay tree works and use a hint from the assignment, the rope problem (the best so far) will no longer be a problem. The course could have been improved though by giving a brief overview of B-trees and Red-Black trees. Anyways, thanks to all the instructors for their hard work and good luck to the all the learners!

By Phat l t

•May 21, 2017

This course helps me fully understand how hash is implemented in most programming languages. How to build something like dropbox.... The Rope data structure is the most challenge I've met for a long time. Many thanks to creators help me get a chance to understand Rope data structure, then I can understand what Xi- text editor platform that Google is writing about.

By Patrick G

•Sep 9, 2023

Great class - it was worth it to learn about pre-allocating arrays and amortized runtimes alone, and that was only the first couple of weeks! I am using this specialization to prepare for graduate school (we have a required algorithms and data structures class), and it also helps with technical interviews, so I look forward to continuing on in the specialization!

By Dheepak J

•Mar 14, 2019

A) An eye opener course in my regards which is really well curated and organized.

B) I had gone had to learn a good deal of knowledge and software wisdom from this course that I highly RECOMMEND this to others.

C) Enroll into it and try to finish the assignments on time and I am sure you will end up seeing the results yourself...

" Well Done San Diego team"

By Imaani E

•Jan 22, 2017

Great course - the homework problems were really helpful for cementing concepts. However, I did feel that the difficulty of the homework problems did not increase with the progress of the course. I think that it would have been very reasonable to increase the difficulty of the homework assignments as the course progressed. Otherwise, great overall course.

By Subhaprada C

•Aug 11, 2017

I think this is one of the best courses out there in terms of the rigour as well as the quality of the content. The instructors take great care to actually explain how the data structures work internally, complete with mathematical proofs wherever necessary. The assignments are also very good and help to solidify the understanding of the concepts.

By Haoran G

•Oct 2, 2017

An excellent course for those who is willing to learn basic concepts and practice their programming skills in data structures. Students would learn a lot after finishing the assignments. More over, slides provided are extremely clear and helpful.

However, it seems that the forum is not active, most questions and answers were posted months ago.

By Advaith G

•Aug 7, 2020

One of the best courses I've taken so far. I had to complete it extremely quickly because I had no time to do it and it was a really good experience. The intense programming assignments and amazing explanations were really enjoyable. After so long not programming properly, I spent an entire day at my laptop for these assignments and loved it.

By Madan K

•Jun 3, 2016

Really awesome Course , Must take it as a software Engineer and if you have already learned these things , It will open your eyes and make you correct your mistakes.

Simple explanations in videos and covering all intermediate data structures.

Problems are also good companion to the course content and allowing us to implement in many languages .

By Mohamed S

•Oct 24, 2021

It was a great course and I've learned a lot. I've voted 5 stars because it is the maximum number. professional Instructors and they know how things work, English is very clear and understandable. This course worth the effort and time that you'll spend on it. Thanks Coursera and University of California San Diego for such a great course.

By RAJESH M

•May 23, 2020

Excellent course. Actually my university can not complete Data Structure Due to this COVID-19. But this course has given the perfect opportunity to acquire the knowledge of Data Structures and Algorithms. The problems were a bit challenging but I enjoyed it a lot. I would recommend everyone do this course who loves programming. Thanks!

By Waleed O

•Jul 24, 2017

really good course , advanced problems will improve your skills to think and use the data structure , although it is obvious where to think as it is application on the week lesson so maybe if the problems are more general will be better.

still , this course improved my skill to implement data structure and understand it deeply . thanks

By Andrew J

•May 21, 2017

A thorough course covering many fundamental data structures and some very impressive applications.

The assignments are challenging but extremely satisfying. I especially enjoyed implementing a rolling hash and working with binary trees.

It covered more material in depth than my data structures university subject.

By Christopher B

•Aug 2, 2016

A very good course if you want to learn how we organize data in such a way that we can perform specific operations with low computing cost. This course is language agnostic so it becomes more about learning the fundamental structures and less about troubleshooting the language you use. Very good course!

By Madhusudhan S

•Jan 11, 2018

Perhaps the videos on AVL Trees (Rotations basically) and Splay Trees can be enhanced to give a more thorough grounding. I had to refer to many sources to get the concepts grilled into my head. But it has been an awesome experience so far in this specialization. Kudos to the team behind this.

By Shyama D

•Sep 3, 2016

Helped summarize the basics for a newbie like me. Glad I took it :) Recommended.

Although, I do recommend some more material on the last two weeks - I loved the concepts that were taught, but I feel there could have been more lectures on BST applications, given how powerful they are!

Thanks!