Voltar para estrutura de dadosestrutura de dados

estrelas

5,137 classificações

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

23 de mai de 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

9 de jul de 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.

Filtrar por:

por Marcin W

•15 de abr de 2016

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.

Michael Levin

Hi,

Learning new complex things is time consuming, it is essential, and it is ok. Without this time spent you wouldn't have learned even half of what you've learned while trying to find your mistakes yourself. Also, the testing techniques presented here are indispensable in the real life, and many learners of the Algorithmic Toolbox course have already confirmed this

Hello Mr. Levin,

First please forgive me for communicating with you in this place. I am not sure if there is a direct way to answer you, but I believe you will have access to my response.

I entirely agree with what you said that this needs time and I do not mind spending time learning new things. That is why I am here in the first place. But I think that hiding the test sets misplaces the balance where this time is being spend.

Let me give you an example: week 3 – hash chains - assignment no. 2. I wrote the app, submitted this and it failed on test no. 5. Having generated tons of test cases I was nowhere closer as all looked good, but still failed your engine. As it turned out the problem was not with the algorithm implemented but with the presentation layer. ‘Check x’ command when x is not found in the hash table should return blank line and my program returned nothing. I could not find this in the specification hence lots of hours trying to figure out the solution.

It was not a bug with the program, it was the problem how the data is presented. I do not mind spending time developing solutions to the assignments. I would love if there were more advanced (even optional) problems to solve but I want to spend this time on the algorithm and solving the task rather than trying to figure out how to display the data.

Please, do not get me wrong, I absolutely adore the course, lectures are brilliant and my opinion should be regarded as a constructive criticism even if you do not agree with me. Thank you again for what you are doing.

Regards,

Marcin

por Abhilash S

•23 de nov de 2019

The lectures and the reading material were great. The assignments are challenging and require thought before attempting. The forums were really useful when I got stuck with the assignments

por KATHALOLU S L

•5 de set de 2020

one of the best course i have ever taken on any platform.

i love to learn on coursera platform.

coursera makes one to think fro solution.

after completion of course one feel satisfied.

por Sharanya G

•27 de out de 2019

I found the course a little tough, but it's worth the effort. It takes more time than mentioned. Apart from that, it is actually good and covers most of the topics required for interviews.

por Fatvvs F

•9 de jul de 2020

The parts about hashing and balanced trees are bad:

1. The part about Balanced trees is completely terrible:

1.1 All the materials about rb-trees is one little article with links, no lectures and no tasks about rb-trees. But there's a detailed explanation of AVL trees. That's strange because rb-tree is a popular data structure: data bases, programming languages. And I can't give any real area where AVL trees are used in.

1.2 Quality of material about AVL trees is very bad. Author hasn't given implementation of RebalanceLeft(N) in video "AVL Tree Implementation". Explanation of tree rotation is worse than wikipedia article about AVL trees.

2. The part about Hashing is worse than I expected:

2.1 Authors described only simple rehashing. Nothing about more advanced rehashing, for example rehashing in real-time systems.

2.2 Nothin about more advanced methods of collision resolution. For example in HashMap of Java a chain with length more than 8 becomes a red-black tree.

2.3. Proof about probability of collision was confusing, Cormen's book helped me to understand the proof.

por Алексей И Л

•14 de abr de 2017

Algorithms in lectures were useless to programming assignment

por Deleted A

•5 de abr de 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.

por SUBHRATAVA M

•3 de jun de 2020

we need more of kulikov!!!

por Greg G

•9 de jun de 2019

Great continuation of the Algorithmic toolbox course. There's a lot of new, interesting material here. The videos are very good, the slides are of high quality, and you will also find some good references to online university materials and interactive visualizations.

The homeworks are challenging but enjoyable, and you will also find some really challenging optional assignments here.

The only downside of the course is that unless your friends are computer scientists, you're going to lose them if you talk too much to them about AVL trees, distributed hash tables and splay trees! ☺

Even some programmers/coders scoff at these things, but as a programmer I'm certain that you will become a better at your job if you learn these.

Can't wait to start the next course in the specialization!

por Буров А

•4 de jul de 2019

The lecturer Daniel Kane does not explain things clearly. I constantly had to switch to other material listed in references to understand what he was talking about. I know that usually lectures are supposed to give you only general understanding of the problem and you still have to read additional material, but with Daniel Kane it is practically useless to watch lectures. I am sorry if I offend him, but lectures were a real problem for me so I think I have to speak out.

