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 …
Working with Algorithms in Python
Video description
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. All code is available on GitHub (https://github.com/heineman/python-algorithms).
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
George T. Heineman is an Associate Professor of Computer Science at Worcester Polytechnic Institute in Massachusetts.
Efficient Searching using BinaryArraySearch and Binary Search Trees Part 1
Efficient Searching using BinaryArraySearch and Binary Search Trees Part 2
Creating a Balanced Binary Search Tree from a Sorted List
An Informal Introduction to the Analysis of Algorithms
O (n log n) Behavior
MergeSort: A Divide and Conquer Algorithm
Using MergeSort to Sort External Data
Mathematical Algorithms
Mathematical Algorithms: Exponentiation By Squaring
Using Exponentiation by Squaring to Determine Whether an Integer Is Prime
Brute Force Algorithms
Brute Force: An Algorithm for Solving Combinatoric Problems
Using Brute Force to Generate Magic Squares
K-Dimensional Trees
KD Trees: Efficient Processing of Two-Dimensional Datasets Part 1
KD Trees: Efficient Processing of Two-Dimensional Datasets Part 2
Using KD Trees to Compute Nearest Neighbor Queries
Graph Algorithms
Graph Algorithms: Depth First Search Part 1
Graph Algorithms: Depth First Search Part 2
Using Depth First Search to Construct a Rectangular Maze
AllPairsShortestPath
Graph Algorithms: All Pairs Shortest Path
Using Dynamic Programming to Compute Minimum Edit Distance
Heap Data Structure
The Heap Data Structure and Its Use in HeapSort
Using HeapSort to Sort a Collection
Single-Source Shortest Path
Single-Source Shortest Path: Using Priority Queues
Using Priority Queues to Compute the Minimum Spanning Tree
Summary
Course Summary
Start your Free Trial Self paced Go to the Course We have partnered with providers to bring you collection of courses, When you buy through links on our site, we may earn an affiliate commission from provider.
This site uses cookies. By continuing to use this website, you agree to their use.I Accept