DS-Algo
Data Structures and Algorithms in Python
Learn to generate insights using Python-powered data structures and algorithms.
- Practice in 35 Hands-On Labs — nothing to install
- 17 Interactive Lessons and 102 topics mapped to the official exam objectives
- 257 Practice Test Questions
Intermediate Self-paced · 1 year access 4.2/5 (334 Reviews)
35 Hands-On LiveLabs
Practice real IT tasks in guided environments.
- Real environments
- Auto-graded
- No installation
01 / Skills you'll get
What you will be able to do
Is a DS/Algo problem stumping you? This Python data structures and algorithms course has your back!
We’ll take you from Python basics to advanced data structures, sorting, and graph algorithms – all while breaking down recursion and memory management.
So, ditch the old chunky textbooks and attempt hands-on labs to write code that’s clever, efficient, and functional.
- Master Python programming, including control flow, functions, and exception handling.
- Structure and execute advanced data structures like linked lists, trees, graphs, and hash tables.
- Analyze algorithms for efficiency using techniques like asymptotic analysis and experimental studies.
- Design and optimize recursive solutions to solve complex problems effectively.
- Implement sorting, searching, and graph traversal algorithms with real-world applications.
- Develop problem-solving strategies using dynamic programming and text-processing techniques.
Course Highlights
-
17 Structured Lessons Comprehensive coverage of core course objectives
-
35 Hands-On LiveLabs Interactive guided scenarios with instant evaluation
-
257 Practice Questions Assessment tests with detailed answer rationales
-
1 Year Full Access Self-paced learning accessible anytime on all devices
02 / Lessons & labs
See exactly what you will learn and practice
Lessons
17 Interactive Lessons · 102 topics01 Python Primer 12 topics · 15 LiveLab +
- Python Overview
- Objects in Python
- Expressions, Operators, and Precedence
- Control Flow
- Functions
- Simple Input and Output
- Exception Handling
- Iterators and Generators
- Additional Python Conveniences
- Scopes and Namespaces
- Modules and the Import Statement
- Exercises
15 LiveLab in this lesson — see the labs panel →
02 Object-Oriented Programming 7 topics · 2 LiveLab +
- Goals, Principles, and Patterns
- Software Development
- Class Definitions
- Inheritance
- Namespaces and Object-Orientation
- Shallow and Deep Copying
- Exercises
2 LiveLab in this lesson — see the labs panel →
03 Algorithm Analysis 5 topics +
- Experimental Studies
- The Seven Functions Used in This Course
- Asymptotic Analysis
- Simple Justification Techniques
- Exercises
04 Recursion 7 topics · 2 LiveLab +
- Illustrative Examples
- Analyzing Recursive Algorithms
- Recursion Run Amok
- Further Examples of Recursion
- Designing Recursive Algorithms
- Eliminating Tail Recursion
- Exercises
2 LiveLab in this lesson — see the labs panel →
05 Array-Based Sequences 7 topics · 6 LiveLab +
- Python's Sequence Types
- Low-Level Arrays
- Dynamic Arrays and Amortization
- Efficiency of Python's Sequence Types
- Using Array-Based Sequences
- Multidimensional Data Sets
- Exercises
6 LiveLab in this lesson — see the labs panel →
06 Stacks, Queues, and Deques 4 topics · 1 LiveLab +
- Stacks
- Queues
- Double-Ended Queues
- Exercises
1 LiveLab in this lesson — see the labs panel →
07 Linked Lists 8 topics · 4 LiveLab +
- Singly Linked Lists
- Circularly Linked Lists
- Doubly Linked Lists
- The Positional List ADT
- Sorting a Positional List
- Case Study: Maintaining Access Frequencies
- Link-Based vs. Array-Based Sequences
- Exercises
4 LiveLab in this lesson — see the labs panel →
08 Trees 6 topics +
- General Trees
- Binary Trees
- Implementing Trees
- Tree Traversal Algorithms
- Case Study: An Expression Tree
- Exercises
09 Priority Queues 6 topics +
- The Priority Queue Abstract Data Type
- Implementing a Priority Queue
- Heaps
- Sorting with a Priority Queue
- Adaptable Priority Queues
- Exercises
10 Maps, Hash Tables, and Skip Lists 6 topics · 2 LiveLab +
- Maps and Dictionaries
- Hash Tables
- Sorted Maps
- Skip Lists
- Sets, Multisets, and Multimaps
- Exercises
2 LiveLab in this lesson — see the labs panel →
11 Search Trees 7 topics +
- Binary Search Trees
- Balanced Search Trees
- AVL Trees
- Splay Trees
- (2,4) Trees
- Red-Black Trees
- Exercises
12 Sorting and Selection 8 topics · 2 LiveLab +
- Why Study Sorting Algorithms?
- Merge-Sort
- Quick-Sort
- Studying Sorting through an Algorithmic Lens
- Comparing Sorting Algorithms
- Python's Built-In Sorting Functions
- Selection
- Exercises
2 LiveLab in this lesson — see the labs panel →
13 Text Processing 6 topics · 1 LiveLab +
- Abundance of Digitized Text
- Pattern-Matching Algorithms
- Dynamic Programming
- Text Compression and the Greedy Method
- Tries
- Exercises
1 LiveLab in this lesson — see the labs panel →
14 Graph Algorithms 8 topics +
- Graphs
- Data Structures for Graphs
- Graph Traversals
- Transitive Closure
- Directed Acyclic Graphs
- Shortest Paths
- Minimum Spanning Trees
- Exercises
15 Memory Management and B-Trees 5 topics +
- Memory Management
- Memory Hierarchies and Caching
- External Searching and B-Trees
- External-Memory Sorting
- Exercises
16 Appendix A: Character Strings in Python +
17 Appendix B: Useful Mathematical Facts +
Hands-On Labs Our edge
35 LiveLabs- Using the Bitwise Operator
- Using the Equality Operator and the list Class
- Using Arithmetic Operators
- Performing Bitwise Operations
- Using the Comparison Operator
- Using the if-elif-else Statement - Part 1
- Using the if-elif-else Statement - Part 2
- Using the if-else Statement
- Determining the Armstrong Number
- Rectifying Errors
- Finding LCM of Two Numbers
- Creating a Function with its Default Value
- Handling Exception
- Using the dir Function
- Using the math Module
- Understanding the init Method
- Understanding Numeric Progressions
- Calculating the Product of Two Positive Integers
- Finding the Minimum Element
- Using the getsizeof Function
- Implementing a Dynamic Array
- Adding Elements to a List
- Using the extend Method
- Removing Elements from a List
- Constructing the Caesar Cipher Algorithm
- Using Stack Abstract Data Type Method
- Implementing a Stack
- Implementing a Queue
- Implementing a Queue with a Circular Linked List
- Implementing a Deque with a Doubly Linked List
- Adding Elements to a Set
- Performing Set Operations
- Using a Sorting Function
- Using the len() Built-In Function
- Performing Pattern Matching
03 / FAQs
Questions before you start
Is this course suitable for beginners?+
What are the prerequisites for this Python DSA course?+
Will this course help in competitive programming?+
How will this course help in my career?+
Can I use this knowledge in other programming languages?+
Is this course relevant to data science or machine learning?+
Problems, Python, and Solutions
Learn to write smart, clean Python code to solve data analytic problems using our data algorithm and structures courses.
- 1 year of full access
- 35 LiveLab included
- Certificate of completion