Another issue with this course was poor design of home assignments. 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! Why? In consequent Week 6 we cover Splay trees and get 5 problems as 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). Then, there are remaining two problems that only cover Splay trees (as far as I understand). Such assignment design makes it hard to sort out the topic (at least for me). Moreover, the rest two problems are huge and as the result you cannot check only a fraction of your alogrithm instead you have to check it entirely. 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. As the result I struggled not because of the course complexity, but because of inconviniences.

And also grading system acts strangely. In python3 graders don't usually accept recursion because of RecursionDepthLimit error, however, all stress tests on my computer were completed successfully, but I still had to rewrite everything in loops. I guess it is usefull to know how to implement an algorithm both in loops and recursion, but I'd prefer if they specified the appropriate method for the problem beforehand.

por Nikhil P

•28 de jan de 2020

The overall course was good. The instructor Daniel Kane, is the worst part of this course. He was rushing the whole time and wasn't explaining properly. No proper examples, no pseudocode, It was really annoying to complete all his lectures. 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. Extremely unsatisfied and annoyed from the last part of this course. All the other parts were really great and all deserve a 5-star rating.

por ftgo

•23 de jul de 2020

The quality of the material and the level of challenges proposed in this series organized by the University of California San Diego are really surprising. In this module, each week details different data structures and the computational complexity of its operations. Then the concepts are verified in several algorithmic challenges, nothing trivial, automatically evaluated on its own platform through a battery of black box tests.

Just a few striking points:

* Very interesting to understand amortized analysis in dynamic arrays or hash tables and, even with the restructuring, how it remains weightless, considering that the additional cost is diluted in consecutive operations.

* Hash families and the guarantee of low collision, use of hashing in textual search (Rabin-Karp) and distributed hash table applications in cloud storage (Dropbox) and Big Data.

* Manipulation of large strings using Rope structures based on Splay Tree and how this is applicable in text editors.

* Take stack overflow even in delete/destroy functions, due to the high amount of data, and realize that all recursion can be restructured in terms of a Stack.

Once again I give five stars and strongly recommend.

por Iskandar A

•30 de mai de 2020

Excellent intermediate course with many challenging enough problems and questions. For brushing up the DS and for preparation for coding interviews - thumbs up!

