Save for later

Data Structures

Data Structures and Algorithms,

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!

Get Details and Enroll Now

OpenCourser is an affiliate partner of Coursera and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.5 based on 398 ratings
Length 7 weeks
Effort 4 weeks of study, 5-10 hours/week
Starts Jun 26 (44 weeks ago)
Cost $79
From University of California San Diego, National Research University Higher School of Economics, HSE University via Coursera
Instructors Alexander S. Kulikov, Michael Levin, Daniel M Kane, Neil Rhodes
Download Videos On all desktop and mobile devices
Language English
Subjects Programming Data Science
Tags Computer Science Data Science Data Analysis Algorithms

Get a Reminder

Send to:

Similar Courses

What people are saying

splay trees

It's a pretty big jump in difficulty (I don't think they explained splay trees in the lectures very well; it was pretty fast), but I was so ecstatic when I solved it that I didn't mind.

The problem with the splay trees is probably characteristic.

Course is Excellent.The final week is a bit fast, understanding the splay was very difficult for me.Could have given more examples for splay trees.

As for the problems, they were the main source of learning, but were also at times a bit frustrating (the splay trees starter code was rather sad to look at).

The only frustrating thing was Week 6's programming assignment, where the advanced problems were hard, and so I think there should've been more elaborate coverage of splay trees so that students could understand them better.

In the end, I had to drop his lectures and find another source to study splay trees(which just kills the motive of taking this course) and solve the questions.

In consequent Week 6 we cover Splay trees and get 5 problems as home assignment.

Then, there are remaining two problems that only cover Splay trees (as far as I understand).

Perfect course for learning more about fundamental data structures, except for presentations on few difficult topics like splay trees, where explanations can be made more elaborate!

It will be good you mention red-black tree segment and interval trees B and B+ trees Some algorithms validations do not work properly :/ Even though I am already aware of all these data structures, I gained some more in-depth knowledge about them, also got introduced to splay trees.

disjoint sets, splay trees, Rabin-Karp algorithm).

Read more

very good course

Very good course, only problem is the little help offered by mentors in the discussion forum I learned a lot many subtitle of the video doesn't match what the speaker is saying, so I hope you can improve it,thx Perhaps the videos on AVL Trees (Rotations basically) and Splay Trees can be enhanced to give a more thorough grounding.

Very good course for data structures, especially the assignments and the auto-grader.

Very good course Wow.

This is a very good course.

A very good course that is suitable to young student The quality of the course is very high.

Very good course.

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

Very good course!

Very Good Course.

Overall though, this is a very good course, I found myself enjoying hashing and trees units the most.

well you have to have some basic knowledge of the programming languages like python, c++, java for the programming assignments.Very good course for intermediate level.

Read more

last two weeks

The last two weeks are all about balanced BSTs and there's only one assignment (with three problems) covering them which has stated expected time for completion 25 hours.

Another good course, though the last two weeks were a lot harder to follow than the prior ones.

The last two weeks on AVL and Splay trees need more examples and felt a bit rushed.

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!

The last two weeks felt rushed.

best course for algorithm The last two weeks' content may need to be revised to provide a better learning experience.

Read more

basic data structures

It is a very good course to clear basic data structures.

The course covered important data structures and gave an insight on how to counter challenging algorithmic problem through step by step analysis from a very simple approach through slowly and steadily approaching towards better performing algorithms .This gradual rise from a learner's perspective is priceless and helps in better proficiency of the topic.Week 1 taught us basic data structures such as arrays,linked list,stacks and queues and there applications while solving problems on network processing through representing the packets in the form of queues , proper parenthesization of algebraic expressions through an application of stack and representation of tree upside down which we see everywhere in computer science as well as finding the height of a n-ary tree.Week 2 represented very common data structure used in almost any production system's source code the Array List and its time analysis through a new method called amortized time which was analyzed through banker's method,physicist method and the aggregate method .Week 3 described some pretty fast data structures whose mere usage can increase performance considerably such as priority queues whose representation are binary heaps and have special characteristics of Sifting up and Sifting down to maintain the classic heap property and it introduces a very fast sorting algorithm called heap sort.And this was not it another data structure was introduced which is called the disjoint set ( Union find) which made finding paths in very large graphical systems just a formality.The best part of this data structure remained integral to the characteristic of the course to find the efficient solution gradually but definitely as it showed which finding the union find function first through representing as arrays and assigning the parents as indexes and slowly finding the problem in arrays to go through tree representation as a necessity not just because every one has done it.Then came the fourth week and a learner's performance seeking mindset was in full throttle whether it be hash tables,hash functions or distributed hash tables used by Google Drive, Yandex Disk or Drop box there was no way stopping it and thus whole week showed how much can be achieved through hash table representation of data on which these companies integral technologies are based on.On a personal note I also saw the representation of distributed hash tables in Akamai's cloud distributed networks.The week 5 dig deeper into Binary Search Trees and there representation as well as there height were subject to scrutiny with the several applications such as AVL trees as well as Splay Trees all showed certain characteristics of height balancing which are very useful in caching and thus were considered as assignment to have a look and feel of big classes and using methods such as merge and split to get fast retrieval.Thus performance oriented mind set was explored to the fullest through playing of these data structure and applying them on real life scenarios.

Very useful basic data structures, interesting assignments closely related to the course.

