VOOZH about

URL: https://www.coursera.org/learn/bits-data-structures-and-algorithms

⇱ Data Structures and Algorithms | Coursera


Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Data Structures and Algorithms

2,343 already enrolled

Included with

Ask Coursera

Gain insight into a topic and learn the fundamentals.
8 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Build toward a degree

Gain insight into a topic and learn the fundamentals.
8 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Build toward a degree

What you'll learn

  • Implement and manipulate data structures (arrays, linked lists, stacks, queues) for efficient data management in software development.

  • Apply sorting algorithms (quicksort, mergesort, insertion sort) to optimize data organization and retrieval for solving real-world problems.

  • Design and analyze graph algorithms (BFS, DFS, shortest paths) to address complex network-related challenges in data management.

  • Utilize tree structures (binary trees, AVL trees) and hash tables for rapid data access and storage, enhancing computational efficiency.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

140 assignments

Taught in English

There are 10 modules in this course

Welcome to the Data Structures and Algorithms course! Dive into the essential principles and techniques that form the backbone of computer science and software development. This comprehensive course explores the efficient organization, storage, and manipulation of data using various data structures such as arrays, linked lists, stacks, queues, hash tables, trees, and graphs. You will learn how to implement these structures in your code, optimize their performance, and solve complex computational problems through algorithm design and analysis.

Master key concepts including sorting algorithms like quicksort, mergesort, and insertion sort, graph algorithms including BFS and DFS for traversals, and shortest path calculations. Understand the intricacies of tree structures such as binary trees and AVL trees, and harness the power of hash tables for fast data access and storage. The course emphasizes real-world applications, memory management, and performance optimization, equipping you with problem-solving skills crucial for data science, software development, and IT roles. Designed for individuals who are new to data structures or those looking to enhance their computational skills, this course provides a robust foundation for advanced topics in computer science. By the end of this course, you will develop critical thinking, algorithmic problem-solving abilities, and a deeper understanding of data management, enabling you to translate complex computational problems into efficient algorithmic solutions.

In this module, you will learn how to measure the efficiency of algorithms at design time. More specifically, you will learn about asymptotic notation to represent the efficiency of algorithms in terms of the time and space utilized by your algorithms. You will also revisit C fundamentals with the help of a few basic programs.

What's included

22 videos5 readings8 assignments1 ungraded lab

22 videosTotal 188 minutes
  • Meet Your Instructor: Dr. Jagat Sesh Challa2 minutes
  • Meet Your Instructor: Dr. Sundaresan Raman2 minutes
  • Module Introduction: Algorithmic Efficiency and Asymptotic Analysis1 minute
  • Algorithms and Data Structuring9 minutes
  • Algorithmic Efficiency: Experimental Measurement10 minutes
  • Algorithmic Efficiency: Design Time Measurement13 minutes
  • Counting Primitive Operations14 minutes
  • Asymptotic Analysis and Big-Oh Notation11 minutes
  • Relatives of Big-Oh5 minutes
  • Asymptotic Analysis of Prefix Sum9 minutes
  • Importance of Asymptotics12 minutes
  • Basic C Program with Loops11 minutes
  • Functions and Arrays7 minutes
  • Structures and Array of Structures10 minutes
  • Pointers9 minutes
  • Pass by Value vs. Pass by Reference8 minutes
  • Dynamic Memory Allocation: 1D Arrays9 minutes
  • Memory Leak5 minutes
  • Dynamic Memory Allocation: Array of Structures11 minutes
  • Basic C Program with File Handling: List of Numbers14 minutes
  • Basic C Program with File Handling: Tuple Data15 minutes
  • Module Wrap-Up: Algorithmic Efficiency and Asymptotic Analysis1 minute
5 readingsTotal 90 minutes
  • Course Overview10 minutes
  • Recommended Reading: Measuring Algorithmic Efficiency30 minutes
  • Recommended Reading: Asymptotic Analysis and Examples30 minutes
  • Essential Reading: Collection of Basic C Programs10 minutes
  • Lab Solutions: C Fundamentals10 minutes
8 assignmentsTotal 45 minutes
  • Practice Quiz: Algorithms and Data Structuring6 minutes
  • Practice Quiz: Algorithmic Efficiency: Experimental Measurement6 minutes
  • Practice Quiz: Algorithmic Efficiency: Design Time Measurement6 minutes
  • Practice Quiz: Counting Primitive Operations6 minutes
  • Practice Quiz: Asymptotic Analysis and Big-Oh Notation6 minutes
  • Practice Quiz: Relatives of Big-Oh3 minutes
  • Practice Quiz: Asymptotic Analysis of Prefix Sum6 minutes
  • Practice Quiz: Importance of Asymptotics6 minutes