por Madhumala J (

•12 de out de 2019

Needs more description & more practise problem

por Cameron F

•14 de jun de 2016

I'm honestly quite pissed. The material itself is fine but I have had a terrible experience working with the instructors. I don't think I will continue taking these courses.

I don't appreciate the amount of time and effort given into the programming assignments only to receive practically zero help. First of all, I don't know WHY I'm failing the test cases, I just am. Your program runs through maybe 100 tests to ensure correctness but somehow the instructors decide you should only see the first 3. But then, I try posting on the forums to receive help only to have it removed. Quite frankly, I have spent well over 10 hours at this point on a single problem and I've created my own tests and I have looked at all the very vague hints given in the forums and I still have no clue what to do. I have school, a job, and yet I'm losing all this productivity because I'm running all these damn tests hoping on the off-chance that I catch whatever weird bug it is that's failing my code. All I want is real, concrete feedback.

por Александр Ю

•8 de set de 2016

I liked this course alot.

If you are a student and come from the previous course, you may only read the cons, since this course has the same spirit as the previous.

Pros:

1. The lectures contain quite a good material which is somehow difficult and they made me to pay attention. The lectures are based on dasgupta's book and MIT course book.

2. There are links to additional materials, I found the dijkstra's book and MIT course book, so I was able to gain extra information for topics which interested me.

Also slides are very useful

3. The forum! This course has a life forum where you can find help or share your ideas.

4. The teaching stuff! They are answering student questions and taking part in discussions

Cons:

Having compared this course with the previous one from the set, this course suffers from luck of interesting problems. The previous course has more than ~25 problems and for each module it has advanced problems,even more they added extra problems during the course running.

This course has ~12 problems and only one advanced for the whole course!. Only this advanced problem made me take a piece of paper and a pen and draw trees, and play with toy examples. Only for this problem I wrote a stress test. That is the most fun for me of studying!

If this course didn't have this advanced problem, I would barely give it 3 stars.

P.S.

Theaching stuff, please conider to add extra problems, the first course is awesome and it is way too good. This course is good, but it think you may develop it not only the first one. Otherwise students may get dissapointed if they come from the previous course.

I hoped that you would have added extra problems, so I slowed down, my expectation didnt come true :(

por Seema

•15 de dez de 2020

This is one of the appreciable course for the learners. The lectures and the reading material were great and the assignments was challenging. Overall this is a very good platform to learn.

por aleksi s

•19 de set de 2019

The best data structures course that I have taken!

The complex topics are made simpler at the expense of teaching style that allowed me to make it applicable in a real world situations.

por Evsikov I

•17 de jun de 2020

This is an amazing course with great programming assignment - I have really enjoyed it, thank you very much!

por Dhiraj K

•2 de mar de 2019

Good Course for Knowledge

por Saurav G

•18 de jun de 2020

very very good

por Hakim T

•1 de mar de 2019

Great course

por Сергей С

•2 de mar de 2019

It was difficult in using of pseudocode in my code

por Bohdan S

•13 de jan de 2021

Although course content is interesting and helpful, but the home assignments are out of touch with reality. The problems descriptions are rather poor than informative. The problems are full of hidden edge cases that are tricky to find. The grader is a big joke, really just a black box that will help you not and will keep saying something like “wrong answer” with no provided input data. The same code may pass for python submission, but fail with C++ submission giving absolutely ridiculous errors.

For me this course started as an interesting journey into the world of data structures (although most of the content weren't new to me), but ended up a one big struggle just because of the poorly organized home assignments process. I hope course authors will do something about it.

por Rishabh G

•26 de dez de 2019

literally pathetic studied waste of money charged even canceled subscription. Please refund my One-month extra charge.

- Analista de dados do Google
- Certificação profissional de marketing digital e comércio eletrônico do Google
- Certificação profissional de automação de TI com Python do Google
- Suporte de TI do Google
- Gestão de projetos no Google
- Design de UX no Google
- Preparação para a Certificação em Google Cloud: Cloud Architect
- Analista de Cibersegurança da IBM
- Analista de dados da IBM
- Engenharia de dados da IBM
- Ciência de dados da IBM
- Desenvolvedor de nuvem full stack – IBM
- Aprendizado de máquina IBM
- Contabilidade da Intuit
- Desenvolvedor Front-End da Meta
- Certificação profissional de desenvolvedor de DeepLearning.AI no TensorFlow
- Certificado profissional de programador em SAS
- Inicie sua carreira
- Prepare-se para uma Certificação
- Amplie suas qualificações profissionais
- Como identificar erros de sintaxe do Python
- Como lidar com exceções do Python
- Ver todos os tutoriais de programação

- cursos gratuitos
- Cursos de inteligência artificial
- Cursos de Blockchain
- Cursos de ciência da computação
- Cursos grátis
- Cursos de segurança cibernética
- Cursos de análise de dados
- Cursos de ciência de dados
- Cursos de conversação em inglês
- Cursos de desenvolvimento Web completo
- Cursos do Google
- Cursos de recursos humanos
- Cursos de TI
- Cursos de aprendizagem de inglês
- Cursos de Microsoft Excel
- Cursos de gestão de produtos
- Cursos de gestão de projetos
- Cursos de Python
- Cursos de SQL
- Certificações ágeis
- Certificação CAPM
- Certificação CompTIA A+
- Certificações de análise de dados
- Certificações de Scrum Master
- Veja todos os cursos

- Cursos on-line gratuitos para terminar em um dia
- Cursos gratuitos populares
- Empregos de negócios
- Empregos de segurança cibernética
- Empregos de TI para iniciantes
- Perguntas para entrevista com analista de dados
- Projetos de análise de dados
- Como se tornar um analista de dados
- Como se tornar um gerente de projetos
- Habilidades de TI
- Perguntas para entrevista com gerente de projeto
- Habilidades de programação em Python
- Pontos fortes e fracos em entrevistas
- O que faz um analista de dados
- O que faz um engenheiro de software
- O que é um engenheiro de dados
- O que é um cientista de dados
- O que é um designer de produto
- O que é um Scrum Master
- O que é um pesquisador de UX
- Como obter uma certificação PMP
- Certificações PMI
- Certificações populares de segurança cibernética
- Certificações populares de SQL
- Ler todos os artigos do Coursera

- Certificações Profissionais do Google
- Certificados profissionais
- Ver todos os certificados
- Bacharelados
- Mestrados
- Graduações em Ciência da Computação
- Graduações em Ciência de Dados
- Graduações em negócios e MBA
- Graduações em análise de dados
- Graduações em Saúde Pública
- Graduações em ciências sociais
- Graduações em gestão
- Bacharel em Humanas vs Bacharel em Ciências
- O que é uma licenciatura?
- 11 bons hábitos de estudo para desenvolver
- Como escrever uma carta de recomendação
- 10 empregos em alta que você pode conseguir com um diploma de negócios
- Um mestrado em Ciência da computação vale a pena?
- Ver todos os programas de graduação
- Coursera Índia
- Coursera RU
- Coursera México