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

2016年5月23日

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

2020年7月9日

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.

篩選依據：

創建者 Akash P

•2020年6月28日

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!

創建者 HERNANDEZ B M I

•2020年11月14日

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.

創建者 Aleksandr F

•2016年8月28日

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!

創建者 Phat l t

•2017年5月21日

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.

創建者 Dheepak J

•2019年3月14日

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"

創建者 Imaani E

•2017年1月22日

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.

創建者 Subhaprada C

•2017年8月11日

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.

創建者 Haoran G

•2017年10月2日

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.

創建者 Advaith G

•2020年8月7日

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.

創建者 Madan K

•2016年6月4日

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 .

創建者 Mohamed S

•2021年10月24日

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.

創建者 RAJESH M

•2020年5月23日

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!

創建者 Waleed O

•2017年7月24日

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

創建者 Andrew J

•2017年5月21日

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.

創建者 Christopher B

•2016年8月2日

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!

創建者 Madhusudhan S

•2018年1月11日

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.

創建者 Shyama D

•2016年9月3日

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!

創建者 Ardak K

•2021年4月26日

One of the best courses on Data Structures. I am learning a lot in this specialization. Though, some of the videos could be better in terms of presenters. Some of the presenters seem to just read of paper without really understanding the context. But anyway, it is really valuable course.

創建者 Anurag S

•2020年4月9日

Amazing explanation of Queue, Hashing, Disjoint-set, Dynamic Array, etc. with their basic operations. An amazing way of IP address representation I learned in Hashing I paste the IP in a single decimal digit in my browser of some website with "http://<single decimal IP>" it's working.

創建者 Milind P

•2020年10月25日

The course is excellent. I learnt a lot from it, and would continue to learn even after receiving certificate.

One small suggestion : It would be great if we can get the actual test case for which our program has failed. It would help in debugging.

Thanks a lot for excellent experience.

創建者 Parthiban D

•2018年4月24日

As every other course on this series the programming assignments are excellent. I ignore lectures and go directly to the assignments. The lecture are very monotonous in tone. Its really hard to understand the accent. I usually learn topics elsewhere and attempt the assignments here.

創建者 Fabrice L

•2017年11月1日

Very interesting class, I learned a lot, about implementation and real life applications.

Like the previous class, there is many assignments to practice, so I really recommend to pick up a programming language that you are comfortable with, if you want to move forward at a good pace.

創建者 Kevin K

•2016年8月17日

Personally, this course is interesting and essential for the learner to proceed to other more advanced courses, either within this specialisation or not. There is only one suggestion that it will be better if the instructors can provide more details of the pseudo codes.

創建者 Satish K P

•2019年2月2日

This course provides very good insights into data structures. The instructors are very good and gave concise and clear explanations for all the concepts. I have enjoyed working on all the assignments. The were challenging and made me apply all the concepts I learned .

創建者 Vasilii G

•2016年12月4日

Really liked this course - it is a comprehensive overview of basic data structures. Programming assignments are mostly to implement some data structure and use it to solve problem, but there are some challenging advanced tasks, which it was very interesting to do.