A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this 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!...

May 24, 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!

Apr 06, 2018

Data Structures was really interesting over all, also assignments are quite challenging. It's important to consult the external references & discussion forums if you want to get the best of it.

篩選依據：

創建者 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.

創建者 Souvik R

•Oct 05, 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!

創建者 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.

創建者 Ivan K

•Jul 10, 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.

創建者 Aleksandr F

•Aug 29, 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!

創建者 Phat L

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

創建者 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"

創建者 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.

創建者 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.

創建者 Haoran G

•Oct 02, 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.

創建者 Madan K

•Jun 04, 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 .

創建者 Walid 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

創建者 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.

創建者 Christopher B

•Aug 02, 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!

創建者 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.

創建者 Shyama D

•Sep 04, 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!

創建者 Parthiban D

•Apr 25, 2018

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

•Nov 01, 2017

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

•Aug 18, 2016

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

•Feb 02, 2019

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

•Dec 05, 2016

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.

創建者 Andrey K

•Oct 19, 2018

Interesting and hard (but possible to solve) challenges. All necessary information to solve a problem can be found in the lectures. The theoretical part is minimal but enough to start solve advanced problems. That's why I love this course more than others ever!

創建者 Aditya R

•Mar 16, 2019

It is a must course for anyone who wants to excel in computer science field, and this course will help in every possible way from easy explanation of topics to effective assessment along with helpful discussions.

Thanks for creating such a wonderful course.

創建者 Shobhit G

•Sep 12, 2016

Lots to learn and it's fun to learn from different teachers. Very heavy (and high quality) course if one wants to do proper justice to all the materials presented (especially hashing and trees... Week 3 onwards). A worthy investment . Enjoyed it immensely.

創建者 Mohammad K A

•Sep 05, 2016

Nice course, It was bit difficult for me. I think I will have to go over the few lectures again soon. Problems were very cool, these took lots of hour head down. Thanks all lecturers, specially Daniel M Kane and Alexander S. Kulikov. Loved your lectures.