Python Data Structure Course

Python Algorithm/Data Structure Video Course

This is a video course (with over 12 hours of video) to teach you Python, and then Algorithms and Data Structures. I assume that you have already learned basic programming in C++, Java, or Javascript.

The videos in this course correspond to the free textbook Problem Solving with Algorithms and Data Structures using Python) By Brad Miller and David Ranum, Luther College

You will learn Python in the first part of the course. We then move on to a complete course in data structures and algorithm as expected in a University level course.

You will also become better problem solvers stepping though the use of techniques in algorithms and data structures to solve many classic problems. I also recommend learning problem solving by work on problems at the a good problem oriented website like codewars.com (note using this link also gains me points with codewars)

The table of content list below shows the video title on the right, which is a link to the youtube video. On the left is a link to the book content close to what the video is refering to.

Rune: If you are being taught a univercity, you should make sure you signed in to runestone.academy PYTHONDS3 course so your teacher can track your progress. If you are not in a class with a teacher, you are free to just browse the book.

na: Some videos have extra material that I created and do not associate with the book material. The have na indicating threre is no link.

You can play video first and then reference the eBook, or read the eBook and then play the videos depending on how it best works for you.

If you like my style of teaching, please subscribe to my YouTube Channel: YouTube/gjenkinslbcc.

I retired recently and taught college level CS course using these videos and eBook for several years just before I retired. I now make them available and create more teaching videos.

Enjoy – Professor Gerry Jenkins

I made these videos a few years ago, If you would like to see any improvements or additions as a student, please email me detailed feedback or suggestions to gjenkinsedu@gmail.com. Also tell me any problems with the videos so I can correct them.


Table Of Contents


Chapter: Introducion

book  Video
na  Install Python & PyCharm, Hello Project
Rune  Introduction 1 | why study data structures and algorithms
Rune  Introduction 2 | why study data structures and algorithms
na  Introduction 3 | Four ways to run python
Rune  Introduction 4 | atomic types, ops, variables
Rune  Introduction 5 | Start of Lists
Rune  Introduction 6 | List methods, add method, & range
Rune  Introduction 7 | Strings
Rune  Introduction 8 | tuples and sets
Rune  Introduction 9 | Dictionaries
Rune  Introduction 10 | input, more about print function
Rune  Introduction 11 | Formatting
Rune  Introduction 12 | Control Structures in Python
Rune  Introduction 13 | Exceptions
Rune  Introduction 14 | Functions
Rune  Introduction 15 | OOP-Fraction 1
Rune  Introduction 16 | Fraction 2
Rune  Introduction 17 | Fraction 3
na  Introduction 18 | iPython and inheritance
na  Introduction 19 | Inheritance 2
na  Introduction 20 | Has-A and Polymorphism

Chapter: Analysis

book  Video
Rune  Analysis 1 | Big-O
Rune  Analysis 2 | Big-O 2
Rune  Analysis 3 | Anagrams Example 1
Rune  Analysis 4 | Anagrams Example 2
Rune  Analysis 5 | Timeit 1
na  Analysis 6 | timeit 2
Rune  Analysis 7 | Timing in List and Dict

Chapter: Linear Data Structures

book  Video
Rune  Linear Data Structures 1 | Stacks
Rune  Linear Data Structures 2 | Stack: implementation
Rune  Linear Data Structures 3 | Stack: Parentheses
Rune  Linear Data Structures 4 | Stack: binary & hex converter
Rune  Linear Data Structures 5 | infix to postfix 1
Rune  Linear Data Structures 6 | infix to postfix 2
Rune  Linear Data Structures 7 | queue and deque 1
Rune  Linear Data Structures 8 | queue and deque 2
Rune  Linear Data Structures 9 | queue and deque 3
Rune  Linear Data Structures 10 | Lists 1
Rune  Linear Data Structures 11 | Lists 2
Rune  Linear Data Structures 12 | Lists 3

Chapter: Recursion

book  Video
Rune  Recursion 1 | Basics 1
Rune  Recursion 2 | Basics 2
Rune  Recursion 3 | Stack Frames
Rune  Recursion 4 | turtle graphics 1
Rune  Recursion 5 | turtle graphics 2
Rune  Recursion 6 | Siepinski Triangle
Rune  Recursion 8 | Maze
Rune  Recursion 9 | Min Coins - Dynamic Programming 1
Rune  Recursion 10 | Min Coin - Dynamic Programming 2

Chapter: Search/Sort

book  Video
Rune  Search/Sort 1 | Sequential and binary Search 1
Rune  Search/Sort 2 | Sequential and binary Search 2
Rune  Search/Sort 3 | Hash tables 1
Rune  Search/Sort 4 | Hash tables 2
Rune  Search/Sort 5 | Hash tables 3
Rune  Search/Sort 6 | bubble sort
Rune  Search/Sort 7 | selection sort
Rune  Search/Sort 8 | insertion sort
Rune  Search/Sort 9 | shell sort
Rune  Search/Sort 10 | merge sort
Rune  Search/Sort 11 | quick sort

Chapter: Trees

book  Video
Rune  Trees 1 | Introduction and definitions
Rune  Trees 2 | Tree Code Implementations
Rune  Trees 3 | parse code 1
Rune  Trees 4 | parse code 2
Rune  Trees 5 | Traverse tree 1
Rune  Trees 6 | Traverse Tree 2
Rune  Trees 7 | Priority Queue - Binary Heap 1
Rune  Trees 8 | Priority Queue - Binary Heap 2
Rune  Trees 9 | Priority Queue - Binary Heap 3
Rune  Trees 10 | Priority Queue - Binary Heap 4
Rune  Trees 11 | Binary Search Trees 1
Rune  Trees 12 | Binary Search Trees 2
Rune  Trees 13 | Binary Search Trees 3
Rune  Trees 14 | Binary Search Tree 4
Rune  Trees 15 | Binary Search Tree 5
Rune  Trees 16 | Binary Search Trees 6
Rune  Trees 17 | Binary Search Trees 7
Rune  Trees 18 | AVL Trees 1
Rune  Trees 19 | AVL Trees 2
Rune  Trees 20 | AVL Trees 3

Chapter: Graphs

book  Video
Rune  Graphs 1 | Intro and Terms
Rune  Graphs 2 | Math and ADT
Rune  Graphs 3 | Implementation choices
Rune  Graphs 4 | Implementation Graph Python Code