1 ungraded labTotal 60 minutes
  • Practice Lab: C Fundamentals60 minutes

In this module, you will learn about linked lists, stacks, and queues, along with their applications to various domains of computing. You will learn to apply them to construct efficient algorithms for various problems. You will also be able to implement these data structures in C.

What's included

27 videos8 readings17 assignments1 discussion prompt3 ungraded labs

27 videosTotal 190 minutes
  • Module Introduction: Data Structuring for Algorithm Efficiency and ADTs1 minute
  • Data Structuring and Modelling8 minutes
  • Arrays in Memory9 minutes
  • Linked Lists 6 minutes
  • Linked Lists: Operations I8 minutes
  • Linked Lists: Operations II5 minutes
  • Linked Lists: Implementation—Part I10 minutes
  • Linked Lists: Implementation—Part II8 minutes
  • Linked Lists: Implementation—Part III16 minutes
  • Linked Lists: Implementation—Part IV6 minutes
  • Linked Lists: Implementation—Part V11 minutes
  • Circular and Doubly Linked Lists4 minutes
  • Cycle Detection in Linked Lists6 minutes
  • Abstract Data Types7 minutes
  • ADT Stack 8 minutes
  • ADT Stack: Applications5 minutes
  • Array-Based Stack7 minutes
  • Array-Based Stack: Implementation—Part I8 minutes
  • Array-Based Stack: Implementation—Part II10 minutes
  • Linked-List-Based Stack3 minutes
  • Linked-List-Based Stack: Implementation—Part I7 minutes
  • Linked-List-Based Stack: Implementation—Part II11 minutes
  • Principles of ADTs Summarized 5 minutes
  • ADT Queue and its Applications7 minutes
  • Array-Based Queue7 minutes
  • Linked-List-Based Queue5 minutes
  • Module Wrap-Up: Data Structuring for Algorithm Efficiency and ADTs1 minute
8 readingsTotal 120 minutes
  • Essential Reading: Arrays and Linked Lists 10 minutes
  • Essential Reading: Implementations of Linked Lists10 minutes
  • Essential Reading: Circular and Doubly Linked Lists and Cycle Detection in Linked Lists10 minutes
  • Essential Reading: Computing Spans Using ADT Stack10 minutes
  • Essential Reading: Implementations of Stack10 minutes
  • Essential Reading: Stacks30 minutes
  • Essential Reading: Queues30 minutes
  • Lab Solutions: Data Structuring for Algorithm Efficiency and ADTs10 minutes
17 assignmentsTotal 123 minutes
  • Test Yourself: Algorithmic Efficiency30 minutes
  • Practice Quiz: Data Structuring and Modelling6 minutes
  • Practice Quiz: Arrays in Memory6 minutes
  • Practice Quiz: Linked Lists6 minutes
  • Practice Quiz: Linked Lists: Operations I6 minutes
  • Practice Quiz: Linked Lists: Operations II6 minutes
  • Practice Quiz: Circular and Doubly Linked Lists6 minutes
  • Practice Quiz: Cycle Detection in Linked Lists6 minutes
  • Practice Quiz: Abstract Data Types6 minutes
  • Practice Quiz: ADT Stack 6 minutes
  • Practice Quiz: ADT Stack: Applications3 minutes
  • Practice Quiz: Array-based Stack6 minutes
  • Practice Quiz: Linked-List-based Stack6 minutes
  • Practice Quiz: Principles of ADTs Summarized 6 minutes
  • Practice Quiz: ADT Queue and Its Applications6 minutes
  • Practice Quiz: Array-Based Queue6 minutes
  • Practice Quiz: Linked-List-Based Queue6 minutes
1 discussion promptTotal 30 minutes
  • Data Structuring for Algorithm Efficiency and ADTs30 minutes
3 ungraded labsTotal 150 minutes
  • Practice Lab: Linked Lists Operations30 minutes
  • Practice Lab: Stack Operations60 minutes
  • Practice Lab: Queue Operations60 minutes

In this module, you will learn about top-down recursive algorithms, with a specific discussion on insertion sort and merge sort algorithms. Specifically, you will understand the recursive and iterative versions of these sorting algorithms along with their derivations of time and space complexities. You will also implement these algorithms on large tuple data read from files and compare the running time of these algorithms. Additionally, you will learn to implement linear and binary search algorithms over arrays.