Regards,Marcin Clear presentation of basic data structures with non-trivial applications.

Good explanation of basic data structures love it An excellent course with perfect videos, quizzes, and assignments.

学到很多东西,但是有的算法不会写,会卡很久,也不知道自己写的漂亮不漂亮 Amazing course.Interesting exercises help with learning and understanding of internal mechanisms basic data structures, how some of them work, the pros and cons of each.Thanks!

Read more

algorithmic toolbox

Continues with the rigor and learning approach from the previous course, Algorithmic Toolbox, and builds upon it.

Interesting, challenging and just like the algorithmic toolbox course a FANTASTIC way to practise implementing solutions in a programming language of your choice.

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.

A really great course, you should definitely take this second after Algorithmic Toolbox, as that has an easier learning curve for the very 'CS professor' style code (lots of single letter variables and other quirks) and how projects should be submitted and tested.That said, there is a lot of good learning in this course.

[Slightly updated according to Michael's questions]The course is fine, but comparing to the previous one - Algorithmic Toolbox - this one is weaker and with lesser quality.

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.

Also, the testing techniques presented here are indispensable in the real life, and many learners of the Algorithmic Toolbox course have already confirmed thisHello Mr. Levin,First please forgive me for communicating with you in this place.

Much like Algorithmic Toolbox, this course helped fill in a lot of knowledge that I need to stay advantageous in the engineering field.

Effective course Awesome Great continuation of the Algorithmic toolbox course.

Read more

binary search

Starts from the basic structures: arrays, linked lists, trees, etc., and then goes to more advanced ones: priority queues, hash tables and balanced binary search trees (in particular AVL and splay „flavours“).

This course would be better structured with three assignments as follows: 1) tree order problem, 2) a simpler tree assignment that only deals with a basic binary search tree, 3) the set range sum problem implementing the splay tree, as an advanced problem.

For example, after a huge Week 5 where we cover: search trees, binary search trees, AVL trees and all operations on these trees - there was no home assignment!

The first three problems have practically the same solution, you only need a few adjustments and these problems are on binary search tree properties (not AVL or any in particular).

Binary search trees lectures should be improved.

But Binary Search Trees are splitted into 2 weeks with the same hours.

Many info to absorb Binary search trees were not explained very well.

Had a little difficulty in following binary search trees because of the pace of the course and lacking detailed explanation at places.

Read more

test cases

I understand the reasoning behind not releasing test cases in failing tests, but like me - a lot of people keep submitting and failing, and in the end getting discouraged .

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.

Really enjoy the addition of support material and test cases for the difficult problems.

The fact that test cases are not available is extremely frustrating and time consuming.

I absolutely disagree with the instructors about the reason why test cases are hidden.

Having generated tons of test cases I was nowhere closer as all looked good, but still failed your engine.

But I don't think first 3 assigments is hard I wish every assignment had the test casesThe course is awesome anyways and focuses on more than just grades.

Test cases are pretty impressive.

The course is good for the beginner it makes the programmer to think all the test cases but instead there should be more no of questions as a part of programming assignment.

Read more

search trees

hash tables

Very Good explanations about hash tables.

In general the course is well explained, but the guy who explains about hash tables needs to provide further explanations or resources.

Read more

too fast

I just think the last week is too fast and concise, I would like some additional work about trees and for many users could be a problem, otherwise will be a 5 stars without any doubt, though for me this course worked very well.

VERY GOOD Pros:Effort has been taken in putting up the assignments.Cons:Quality of teaching is very poor and too fast to follow through .

the last lecture was too fast.

Great course although last lesson about splay trees explanation is too fast and basic for me to understand.

Read more

rather than

With so many splitting, inserting, merging and deleting, I was hoping for some animation on the slides in the video rather than the presenters simply waving their hands.

and you'll do well.In response to a very politely asked request for clarity: I rated this 4/5 rather than 5/5 stars as I found that for my preferred language (Python) some of the starter files were very poorly created.

Nice introductory course to data structures Good introduction to data structures - with a focus on the implementation rather than using premade libraries.

Read more

my opinion

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.

And since these problems are not necessary to complete it is really hard to motivate yourself to keep trying to submit them considering that it may take hours to find a bug in a huge (comparing to other assignments) chunk of code.Overall, I find this course very useful, but comparing to Algorithm Toolbox the self-study section really suffered and two MAJOR topics were given to one not so good (in my opinion) lecturer.

Their explanation weren't the best, at least in my opinion.

Read more

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Structures/Bridge $81k

Structures Technician 1 $81k

Associate Structures Engineering $83k

Structures Designer $85k

Structures CADD $91k

Structures Mech $94k

Aircraft Structures $96k

Structures Foreman $98k

Engineer of Structures $100k

Structures Engineer 1 2 $103k

Product Engineer - Structures $115k

Structures Estimator Manager $127k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.5 based on 398 ratings
Length 7 weeks
Effort 4 weeks of study, 5-10 hours/week
Starts Jun 26 (44 weeks ago)
Cost $79
From University of California San Diego, National Research University Higher School of Economics, HSE University via Coursera
Instructors Alexander S. Kulikov, Michael Levin, Daniel M Kane, Neil Rhodes
Download Videos On all desktop and mobile devices
Language English
Subjects Programming Data Science
Tags Computer Science Data Science Data Analysis Algorithms

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now