Video/eBook Data Structures and Algorithms Course for after your first language course

This is a course in Algorithms and Data Structures, that you would take after you learn your first computer language from a Computer Science curriculum. Your first language could be could be C/C++,  java, JavaScript, python, basic, Go, or just about any language.

We start this course by teaching you python and then jump right into the main subjects

I provides videos that cover each subject in a free eBook Problem Solving with Algorithms and Data Structures using Python By Brad Miller and David Ranum, Luther College

You will also become better problem solvers stepping though the use of techniques in algorithms and data structures to solve many classic problems.

The list below are links to the videos on the material in the book with the # link on the far right linking you into the associated place in the eBook (or as close as we could land you).

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.

NOTE: the little flags on far right link to the closest area in the eBook I could do. There are some videos that have extra material not covered in the eBook, these video do not have the # flag link.

If you like my style of teaching, please  subscribe to my YouTube channel: https://youtube.com/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, Emeritus

COURSE VIDEOS/EBOOK LINKS:

1: Python Data Structures/Algorithms Class - Introduction

This section will teach you basic Python programming and cover most concepts you may have learned in an introduction to computer science course, but in an accelerated time-frame. More advanced Python concepts will be also covered in other chapters.
Install Python & PyCharm, Hello Project (9:05)
Introduction 1 | why study data structures and algorithms (9:12)
Introduction 2 | why study data structures and algorithms (7:55)
Introduction 3 | Four ways to run python (14:57)
Introduction 4 | atomic types, ops, variables (12:36)
Introduction 5 | Start of Lists (11:01)
Introduction 6 | List methods, add method, & range (10:21)
Introduction 7 | Strings (8:19)
Introduction 8 | tuples and sets (10:54)
Introduction 9 | Dictionaries (13:16)
Introduction 10 | input, more about print function (7:30)
Introduction 11 | Formatting (8:46)
Introduction 12 | Control Structures in Python (12:32)
Introduction 13 | Exceptions (8:40)
Introduction 14 | Functions (6:08)
Introduction 15 | OOP-Fraction 1 (8:55)
Introduction 16 | Fraction 2 (11:36)
Introduction 17 | Fraction 3 (9:21)
Introduction 18 | iPython and inheritance(11:46) 
Introduction 19 | Inheritance 2(12:19) 
Introduction 20 | Has-A and Polymorphism(12:36) 

2: CS22 - Analysis

Analysis 1 | Big-O (12:45)
Analysis 2 | Big-O 2 (9:15)
Analysis 3 | Anagrams Example 1 (11:35)
Analysis 4 | Anagrams Example 2 (12:07)
Analysis 5 | Timeit 1 (7:01)
Analysis 6 | timeit 2 (9:37)
Analysis 7 | Timing in List and Dict (12:27)

3: CS22 - Linear Data Structures

Linear Data Structures 1 | Stacks (7:23)
Linear Data Structures 2 | Stack: implementation (8:20)
Linear Data Structures 3 | Stack: Parentheses (14:44)
Linear Data Structures 4 | Stack: binary & hex converter (9:31)
Linear Data Structures 5 | infix to postfix 1 (9:35)
Linear Data Structures 6 | infix to postfix 2 (8:59)
Linear Data Structures 7 | queue and deque 1 (9:11)
Linear Data Structures 8 | queue and deque 2 (7:12)
Linear Data Structures 9 | queue and deque 3 (7:43)
Linear Data Structures 10 | Lists 1 (12:53)
Linear Data Structures 11 | Lists 2 (11:19)
Linear Data Structures 12 | Lists 3 (14:48)

4: CS22- Recursion

Recursion 1 | Basics 1 (11:53)
Recursion 2 | Basics 2 (12:14)
Recursion 3 | Stack Frames (4:29)
Recursion 4 | turtle graphics 1 (9:43)
Recursion 5 | turtle graphics 2 (9:44)
Recursion 6 | Siepinski Triangle (7:37)
Recursion 8 | Maze (14:55)
Recursion 9 | Min Coins - Dynamic Programming 1 (12:01)
Recursion 10 | Min Coin - Dynamic Programming 2 (10:17)

5: CS22 - Search/Sort

Search/Sort 1 | Sequential and binary Search 1 (10:27)
Search/Sort 2 | Sequential and binary Search 2 (8:38)
Search/Sort 3 | Hash tables 1 (13:35)
Search/Sort 4 | Hash tables 2 (12:38)
Search/Sort 5 | Hash tables 3 (11:39)
Search/Sort 6 | bubble sort (5:17)
Search/Sort 7 | selection sort (3:36)
Search/Sort 8 | insertion sort (5:08)
Search/Sort 9 | shell sort (3:46)
Search/Sort 10 | merge sort (4:43)
Search/Sort 11 | quick sort (8:04)

6: CS22 - Trees

Trees 1 | Introduction and definitions (13:00)
Trees 2 | Tree Code Implementations (14:17)
Trees 3 | parse code 1 (6:11)
Trees 4 | parse code 2 (6:13)
Trees 5 | Traverse tree 1 (6:46)
Trees 6 | Traverse Tree 2 (7:12)
Trees 7 | Priority Queue - Binary Heap 1 (5:19)
Trees 8 | Priority Queue - Binary Heap 2 (5:06)
Trees 9 | Priority Queue - Binary Heap 3 (7:21)
Trees 10 | Priority Queue - Binary Heap 4 (6:33)
Trees 11 | Binary Search Trees 1 (6:20)
Trees 12 | Binary Search Trees 2 (4:56)
Trees 13 | Binary Search Trees 3 (6:59)
Trees 14 | Binary Search Tree 4 (5:17)
Trees 15 | Binary Search Tree 5 (7:52)
Trees 16 | Binary Search Trees 6 (5:41)
Trees 17 | Binary Search Trees 7 (8:15)
Trees 18 | AVL Trees 1 (5:39)
Trees 19 | AVL Trees 2 (8:04)
Trees 20 | AVL Trees 3 (6:18)

7: CS22 - Graphs

Graphs 1 | Intro and Terms (6:42)
Graphs 2 | Math and ADT (4:58)
Graphs 3 | Implementation choices (7:35)
Graphs 4 | Implementation Graph Python Code (7:09)

Portions of the book and code is used in the following videos under creative commons protections:

Creative Commons License
"Problem Solving with Algorithms and Data Structures using Python" by Bradley N. Miller, David L. Ranum
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

7 comments:

Please comment or give suggestions for follow up articles