What's included

23 videos8 readings18 assignments1 discussion prompt3 ungraded labs

23 videosTotal 153 minutes
  • Module Introduction: Sorting and Searching1 minute
  • Divide and Conquer, and Recursion 11 minutes
  • Recursive arrayMax8 minutes
  • Recursive arrayMax: Time Complexity5 minutes
  • Insertion Sort: Recursive Version—Part I5 minutes
  • Insertion Sort: Recursive Version—Part II9 minutes
  • Recursive Insertion Sort: Time Complexity—Part I7 minutes
  • Recursive Insertion Sort: Time Complexity—Part II5 minutes
  • Implementing Recursive Insertion Sort in C and Its Running Time: Part I13 minutes
  • Implementing Recursive Insertion Sort in C and Its Running Time: Part II7 minutes
  • Insertion Sort: Iterative Version5 minutes
  • Merge Sort: Intuition8 minutes
  • Merge Operation in Merge Sort: Part I6 minutes
  • Merge Operation in Merge Sort: Part II7 minutes
  • Merge Sort: Time Complexity7 minutes
  • Space Complexities of Merge and Insertion Sort: Part I10 minutes
  • Space Complexities of Merge and Insertion Sort: Part II5 minutes
  • Merge vs. Insertion Sort5 minutes
  • Merge Sort Implementation and Its Running Time11 minutes
  • Linear Search2 minutes
  • Binary Search9 minutes
  • Recursion vs. Iteration3 minutes
  • Module Wrap-Up: Sorting and Searching1 minute
8 readingsTotal 140 minutes
  • Recommended Reading: Analyzing Recursive Algorithms30 minutes
  • Essential Reading: Implementation of Recursive Insertion Sort10 minutes
  • Essential Reading: Time Complexity of Iterative Insertion Sort10 minutes
  • Recommended Reading: Insertion Sort and Analysis30 minutes
  • Recommended Reading: Merge Sort30 minutes
  • Essential Reading: Implementation of Recursive Merge Sort10 minutes
  • Essential Reading: Linear and Binary Search Algorithms10 minutes
  • Lab Solutions: Sorting and Searching10 minutes
18 assignmentsTotal 87 minutes
  • Practice Quiz: Divide and Conquer, and Recursion6 minutes
  • Practice Quiz: Recursive arrayMax3 minutes
  • Practice Quiz: Recursive arrayMax: Time Complexity3 minutes
  • Practice Quiz: Insertion Sort: Recursive Version—Part I3 minutes
  • Practice Quiz: Insertion Sort: Recursive Version—Part II3 minutes
  • Practice Quiz: Recursive Insertion Sort: Time Complexity—Part I3 minutes
  • Practice Quiz: Recursive Insertion Sort: Time Complexity—Part II6 minutes
  • Practice Quiz: Insertion Sort: Iterative Version6 minutes
  • Practice Quiz: Merge Sort: Intuition6 minutes
  • Practice Quiz: Merge Operation in Merge Sort: Part I3 minutes
  • Practice Quiz: Merge Operation in Merge Sort: Part II3 minutes
  • Practice Quiz: Merge Sort: Time Complexity6 minutes
  • Practice Quiz: Space Complexities of Merge and Insertion Sort: Part I6 minutes
  • Practice Quiz: Space Complexities of Merge and Insertion Sort: Part II6 minutes
  • Practice Quiz: Merge vs. Insertion Sort6 minutes
  • Practice Quiz: Linear Search6 minutes
  • Practice Quiz: Binary Search6 minutes
  • Practice Quiz: Recursion vs. Iteration6 minutes
1 discussion promptTotal 30 minutes
  • Sorting and Searching30 minutes
3 ungraded labsTotal 180 minutes
  • Practice Lab: Iterative Insertion Sort and its Running Time60 minutes
  • Practice Lab: Insertion Sort vs. Merge Sort: Running Time60 minutes
  • Practice Lab: Linear Search vs. Binary Search (Iterative) - Running Time60 minutes

In this module, you will learn about the quick sort algorithm, implement it and analyze its time complexity. You will additionally study a summary of comparison-based sorting algorithms, along with their lower bound time complexity. You will also learn non-comparison-based sorting algorithms, such as bucket sort and radix sort, along with their complexity analysis and implementation.

What's included

14 videos5 readings12 assignments1 programming assignment1 discussion prompt2 ungraded labs

