Online Training
Designing Data Structures in Python
Many Python programmers learned their skills through non-traditional routes, rather than through an undergraduate computer science degree. This video helps complete your education in fundamental data types step-by-step. For many of the data structures, you’ll write sample code using a variety of existing modules, and define a process that will help you evaluate and assess these modules for use in your own software. All you need to get started is a working knowledge of Python’s built-in data types.
Topics include:
-
- Built-in Python data structures
- Python standard library types
- Design principles for data structures
- Data structures and associated algorithm examples
- Graph representations
- Heaps, circular buffers, balanced binary trees, and their variants
George T. Heineman is an associate professor of computer science at Worcester Polytechnic Institute in Massachusetts. His research interests are in software engineering. He is the author of Algorithms in a Nutshell and Working with Algorithms in Python, both for O’Reilly Media.
Course Link: https://learning.oreilly.com/videos/designing-data-structures/9781491928622/
Github: https://github.com/heineman/python-data-structures
Working with Algorithms in Python
![]() |
Time: 8h 39m
Learn how to make your Python code more efficient by using algorithms to solve a variety of tasks or computational problems. In this video course, you’ll learn algorithm basics and then tackle a series of problems—such as determining the shortest path through a graph and the minimum edit distance between two genomic sequences—using existing algorithms. |
Computer scientist George Heineman fully implements each algorithm from scratch in real time, narrating key concepts and steps along the way, and then demonstrates the execution performance of the algorithm implementations on the model problems.
Algorithms are essential to the way computers process data. The examples you’ll learn in this course are among the most common algorithms in computer science, but they illustrate many of the concerns you’ll face as you work to create algorithms on your own.
The topics in this video course include:
- Just enough mathematical concepts to understand how to analyze algorithms
- Practical advice to identify code inefficiencies, using algorithm analysis
- A description of fundamental data structures (such as binary trees, heaps, and graphs) and their use in efficient algorithms
- Problem-solving strategies, including Divide and Conquer, Dynamic Programming, Greedy, and Brute Force approaches
- Full implementations of each algorithm in Python within the context of a specific problem
- A description of the most common algorithmic families, including constant-time, logarithmic time, linear time, polynomial time, and exponential time
Course Link: https://learning.oreilly.com/videos/working-with-algorithms/9781491907818/
Github: https://github.com/heineman/python-algorithms
Standalone Python Algorithm Content
- Polygon Intersection in Python [Github: https://github.com/heineman/python-polygon-intersection]
- Collision detection using Spatial Algorithms and Quadtrees [Github: https://github.com/heineman/python-quadtree-webinar]
- Implementing Bloom Filters in Python [Github: https://github.com/heineman/python-bloom-webinar]
- Explore Algorithms in Python with a GUI-based Application [Github: https://github.com/heineman/python-kd-webinar]