Data Structures & Algorithms with Python
AI-Powered
Course Overview
This course will guide you through the intricacies of data structures and algorithms using Python. You'll learn to write efficient and optimized code tackle complex problems and gain the skills needed for a successful software engineering career.
What you'll learn
Analyze the time and space complexity of algorithms.
Implement and utilize fundamental data structures like linked lists; stacks; queues; trees; graphs; and heaps.
Apply various sorting and searching algorithms (e.g. quicksort; mergesort; binary search).
Solve common coding interview problems using efficient data structures and algorithms.
Design and implement your own algorithms to solve specific problems.
Understand the practical applications of different data structures and algorithms.
Build a complex project from the ground up; integrating multiple concepts learned throughout the course
Welcome to Advanced Python!
Career Opportunities
Course Overview
Final Project Preview: Social Network Analysis
Introduction Quiz
Understanding Algorithm Efficiency
Calculating Big O: Constant Time (O(1))
Calculating Big O: Linear Time (O(n))
Calculating Big O: Quadratic Time (O(n^2))
Comparing Big O Notations
Big O Quiz
Arrays vs. Linked Lists
Implementing a Singly Linked List: Node Class
Implementing a Singly Linked List: prepend()
Implementing a Singly Linked List: delete_node()
Linked Lists Quiz
Doubly Linked Lists
Implementing a Doubly Linked List: Node and DLL Class
Implementing a Doubly Linked List: delete_node()
Implementing a Doubly Linked List: insert_after()
Doubly Linked Lists Quiz
Stacks and Queues: Fundamental Data Structures
Implementing a Stack using a List
Implementing a Queue using a List (Inefficient)
Implementing a Queue using collections.deque
Stacks and Queues Quiz
Introduction to Trees
Binary Trees
Implementing a Binary Tree: Node Class
Binary Tree Traversal: Inorder
Binary Tree Traversal: Preorder and Postorder
Binary Search Trees (BSTs)
Implementing a BST: Insertion
Implementing a BST: Search
Trees Quiz
Introduction to Heaps
Heap Representation
Implementing a Min-Heap: insert()
Implementing a Min-Heap: heappop()
Using a Min-Heap as a Priority Queue
Heaps Quiz
Introduction to Hash Tables
Hash Functions
Implementing a Hash Table: Basic Structure
Implementing a Hash Table: put()
Implementing a Hash Table: get()
Implementing Hash Table: Delete
Hash Tables Quiz
Introduction to Graphs
Graph Representations
Implementing a Graph: Adjacency List
Graph Traversal: Breadth-First Search (BFS)
Graph Traversal: Depth-First Search (DFS)
Graphs Quiz
Introduction to Sorting
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Insertion Sort
Sorting Algorithms Quiz
Project Overview
Step 1: Building the Social Network Graph
Step 2: Shortest Path (BFS)
Step 3: Friend Suggestions
Final Project Quiz