14 videosTotal 82 minutes
  • Module Introduction: More Sorting1 minute
  • Quick Sort: Intuition9 minutes
  • Quick Sort: Algorithm8 minutes
  • Quick Sort: Time Complexity—Part I4 minutes
  • Quick Sort: Time Complexity—Part II6 minutes
  • Pivot Selection Techniques 5 minutes
  • Quick Sort Implementation12 minutes
  • Sorting Smaller Lists6 minutes
  • Comparing Comparison-Based Sorting Algorithms6 minutes
  • Lower Bound on Comparison-Based Sorting6 minutes
  • Bucket Sort7 minutes
  • Stability of Sorting4 minutes
  • Radix Sort6 minutes
  • Module Wrap-Up: More Sorting1 minute
5 readingsTotal 110 minutes
  • Recommended Reading: Quick Sort30 minutes
  • Essential Reading: Implementation of Quick Sort10 minutes
  • Recommended Reading: Analysis of Comparison-Based Sorting Algorithms30 minutes
  • Recommended Reading: Other Sorting Algorithms30 minutes
  • Lab Solutions: Sorting10 minutes
12 assignmentsTotal 93 minutes
  • Test Yourself: Sorting and Searching30 minutes
  • Practice Quiz: Quick Sort: Intuition6 minutes
  • Practice Quiz: Quick Sort: Algorithm6 minutes
  • Practice Quiz: Quick Sort: Time Complexity—Part I6 minutes
  • Practice Quiz: Quick Sort: Time Complexity—Part II3 minutes
  • Practice Quiz: Pivot Selection Techniques6 minutes
  • Practice Quiz: Sorting Smaller Lists6 minutes
  • Practice Quiz: Comparing Comparison-Based Sorting Algorithms6 minutes
  • Practice Quiz: Lower Bound on Comparison-Based Sorting6 minutes
  • Practice Quiz: Bucket Sort6 minutes
  • Practice Quiz: Stability of Sorting6 minutes
  • Practice Quiz: Radix Sort6 minutes
1 programming assignmentTotal 60 minutes
  • Lab: Sorting60 minutes
1 discussion promptTotal 30 minutes
  • More Sorting30 minutes
2 ungraded labsTotal 120 minutes
  • Practice Lab: Comparing Running Times of Comparison-Based Sorting Algorithms60 minutes
  • Practice Lab: Bucket and Radix Sort on Numerical Data60 minutes

In this module, you will learn about dictionary ADT s, hash tables, and binary trees. You will understand various hashing schemes, such as linear chaining and open addressing, and analyze their performance for large data. You will also gain insights into binary trees, tree traversals, and their implementations.

What's included

16 videos6 readings14 assignments1 discussion prompt2 ungraded labs

16 videosTotal 108 minutes
  • Module Introduction: Dictionaries, Hash Tables, and Binary Trees1 minute
  • Dictionary ADT5 minutes
  • A Dictionary Case10 minutes
  • Hash Tables with Linear Chaining7 minutes
  • Analysis of Hashing with Linear Chaining6 minutes
  • Hash Functions: Hash-Code Maps6 minutes
  • Hash Functions: Compression Maps5 minutes
  • Open Addressing with Linear Probing14 minutes
  • Double Hashing9 minutes
  • Trees: Definitions and Examples6 minutes
  • Binary Tree with Examples5 minutes
  • Types and Properties of Binary Trees8 minutes
  • Tree ADT8 minutes
  • Tree Traversals11 minutes
  • Building Binary Trees from Tree Traversals7 minutes
  • Module Wrap-Up: Dictionaries, Hash Tables, and Binary Trees1 minute
6 readingsTotal 140 minutes
  • Recommended Reading: Dictionary ADT30 minutes
  • Recommended Reading: Hash Tables and Analysis30 minutes
  • Recommended Reading: Open Addressing30 minutes
  • Essential Reading: Binary Tree Implementation10 minutes
  • Recommended Reading: Trees and Tree Traversals30 minutes
  • Lab Solutions: Dictionaries, Hash Tables, and Binary Trees10 minutes
