Data Structures
- Offered byCoursera
Data Structures at Coursera Overview
Duration | 25 hours |
Start from | Start Now |
Total fee | Free |
Mode of learning | Online |
Difficulty level | Intermediate |
Official Website | Explore Free Course |
Credential | Certificate |
Data Structures at Coursera Highlights
- Shareable Certificate Earn a Certificate upon completion
- 100% online Start instantly and learn at your own schedule.
- Course 2 of 6 in the Data Structures and Algorithms Specialization
- Flexible deadlines Reset deadlines in accordance to your schedule.
- Intermediate Level Basic knowledge of at least one programming language: C++, Java, Python, C, C#, Javascript, Haskell, Kotlin, Ruby, Rust, Scala.
- Approx. 25 hours to complete
- English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Data Structures at Coursera Course details
- 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!
Data Structures at Coursera Curriculum
Basic Data Structures
Arrays
Singly-Linked Lists
Doubly-Linked Lists
Stacks
Queues
Trees
Tree Traversal
About University
Welcome
Rules on the academic integrity in the course
Slides and External References
Slides and External References
Slides and External References
Available Programming Languages
FAQ on Programming Assignments
Acknowledgements
Basic Data Structures
Dynamic Arrays and Amortized Analysis
Dynamic Arrays
Amortized Analysis: Aggregate Method
Amortized Analysis: Banker's Method
Amortized Analysis: Physicist's Method
Amortized Analysis: Summary
Slides and External References
Dynamic Arrays and Amortized Analysis
Priority Queues and Disjoint Sets
Introduction
Naive Implementations of Priority Queues
Binary Trees
Basic Operations
Complete Binary Trees
Pseudocode
Heap Sort
Building a Heap
Final Remarks
Overview
Naive Implementations
Trees for Disjoint Sets
Union by Rank
Path Compression
Analysis (Optional)
Slides
Tree Height Remark
Slides and External References
Slides and External References
Slides and External References
Slides and External References
Priority Queues: Quiz
Quiz: Disjoint Sets
Priority Queues and Disjoint Sets
Hash Tables
Applications of Hashing
Analysing Service Access Logs
Direct Addressing
List-based Mapping
Hash Functions
Chaining Scheme
Chaining Implementation and Analysis
Hash Tables
Phone Book Problem
Phone Book Problem - Continued
Universal Family
Hashing Integers
Proof: Upper Bound for Chain Length (Optional)
Proof: Universal Family for Integers (Optional)
Hashing Strings
Hashing Strings - Cardinality Fix
Search Pattern in Text
Rabin-Karp's Algorithm
Optimization: Precomputation
Optimization: Implementation and Analysis
Instant Uploads and Storage Optimization in Dropbox
Distributed Hash Tables
Slides and External References
Slides and External References
Slides and External References
Slides and External References
Hash Tables and Hash Functions
Hashing
Binary Search Trees
Introduction
Search Trees
Basic Operations
Balance
AVL Trees
AVL Tree Implementation
Split and Merge
Slides and External References
Slides and External References
Binary Search Trees
Binary Search Trees 2
Applications
Splay Trees: Introduction
Splay Trees: Implementation
(Optional) Splay Trees: Analysis
Slides and External References
Slides and External References
Splay Trees