Section 1 : Introduction
|
Lecture 1 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM | |
|
Lecture 2 | About Certification |
Section 2 : Data Structures Overview
|
Lecture 1 | Why to use data structures | 00:04:46 Duration |
|
Lecture 2 | Data structures and abstract data types | 00:03:30 Duration |
Section 3 : Installation and Environment Setup
|
Lecture 1 | Installing Python and PyCharm on Windows | |
|
Lecture 2 | Installing Python and PyCharm on Mac |
Section 4 : Data Structures - Arrays
|
Lecture 1 | What are array data structures | 00:06:52 Duration |
|
Lecture 2 | Arrays introduction - operations | 00:06:54 Duration |
|
Lecture 3 | Arrays in Python | 00:08:01 Duration |
|
Lecture 4 | What are real arrays in Python | 00:03:52 Duration |
Section 5 : Interview Questions (Arrays)
|
Lecture 1 | Reversing an array in-place overview | |
|
Lecture 2 | Reversing an array in-place solution | 00:04:39 Duration |
|
Lecture 3 | Palindrome problem overview | |
|
Lecture 4 | Palindrome problem solution | 00:06:29 Duration |
|
Lecture 5 | Integer reversion problem overview | |
|
Lecture 6 | Integer reversion problem solution | 00:09:57 Duration |
|
Lecture 7 | Anagram problem overview | |
|
Lecture 8 | Anagram problem solution | 00:05:38 Duration |
|
Lecture 9 | Duplicates in an array problem overview | |
|
Lecture 10 | Duplicates in an array problem solution | 00:10:34 Duration |
Section 6 : Data Structures - Linked Lists
|
Lecture 1 | What are linked lists | 00:04:50 Duration |
|
Lecture 2 | Linked list introduction - operations | 00:11:00 Duration |
|
Lecture 3 | Linked list implementation I | 00:07:43 Duration |
|
Lecture 4 | Linked list implementation II | 00:04:17 Duration |
|
Lecture 5 | Linked list implementation III | 00:08:25 Duration |
|
Lecture 6 | Comparing linked lists and arrays | 00:06:24 Duration |
|
Lecture 7 | Practical (real-world) applications of linked lists |
Section 7 : Data Structures - Doubly Linked Lists
|
Lecture 1 | What are doubly linked lists | 00:06:55 Duration |
|
Lecture 2 | Doubly linked list implementation | 00:08:08 Duration |
|
Lecture 3 | Running time comparison linked lists and arrays | 00:03:54 Duration |
Section 8 : Interview Questions (Linked Lists)
|
Lecture 1 | Finding the middle node in a linked list overview | |
|
Lecture 2 | Finding the middle node in a linked list solution | 00:05:26 Duration |
|
Lecture 3 | Reverse a linked list in-place overview | |
|
Lecture 4 | Reverse a linked list in-place solution | 00:06:52 Duration |
Section 9 : Data Structures - Stacks
|
Lecture 1 | What are stacks | 00:04:32 Duration |
|
Lecture 2 | Stacks in memory management (stacks and heaps ) | 00:03:41 Duration |
|
Lecture 3 | Stack memory visualization | 00:06:15 Duration |
|
Lecture 4 | Stack implementation | 00:08:39 Duration |
|
Lecture 5 | Practical (real-world) applications of stacks | 00:03:20 Duration |
Section 10 : Data Structures - Queues
|
Lecture 1 | What are queues | 00:04:11 Duration |
|
Lecture 2 | Queue implementation | 00:08:34 Duration |
Section 11 : Interview Questions (Stacks and Queues)
|
Lecture 1 | Max in a stack problem overview | |
|
Lecture 2 | Max in a stack problem solution | 00:07:05 Duration |
|
Lecture 3 | Queue with stack problem | |
|
Lecture 4 | Queue with stack problem solution | 00:06:04 Duration |
|
Lecture 5 | Queue with stack problem solution - recursion | 00:03:46 Duration |
Section 12 : Data Structures - Binary Search Trees
|
Lecture 1 | What are binary search trees | 00:14:33 Duration |
|
Lecture 2 | Binary search trees theory - search, insert | 00:07:52 Duration |
|
Lecture 3 | Binary search trees theory - delete | 00:06:12 Duration |
|
Lecture 4 | Binary search trees theory - in-order traversal | 00:05:28 Duration |
|
Lecture 5 | Binary search trees theory - running times | 00:04:31 Duration |
|
Lecture 6 | Binary search tree implementation I | 00:07:54 Duration |
|
Lecture 7 | Binary Search Tree implementation II | 00:10:26 Duration |
|
Lecture 8 | Stack memory visualization - finding max (min) items | 00:04:37 Duration |
|
Lecture 9 | Stack memory visualization - tree traversal | 00:05:55 Duration |
|
Lecture 10 | Binary Search Tree implementation III | 00:13:50 Duration |
|
Lecture 11 | Practical (real-world) applications of trees |
Section 13 : Interview Questions (Binary Search Trees)
|
Lecture 1 | Compare binary trees overview | |
|
Lecture 2 | Compare binary trees solution | 00:04:25 Duration |
Section 14 : Data Structures - AVL Trees
|
Lecture 1 | Motivation behind balanced binary search trees | 00:03:23 Duration |
|
Lecture 2 | What are AVL trees | 00:06:43 Duration |
|
Lecture 3 | AVL trees introduction - height | 00:12:35 Duration |
|
Lecture 4 | AVL trees introduction - rotations | 00:09:03 Duration |
|
Lecture 5 | AVL trees introduction - illustration | 00:05:14 Duration |
|
Lecture 6 | AVL tree implementation I | 00:09:47 Duration |
|
Lecture 7 | AVL tree implementation II | 00:08:16 Duration |
|
Lecture 8 | AVL tree implementation III | |
|
Lecture 9 | AVL tree implementation IV | 00:07:48 Duration |
|
Lecture 10 | AVL tree implementation V | 00:02:21 Duration |
|
Lecture 11 | Practical (real-world) applications of balanced binary search trees | 00:03:37 Duration |
Section 15 : Data Structures - Red-Black Trees
|
Lecture 1 | What are red-black trees | 00:10:45 Duration |
|
Lecture 2 | The logic behind red-black trees | 00:05:22 Duration |
|
Lecture 3 | Red-black trees - recoloring and rotation cases | 00:09:22 Duration |
|
Lecture 4 | Red-black tree illustrations | 00:07:33 Duration |
|
Lecture 5 | Red-black tree implementation I | 00:06:51 Duration |
|
Lecture 6 | Red-black tree implementation II | 00:05:34 Duration |
|
Lecture 7 | Red-black tree implementation III | 00:09:57 Duration |
|
Lecture 8 | Red-black tree implementation IV | 00:02:10 Duration |
|
Lecture 9 | Differences between red-black tree and AVL trees | 00:02:43 Duration |
Section 16 : Data Structures - Heaps
|
Lecture 1 | What are priority queues | 00:04:29 Duration |
|
Lecture 2 | Heap introduction - basics | 00:10:11 Duration |
|
Lecture 3 | Heap introduction - array representation | 00:09:33 Duration |
|
Lecture 4 | Heap introduction - remove operation | 00:07:08 Duration |
|
Lecture 5 | Using heap data structure to sort (heapsort) | 00:06:21 Duration |
|
Lecture 6 | Heap introduction - operations complexities | 00:05:05 Duration |
|
Lecture 7 | Binomial and Fibonacci heaps | 00:04:15 Duration |
|
Lecture 8 | Heap implementation I | 00:05:09 Duration |
|
Lecture 9 | Heap implementation II | 00:10:15 Duration |
|
Lecture 10 | Heap implementation III | 00:04:27 Duration |
|
Lecture 11 | Heaps in Python | 00:03:54 Duration |
Section 17 : Interview Questions (Heaps)
|
Lecture 1 | Interview question #1 - checking heap properties | |
|
Lecture 2 | Interview question #1 - solution | 00:06:44 Duration |
|
Lecture 3 | Interview question #2 - max heap to a min heap | |
|
Lecture 4 | Interview question #2 - solution | 00:06:54 Duration |
Section 18 : Data Structures - Associative Arrays (Dictionaries)
|
Lecture 1 | What are associative arrays | 00:05:46 Duration |
|
Lecture 2 | Hashtable introduction - basics | 00:11:20 Duration |
|
Lecture 3 | Hashtable introduction - collisions | 00:11:16 Duration |
|
Lecture 4 | Hashtable introduction - dynamic resizing | 00:07:05 Duration |
|
Lecture 5 | Linear probing implementation I | 00:06:00 Duration |
|
Lecture 6 | Linear probing implementation II | 00:06:24 Duration |
|
Lecture 7 | Linear probing implementation III | 00:02:12 Duration |
|
Lecture 8 | Dictionaires in Python | 00:03:38 Duration |
|
Lecture 9 | Practical (real-world) applications of hashing | 00:06:31 Duration |
Section 19 : Graph Algorithms Overview
|
Lecture 1 | Graph theory overview | 00:03:46 Duration |
|
Lecture 2 | Adjacency matrix and adjacency list | 00:06:08 Duration |
|
Lecture 3 | Applications of graphs | 00:04:02 Duration |
Section 20 : Graph Algorithms - Graph Traversal Algorithms
|
Lecture 1 | Breadth-first search introduction | 00:09:29 Duration |
|
Lecture 2 | Breadth-first search implementation | 00:07:57 Duration |
|
Lecture 3 | What are WebCrawlers (core of search engines) | 00:05:47 Duration |
|
Lecture 4 | WebCrawler basic implementation | 00:09:40 Duration |
|
Lecture 5 | Depth-first search introduction | 00:10:20 Duration |
|
Lecture 6 | Depth-first search implementation | 00:05:55 Duration |
|
Lecture 7 | Depth-first search implementation II | |
|
Lecture 8 | Memory management BFS vs DFS | 00:05:23 Duration |
Section 21 : Interview Questions (Graph Traversal)
|
Lecture 1 | Interview question #1 - implement DFS with recursion | |
|
Lecture 2 | Interview question #1 - solution | 00:02:52 Duration |
|
Lecture 3 | Depth-first search and stack memory visualisation | 00:06:02 Duration |
|
Lecture 4 | Interview question #2 - using BFS to find way out of maze | |
|
Lecture 5 | Interview question #2 - solution | 00:16:15 Duration |
Section 22 : Graph Algorithms - Shortest Paths with Dijkstra's Algorithm
|
Lecture 1 | What is the shortest path problem | 00:04:44 Duration |
|
Lecture 2 | Dijkstra algorithm visualization | 00:11:00 Duration |
|
Lecture 3 | Dijkstra algorithm implementation I - Edge, Node | 00:10:30 Duration |
|
Lecture 4 | Dijkstra algorithm implementation II - algorithm | 00:13:54 Duration |
|
Lecture 5 | Dijkstra algorithm implementation III - testing | 00:03:52 Duration |
|
Lecture 6 | Dijktsra's algorithm with adjacency matrix representation | 00:12:08 Duration |
|
Lecture 7 | Adjacency matrix representation implementation | 00:12:43 Duration |
|
Lecture 8 | Shortest path algorithms applications | 00:05:05 Duration |
|
Lecture 9 | What is the critical path method (CPM) | 00:04:08 Duration |
Section 23 : Graph Algorithms - Shortest Paths with Bellman-Ford Algorithm
|
Lecture 1 | What is the Bellman-Ford algorithm | 00:13:37 Duration |
|
Lecture 2 | Bellman-Ford algorithm visualization | 00:05:17 Duration |
|
Lecture 3 | Bellman-Ford algorithm implementation I - Node, Edge | 00:01:36 Duration |
|
Lecture 4 | Bellman-Ford algorithm implementation II - the algorithm | 00:07:43 Duration |
|
Lecture 5 | Bellman-Ford algorithm implementation III - testing | 00:03:18 Duration |
|
Lecture 6 | Greedy algorithm or dynamic programming approach | 00:05:43 Duration |
Section 24 : Interview Questions (Shortest Paths)
|
Lecture 1 | Interview question #1 - detecting negative cycles on the FOREX | |
|
Lecture 2 | How to use Bellman-Ford algorithm on the FOREX | 00:06:25 Duration |
|
Lecture 3 | Interview question #1 - solution |
Section 25 : Graph Algorithms - Spanning Trees with Kruskal Algorithm
|
Lecture 1 | What is the disjoint set data structure | 00:14:11 Duration |
|
Lecture 2 | Disjoint sets visualization | 00:05:50 Duration |
|
Lecture 3 | Kruskal's algorithm introduction | 00:10:05 Duration |
|
Lecture 4 | Kruskal algorithm implementation I - basic classes | 00:06:22 Duration |
|
Lecture 5 | Kruskal algorithm implementation II - disjoint set | 00:13:00 Duration |
|
Lecture 6 | Kruskal algorithm implementation III - algorithm | 00:05:12 Duration |
|
Lecture 7 | Kruskal algorithm implementation VI - testing | 00:03:22 Duration |
Section 26 : Graph Algorithms - Spanning Trees with Prims Algorithm
|
Lecture 1 | What is the Prim-Jarnik algorithm | 00:09:34 Duration |
|
Lecture 2 | Prims-Jarnik algorithm implementation I | 00:10:23 Duration |
|
Lecture 3 | Prims-Jarnik algorithm implementation II | 00:03:11 Duration |
|
Lecture 4 | Applications of spanning trees | 00:06:03 Duration |
Section 27 : Basic Sorting Algorithms
Section 28 : Interview Questions (Sorting)
Section 29 : Next Steps
|
Lecture 1 | About Proctor Testing |
Section 30 : Course Materials (DOWNLOADS)
|
Lecture 1 | Download course materials (slides and source code) |