14 assignmentsTotal 78 minutes
  • Practice Quiz: Dictionary ADT6 minutes
  • Practice Quiz: A Dictionary Case6 minutes
  • Practice Quiz: Hash Tables with Linear Chaining6 minutes
  • Practice Quiz: Analysis of Hashing with Linear Chaining6 minutes
  • Practice Quiz: Hash Functions: Hash-Code Maps6 minutes
  • Practice Quiz: Hash Functions: Compression Maps3 minutes
  • Practice Quiz: Open Addressing with Linear Probing6 minutes
  • Practice Quiz: Double Hashing6 minutes
  • Practice Quiz: Trees: Definitions and Examples6 minutes
  • Practice Quiz: Binary Tree with Examples6 minutes
  • Practice Quiz: Types and Properties of Binary Trees6 minutes
  • Practice Quiz: Tree ADT3 minutes
  • Practice Quiz: Tree Traversals6 minutes
  • Practice Quiz: Building Binary Trees from Tree Traversals6 minutes
1 discussion promptTotal 30 minutes
  • Dictionaries, Hash Tables, and Binary Trees30 minutes
2 ungraded labsTotal 120 minutes
  • Practice Lab: Hashing Large Files: Line Chaining and Probing60 minutes
  • Practice Lab: Tree Traversals60 minutes

In this module, you will learn to use binary search trees and AVL trees as dictionaries. You will learn to implement them and store large tuple data. You would also be able to compare the search performance of both the trees averaged over large datasets. Additionally, you would be able to derive the best and worst-case complexities of search, insert, and delete in binary search trees (BST s) and AVL trees.

What's included

22 videos5 readings18 assignments1 discussion prompt1 ungraded lab

22 videosTotal 124 minutes
  • Module Introduction: Binary Search Trees and AVL Trees1 minute
  • Binary Search Trees: Intuition and Search9 minutes
  • Min, Max, Successor and Predecessor in BSTs5 minutes
  • BST Insertion5 minutes
  • BST Deletion5 minutes
  • BST Sort5 minutes
  • BST: Summary of Time Complexities4 minutes
  • BST Implementation: Part I12 minutes
  • BST Implementation: Part II6 minutes
  • BST Implementation: Part III13 minutes
  • AVL Trees: Motivation, Intuition, and Examples8 minutes
  • AVL Tree: Structure4 minutes
  • AVL Tree: Insertion—Part I8 minutes
  • AVL Tree: Insertion—Part II6 minutes
  • AVL Tree: Insertion—Part III9 minutes
  • AVL Tree: Insertion—Part IV5 minutes
  • AVL Tree: Deletion—Part I4 minutes
  • AVL Tree: Deletion—Part II4 minutes
  • AVL Tree: Deletion—Part III5 minutes
  • Time Complexities of AVL Tree3 minutes
  • Benefits of AVL Tree: Summary3 minutes
  • Module Wrap-Up: Binary Search Trees and AVL Trees1 minute
5 readingsTotal 90 minutes
  • Recommended Reading: Binary Search Trees30 minutes
  • Essential Reading: Implementation of BST10 minutes
  • Lab Solution: Binary Search Trees10 minutes
  • Recommended Reading: AVL Trees30 minutes
  • Essential Reading: Implementation of AVL Trees10 minutes
18 assignmentsTotal 105 minutes
  • Test Yourself: Dictionaries, Hash Tables, and Binary Trees30 minutes
  • Practice Quiz: Binary Search Trees: Intuition and Search6 minutes
  • Practice Quiz: Min, Max, Successor and Predecessor in BSTs6 minutes
  • Practice Quiz: BST Insertion6 minutes
  • Practice Quiz: BST Deletion6 minutes
  • Practice Quiz: BST Sort3 minutes
  • Practice Quiz: BST: Summary of Time Complexities6 minutes
  • Practice Quiz: AVL Trees: Motivation, Intuition, and Examples6 minutes
  • Practice Quiz: AVL Tree: Structure6 minutes
  • Practice Quiz: AVL Tree: Insertion—Part I3 minutes
  • Practice Quiz: AVL Tree: Insertion—Part II3 minutes
  • Practice Quiz: AVL Tree: Insertion—Part III3 minutes
  • Practice Quiz: AVL Tree: Insertion—Part IV3 minutes
  • Practice Quiz: AVL Tree: Deletion—Part I3 minutes
  • Practice Quiz: AVL Tree: Deletion—Part II3 minutes
  • Practice Quiz: AVL Tree: Deletion—Part III3 minutes
  • Practice Quiz: Time Complexities of AVL Tree6 minutes
  • Practice Quiz: Benefits of AVL Tree: Summary3 minutes
1 discussion promptTotal 30 minutes
  • Binary Search Trees and AVL Trees30 minutes
1 ungraded labTotal 60 minutes
  • Practice Lab: BST Delete and BST Sort 60 minutes

