Learn Data Structures and Algorithms with Python
Offered By: Codecademy
Course Description
Overview
Learn what data structures and algorithms are, why they are useful, and how you can use them effectively in Python.
### Why Learn Data Structures and Algorithms
At the backbone of every program or piece of software are two entities: data and algorithms. Algorithms transform data into something a program can effectively use. Therefore, it is important to understand how to structure data so algorithms can maintain, utilize, and iterate through data quickly.
### Take Away Skills
By completing this course, you will be able to:
* Recognize the differences between a data structure and an algorithm
* Create and manipulate data structures such as linked lists, queues, hash maps, graphs, and more in Python
* Understand the characteristics of various advanced algorithms as well as be able to implement them in Python
* Analyze the space and time complexity of different data structures and algorithms
### Why Learn Data Structures and Algorithms
At the backbone of every program or piece of software are two entities: data and algorithms. Algorithms transform data into something a program can effectively use. Therefore, it is important to understand how to structure data so algorithms can maintain, utilize, and iterate through data quickly.
### Take Away Skills
By completing this course, you will be able to:
* Recognize the differences between a data structure and an algorithm
* Create and manipulate data structures such as linked lists, queues, hash maps, graphs, and more in Python
* Understand the characteristics of various advanced algorithms as well as be able to implement them in Python
* Analyze the space and time complexity of different data structures and algorithms
Syllabus
- Introduction to Data Structures and Algorithms: Take your first steps into data structures and algorithms in Python!
- Article: Why Data Structures and Algorithms
- Nodes: Learn about nodes, the building-block data structure.
- Article: Nodes
- Lesson: Nodes: Python
- Quiz: Nodes
- Linked Lists: Learn about linked lists and how to build them in Python.
- Article: Linked Lists: Conceptual
- Lesson: Linked Lists: Python
- Quiz: Linked Lists Quiz
- Article: Swapping Elements in a Linked List
- Article: Two-Pointer Linked List Techniques
- Doubly Linked Lists: Learn about doubly linked lists and how to implement them in Python.
- Article: Doubly Linked Lists
- Lesson: Doubly Linked Lists: Python
- Quiz: Doubly Linked List Quiz
- Queues: Learn about queues and how to implement them in Python.
- Article: Queues: Conceptual
- Lesson: Queues: Python
- Quiz: Queues Quiz
- Stacks: Learn about stacks in Python.
- Article: Stacks: Conceptual
- Lesson: Stacks: Python
- Quiz: Stacks Quiz
- Project: Towers of Hanoi
- Hash Maps: Learn about hash maps and how to implement them in Python.
- Lesson: Hash Maps: Conceptual
- Quiz: Hash Maps: Conceptual
- Lesson: Hash Maps: Python
- Quiz: Hash Maps: Python
- Project: Blossom
- Recursion: Learn about recursion in Python.
- Lesson: Recursion: Conceptual
- Quiz: Recursion: Conceptual
- Lesson: Recursion: Python
- Quiz: Recursion: Python
- Lesson: Recursion vs. Iteration - Coding Throwdown
- Article: Code Challenge: Recursion
- Asymptotic Notation: Learn about asymptotic notation and how to use it to improve your code's efficiency.
- Article: Why Asymptotic Notation?
- Lesson: Asymptotic Notation: Conceptual
- Quiz: Asymptotic Notation: Conceptual
- Article: Space Complexity
- Lesson: Asymptotic Notation: Python
- Quiz: Asymptotic Notation: Python
- Pattern Searching: Learn about the naive pattern search algorithm.
- Article: Naive Pattern Search: Conceptual
- Lesson: Naive Pattern Search: Python
- Quiz: Naive Pattern Search: Quiz
- Article: Code Challenge: Naive Pattern Search
- Sorting Algorithms: Learn about bubble sort, merge sort, and quicksort and how to implement them in Python.
- Lesson: Bubble Sort: Conceptual
- Lesson: Bubble Sort: Python
- Quiz: Bubble Sort: Python
- Lesson: Merge Sort: Conceptual
- Lesson: Merge Sort: Python
- Quiz: Merge Sort: Python
- Lesson: Quicksort: Conceptual
- Lesson: Quicksort: Python
- Quiz: Quicksort: Python
- Article: Sort Runtimes
- Project: A Sorted Tale
- Brute Force Algorithms: Learn about brute force algorithms.
- Article: Brute Force Algorithms
- Lesson: Linear Search: Conceptual
- Lesson: Linear Search: Python
- Quiz: Brute Force
- Trees: Learn about trees and how to build them in Python.
- Article: Trees: Conceptual
- Lesson: Trees: Python
- Quiz: Trees Quiz
- Project: Choose Your Own Adventure: Wilderness Escape
- Tree Traversal: Breadth-First Search and Depth-First Search: Learn about two different methods of tree traversal.
- Article: Tree Traversal: Breadth-First Search vs Depth-First Search
- Article: Breadth-First Search: Conceptual
- Lesson: Breadth-First Search: Python
- Quiz: Breadth-First Search
- Article: Depth-First Search: Conceptual
- Lesson: Depth-First Search: Python
- Quiz: Depth-First Search
- Divide and Conquer: Learn about divide and conquer algorithms, with a focus on binary search and binary search trees.
- Article: Divide and Conquer Algorithms
- Lesson: Binary Search: Conceptual
- Lesson: Binary Search: Python
- Lesson: Binary Search Trees: Python
- Quiz: Binary Search Trees: Python
- Heaps and Heapsort: Learn about heaps and heapsort, and implement them in Python.
- Article: Max-Heaps
- Lesson: Max-Heaps: Python
- Quiz: Max-Heaps Quiz
- Article: Heapsort
- Lesson: Heapsort: Python
- Quiz: Heapsort Quiz
- Graphs and Graph Search: Learn about and implement graphs and graph search in Python.
- Lesson: Graphs: Conceptual
- Quiz: Graphs: Conceptual
- Lesson: Graphs: Python
- Quiz: Graphs: Python
- Lesson: Graph Search: Conceptual
- Quiz: Graph Search: Conceptual
- Lesson: Graph Search: Python
- Quiz: Graph Search: Python
- Project: Build a Routing Program to Help Vancouver Commuters
- Greedy Algorithms: Learn about greedy algorithms and implement Dijkstra's algorithm in Python.
- Article: Greedy Algorithms
- Lesson: Dijkstra's Algorithm: Conceptual
- Quiz: Dijkstra's Algorithm: Conceptual
- Lesson: Dijkstra's Algorithm: Python
- Quiz: Dijkstra's Algorithm: Python
- Project: Traveling Salesperson
- Pathfinding Algorithms: Learn about pathfinding algorithms and implement the A* algorithm in Python.
- Article: Introduction to Pathfinding
- Lesson: A* Algorithm: Conceptual
- Quiz: A* Algorithm: Conceptual
- Lesson: A* Algorithm: Python
- Quiz: A* Algorithm: Python
Taught by
Jace van Auken
Related Courses
Data StructuresBrilliant C Programming: Advanced Data Types - 5
Dartmouth College via Coursera Linear Data Structures
Codecademy Technical Interview Practice with Python
Codecademy Accelerated Computer Science Fundamentals
University of Illinois at Urbana-Champaign via Coursera