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!

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.

篩選依據：

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

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

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

創建者 Anurag S

•Apr 09, 2020

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.

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

創建者 Michael B

•May 29, 2016

Similar to the first course in this Specialization, a great course on algorithms and their applications. Frustrating at times, but I definitely recommend this course (and the others) if you are serious about implementing algorithms for whatever purpose.

創建者 Nguyen M H

•Dec 19, 2017

I appreciate the fact that our lecturer put a lot of efforts in Practice case study and Coding practice along with most of the theories covered. This is one of the best course I've learned, which help me to understand and "digest" things in easy ways.

創建者 MD A H Z

•May 17, 2018

This is a great course to learn Data Structures. All the course materials are very helpful and easy to learn. The instructors are very focused with the content; they explained every topic very clearly and easily. I have learnt a lot from this course.

創建者 Saveliy B

•May 02, 2016

Great course, hard and challenging.

Couple comments.

Please use pen during lectures easier to follow and understand .

Some assignments require more then 8 hours to complete so please add to description of the course

(don't make assignment easier)

創建者 David G

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

創建者 Martynas Š

•May 27, 2018

It is a great course. But it would save a lot of time, if we could actually see errors of our submissions. Checking if your algorithm is working correctly (output wise), when you actually have a stack overflow on some test is very frustrating.

創建者 Pradyumn A

•Jan 03, 2019

This course helped me clear a lot of doubts as well as it introduced me to many useful things with their implementation. I must say this course is one of the best courses available on Coursera. Thanks to great instructors who helped me a lot.

創建者 Ray S

•Apr 13, 2016

Clear presentation of basic data structures with non-trivial applications. Material is presented very well for beginning coding or as a review. Online grading is better than many programming courses. Works well as a stand alone course.