In this module, you will learn about priority queues abstract data type (ADT ) and various kinds of tries. You will also learn to implement heaps for priority queues and use them to find efficient tries for file compression. Additionally, you will learn about tries, compressed tries, and suffix trees, along with their applications to various domains of computer science.

What's included

20 videos6 readings15 assignments1 programming assignment1 discussion prompt2 ungraded labs

20 videosTotal 131 minutes
  • Module Introduction: Priority Queues and Tries1 minute
  • Priority Queues: Motivation7 minutes
  • Heap as a Priority Queue7 minutes
  • Implementing a Heap5 minutes
  • Insertion in a Heap5 minutes
  • Delete Min, Heapify in a Heap6 minutes
  • Building Heap and Time Complexity of Heap Operations5 minutes
  • Heap Sort2 minutes
  • Implementing Heaps: Part I21 minutes
  • Implementing Heaps: Part II11 minutes
  • Implementing Heaps: Part III4 minutes
  • Standard Tries 7 minutes
  • Compressed Tries8 minutes
  • Applications of Tries6 minutes
  • Suffix Trees8 minutes
  • Suffix Trees Applications6 minutes
  • File Compression with an Encoding Trie8 minutes
  • Optimal Compression with Huffman Encoding Trie9 minutes
  • Using Priority Queues to Implement Huffman Encoding Tries4 minutes
  • Module Wrap-Up: Priority Queues and Tries 1 minute
6 readingsTotal 140 minutes
  • Recommended Reading: Priority Queues and Heaps30 minutes
  • Recommended Reading: More on Heaps30 minutes
  • Essential Reading: Implementation of Heaps10 minutes
  • Recommended Reading: Tries and Suffix Trees30 minutes
  • Recommended Reading: Huffman Encoding Tries30 minutes
  • Lab Solutions: Priority Queues and Tries10 minutes
15 assignmentsTotal 66 minutes
  • Practice Quiz: Priority Queues: Motivation6 minutes
  • Practice Quiz: Heap as a Priority Queue6 minutes
  • Practice Quiz: Implementing a Heap3 minutes
  • Practice Quiz: Insertion in a Heap6 minutes
  • Practice Quiz: Delete Min, Heapify in a Heap3 minutes
  • Practice Quiz: Building Heap and Time Complexity of Heap Operations3 minutes
  • Practice Quiz: Heap Sort6 minutes
  • Practice Quiz: Standard Tries 6 minutes
  • Practice Quiz: Compressed Tries6 minutes
  • Practice Quiz: Applications of Tries6 minutes
  • Practice Quiz: Suffix Tries3 minutes
  • Practice Quiz: Suffix Tries Applications3 minutes
  • Practice Quiz: File Compression with an Encoding Trie3 minutes
  • Practice Quiz: Optimal Compression with Huffman Encoding Trie3 minutes
  • Practice Quiz: Using Priority Queues to Implement Huffman Encoding Tries3 minutes
1 programming assignmentTotal 60 minutes
  • Graded Lab: Priority Queues and Tries60 minutes
1 discussion promptTotal 30 minutes
  • Priority Queues and Tries 30 minutes
2 ungraded labsTotal 120 minutes
  • Practice Lab: Heap Operations and Applications60 minutes
  • Practice Lab: Huffman Encoding Trie with a Priority Queue60 minutes

In this module, you will learn the fundamentals of graphs, the data structures used to represent them, and the breadth-first graph traversal algorithm. You will learn to use the breadth-first graph traversal to solve a few computational problems related to graphs, such as checking for bipartite graphs and counting the connected components. You will also be able to implement breadth-first traversal efficiently using the appropriate data structure.

What's included

17 videos4 readings14 assignments1 discussion prompt1 ungraded lab

17 videosTotal 140 minutes
  • Module Introduction: Graphs and Graph Traversals1 minute
  • Graphs and Applications8 minutes
  • Graph Terminologies: Part I4 minutes
  • Graph Terminologies: Part II8 minutes
  • Graph ADT9 minutes
  • Data Structures for Graph, Edge List8 minutes
  • Adjacency List and Adjacency Matrix10 minutes
  • Comparing Graph Representations10 minutes
  • Breadth-First Search: Intuition with an Example8 minutes
  • BFS Algorithm and Running Time12 minutes
  • BFS Tree10 minutes
  • BFS Applications: Connected Components7 minutes
  • Checking for a Bipartite Graph: Part I8 minutes
  • Checking for a Bipartite Graph: Part II9 minutes
  • BFS Implementation Using Adjacency List: Part I16 minutes
  • BFS Implementation using Adjacency List: Part II11 minutes
  • Module Wrap-Up: Graphs and Graph Traversals1 minute
