Online Training

Designing Data Structures in Python

Time: 6h 4m

When should you use Python’s built-in data types, and when should you develop your own? In this video course, George Heineman introduces Python programmers to several important data structures and demonstrates their use with example algorithms. Generic data structures such as arrays, linked lists, and stacks can solve many problems, but to work through some specialized problems, you need to learn different ways to structure data appropriately.

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