4 readingsTotal 80 minutes
  • Recommended Reading: Graph ADT and Representations30 minutes
  • Recommended Reading: Breadth-First Search30 minutes
  • Essential Reading: BFS Implementation Using an Adjacency List10 minutes
  • Lab Solution: Graphs and Graph Traversals10 minutes
14 assignmentsTotal 96 minutes
  • Test Yourself: Priority Queues, Tries, Graphs and Graph Traversals30 minutes
  • Practice Quiz: Graphs and Applications3 minutes
  • Practice Quiz: Graph Terminologies: Part I6 minutes
  • Practice Quiz: Graph Terminologies: Part II6 minutes
  • Practice Quiz: Graph ADT6 minutes
  • Practice Quiz: Data Structures for Graph, Edge List3 minutes
  • Practice Quiz: Adjacency List and Adjacency Matrix6 minutes
  • Practice Quiz: Comparing Graph Representations3 minutes
  • Practice Quiz: Breadth-First Search: Intuition with an Example6 minutes
  • Practice Quiz: BFS Algorithm and Running Time6 minutes
  • Practice Quiz: BFS Tree6 minutes
  • Practice Quiz: BFS Applications: Connected Components6 minutes
  • Practice Quiz: Checking for a Bipartite Graph: Part I6 minutes
  • Practice Quiz: Checking for a Bipartite Graph: Part II3 minutes
1 discussion promptTotal 30 minutes
  • Graphs and Graph Traversals30 minutes
1 ungraded labTotal 60 minutes
  • Practice Lab: BFS Implementation Using Adjacency Matrix60 minutes

In this module, you will learn about depth-first traversal in graphs and its applications to graph-related problems. You will learn to analyze its complexity and implement it efficiently. You will understand the minimum spanning trees (MST) problem in weighted graphs and study Kruskal’s algorithm that computes MST from a weighted graph. You will additionally learn to optimize the time complexity of Kruskal’s algorithm using the union-find data structure and implement it.

What's included

19 videos6 readings15 assignments1 discussion prompt1 ungraded lab

19 videosTotal 131 minutes
  • Module Introduction: Depth-First Search and MST in Weighted Graphs1 minute
  • Depth First Search: Intuition and Applications8 minutes
  • DFS Examples and Predecessor Subgraph5 minutes
  • DFS Algorithm and Complexity6 minutes
  • Biconnectivity11 minutes
  • DFS in a Directed Graph10 minutes
  • Detecting Cycles in a Directed Graph4 minutes
  • Topological Ordering3 minutes
  • Strongly Connected Components in a Directed Graph7 minutes
  • Iterative DFS Implementation Using Adjacency List19 minutes
  • Recursive DFS Implementation Using Adjacency List15 minutes
  • Minimum Spanning Tree: Intuition and Applications4 minutes
  • Minimum Spanning Tree: Properties11 minutes
  • Kruskal’s MST Algorithm: Illustration6 minutes
  • Kruskal’s MST Algorithm: Pseudo-Code3 minutes
  • Kruskal’s MST Algorithm: Time Complexity5 minutes
  • Union-Find Data Structure9 minutes
  • Improved Time Complexity of Kruskal’s Algorithm4 minutes
  • Module Wrap-Up: Depth-First Search and MST in Weighted Graphs1 minute
6 readingsTotal 140 minutes
  • Recommended Reading: Depth First Search and Its Applications30 minutes
  • Recommended Reading: Depth First Search in a Directed Graph and Its Applications30 minutes
  • Essential Reading: DFS Implementation using Adjacency List10 minutes
  • Lab Solutions: DFS Implementation using Adjacency Matrix10 minutes
  • Recommended Reading 3: Kruskal’s MST Algorithm 30 minutes
  • Recommended Reading: Disjoint-Set Data Structure30 minutes
15 assignmentsTotal 81 minutes
  • Practice Quiz: Depth First Search: Intuition and Applications6 minutes
  • Practice Quiz: DFS Examples and Predecessor Subgraph6 minutes
  • Practice Quiz: DFS Algorithm and Complexity6 minutes
  • Practice Quiz: Biconnectivity3 minutes
  • Practice Quiz: DFS in a Directed Graph6 minutes
  • Practice Quiz: Detecting Cycles in a Directed Graph6 minutes
  • Practice Quiz: Topological Ordering6 minutes
  • Practice Quiz: Strongly Connected Components in a Directed Graph6 minutes
  • Practice Quiz: Minimum Spanning Tree: Intuition and Applications3 minutes
  • Practice Quiz: Minimum Spanning Tree: Properties3 minutes
  • Practice Quiz: Kruskal’s MST Algorithm: Illustration6 minutes
  • Practice Quiz: Kruskal’s MST Algorithm: Pseudocode6 minutes
  • Practice Quiz: Kruskal’s MST Algorithm: Time Complexity6 minutes
  • Practice Quiz: Union-Find Data Structure6 minutes
  • Practice Quiz: Improved Time Complexity of Kruskal’s Algorithm6 minutes
1 discussion promptTotal 30 minutes
  • Depth-First Search and MST in Weighted Graphs30 minutes
1 ungraded labTotal 60 minutes
  • Practice Lab: DFS Implementation using Adjacency Matrix60 minutes

In this module, you will learn about Prim’s algorithm for computing the minimum spanning tree in a weighted graph. Additionally, you will also learn about Dijkstra’s algorithm to compute “single-source shortest paths.” You will also learn about the Bellman-Ford algorithm to compute “single-source shortest paths” in graphs with negative edge weights. You will also be able to implement these algorithms and analyze their time complexities.

What's included

14 videos6 readings9 assignments1 ungraded lab

14 videosTotal 108 minutes
  • Module Introduction: Prim’s MST Algorithm and Single Source Shortest Paths1 minute
  • Prim’s MST Algorithm: Illustration9 minutes
  • Prim’s MST Algorithm: Pseudo-Code and Time Complexity7 minutes
  • Shortest Paths in a Weighted Graph: Intuition and Properties 10 minutes
  • Single Source Shortest Paths: Brute Force Approach6 minutes
  • Dijkstra’s SSSP Algorithm: Intuition and Illustration13 minutes
  • Dijkstra’s SSSP Algorithm: Pseudo-Code and Complexity5 minutes
  • Implementing Dijkstra’s SSSP Algorithm: Part I12 minutes
  • Implementing Dijkstra’s SSSP Algorithm: Part II7 minutes
  • Implementing Dijkstra’s SSSP Algorithm: Part III16 minutes
  • Implementing Dijkstra’s SSSP Algorithm: Part IV8 minutes
  • Limitations of Dijkstra’s SSSP Algorithm9 minutes
  • Bellman-Ford's SSSP Algorithm5 minutes
  • Module Wrap-Up: Prim’s MST Algorithm and Single Source Shortest Paths1 minute
6 readingsTotal 120 minutes
  • Recommended Reading: Prim’s MST Algorithm30 minutes
  • Recommended Reading: Dijkstra’s SSSP Algorithm30 minutes
  • Essential Reading: Implementation of Dijkstra’s Algorithm10 minutes
  • Lab Solution: Implementation of Prim’s MST Algorithm10 minutes
  • Recommended Reading: Bellman-Ford SSSP Algorithm30 minutes
  • Course Summary Slides 10 minutes
9 assignmentsTotal 78 minutes
  • Test Yourself: Depth-First Search, MST in Weighted Graphs and Single-Source Shortest Paths30 minutes
  • Practice Quiz: Prim’s MST Algorithm: Illustration6 minutes
  • Practice Quiz: Prim’s MST Algorithm: Pseudo-Code and Time Complexity6 minutes
  • Practice Quiz: Shortest Paths in a Weighted Graph: Intuition and Properties 6 minutes
  • Single Source Shortest Paths: Brute Force Approach6 minutes
  • Practice Quiz: Dijkstra’s SSSP Algorithm: Intuition and Illustration6 minutes
  • Practice Quiz: Dijkstra’s SSSP Algorithm: Pseudo-Code and Complexity6 minutes
  • Practice Quiz: Limitations of Dijkstra’s SSSP Algorithm6 minutes
  • Practice Quiz: Bellman-Ford's SSSP Algorithm6 minutes
1 ungraded labTotal 60 minutes
  • Practice Lab: Implementation of Prim’s MST Algorithm60 minutes

Build toward a degree

This course is part of the following degree program(s) offered by Birla Institute of Technology & Science, Pilani. If you are admitted and enroll, your completed coursework may count toward your degree learning and your progress can transfer with you.¹

Instructor

Birla Institute of Technology & Science, Pilani
43 Courses77,388 learners

Explore more from Software Development

Why people choose Coursera for their career

👁 Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
👁 Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
👁 Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
👁 Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Frequently asked questions

To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

Financial aid available,