The ‘Algorithms and Data Structures in Python (INTERVIEW Q&A) Course’ is taught by Holczer Balazs. He works as a simulation engineer at a multinational company. The course aims to focus on data structures, algorithms, and graphs. The course will implement such problems in Python programming language.
The course follows a hands-on approach. Students will be able to see the practical applications of all the concepts in the investment banking, AI, and stock market industries. The course is usually available for INR 2,799 on Udemy but students can click on the link and get the ‘Algorithms and Data Structures in Python (INTERVIEW Q&A) Course’ for INR 449.
Who all can opt for this course?
Novice Python programmers who are curious to study graphs, algorithms, and data structures.
Course Highlights
Key Highlights | Details |
---|---|
Registration Link | Apply Now! |
Price | INR 449 ( |
Duration | 23 hours |
Rating | 4.4/5 |
Student Enrollment | 27,267 students |
Instructor | Holczer Balazs https://www.linkedin.com/in/holczerbalazs |
Topics Covered | Arrays, linked lists, stacks and queues, binary search trees, priority queues and heaps, etc. |
Course Level | Intermediate (Some basic Python knowledge is required) |
Total Student Reviews | 4,086 |
Learning Outcomes
- Understand linked lists and arrays
- Learn about queues and stacks
- Learn about tree-like data structures (binary search trees)
- Learn about balances trees (AVL trees and red-black trees)
- Get familiar with heap data structures
- Know about dictionaries, hash tables, and hashing
- Recognize the differences between abstract data types and data structures
- Learn about graph traversal (BFS and DFS)
- Recognize shortest-path algorithms like Bellman-Ford and Dijkstra’s methods
- Learn the Prims algorithm for minimum spanning trees
- Recognize sorting formulas
- Learn how to create original algorithms
- Have a good knowledge of algorithmic thinking
- Be able to detect and fix inefficient code fragments
Course Content
S.No. | Module (Duration) | Topics |
---|---|---|
1. | Introduction (02 minutes) | Introduction |
Complexity theory basics | ||
2. | Installation and Environment Setup (05 minutes) | Installing Python |
Installing PyCharm | ||
3. | ### DATA STRUCTURES ### (11 minutes) | Why do we need data structures? |
Data structures and abstract data types | ||
Data Structures and Abstract Data Types Quiz | ||
4. | Data Structures – Arrays (38 minutes) | What are array data structures? |
What are lists in Python? | ||
Arrays introduction – operations | ||
Lists in Python | ||
Lists in Python – advanced operations | ||
Lists in Python – list comprehension | ||
Arrays and Lists Quiz | ||
5. | Interview Questions – (Arrays) (01 hour 01 minutes) | Reversing an array in-place overview |
Reversing an array in-place solution | ||
Palindrome problem overview | ||
Palindrome problem solution | ||
Integer reversion problem overview | ||
Integer reversion problem solution | ||
Anagram problem overview | ||
Anagram problem solution | ||
Dutch national flag problem overview | ||
Dutch national flag problem theory | ||
Dutch national flag problem solution | ||
Trapping rain water problem overview | ||
Trapping rain water problem theory | ||
Trapping rain water problem solution | ||
6. | Data Structures – Linked Lists (48 minutes) | What are linked lists? |
Linked list introduction – operations | ||
Linked list implementation I | ||
Linked list implementation II | ||
Linked list implementation III | ||
Revisiting remove operation | ||
Comparing linked lists and arrays | ||
Practical (real-world) applications of linked lists | ||
Linked Lists Quiz | ||
7. | Data Structures – Doubly Linked Lists (19 minutes) | What are doubly linked lists? |
Doubly linked list implementation | ||
Running time comparison: linked lists and arrays | ||
Doubly Linked Lists Quiz | ||
8. | Interview Questions (Linked Lists) (12 minutes) | Finding the middle node in a linked list overview |
Finding the middle node in a linked list solution | ||
Reverse a linked list in-place overview | ||
Reverse a linked list in-place solution | ||
9. | Data Structures – Stacks (27 minutes) | What are stacks? |
Stacks in memory management (stacks and heaps) | ||
Stack memory visualization | ||
Stack implementation | ||
Practical (real-world) applications of stacks | ||
Stack Quiz | ||
10. | Data Structures – Queues (12 minutes) | What are queues? |
Queue implementation | ||
Queues Quiz | ||
11. | Interview Questions (Stacks and Queues) (17 minutes) | Max in a stack problem overview |
Max in a stack problem solution | ||
Queue with stack problem | ||
Queue with stack problem solution | ||
Queue with stack problem solution – recursion | ||
12. | Data Structures – Binary Search Trees (01 hour 27 minutes) | What are binary search trees? |
Binary search trees theory – search, insert | ||
Binary search trees theory – delete | ||
Binary search trees theory – in-order traversal | ||
Binary search trees theory – running times | ||
Binary search tree implementation I | ||
Binary search tree implementation II | ||
Stack memory visualization – finding max (min) items | ||
Stack memory visualization – tree traversal | ||
Binary search tree implementation III – remove operation | ||
Practical (real-world) applications of trees | ||
Binary Search Trees Quiz | ||
13. | Interview Questions (Binary Search Trees) (08 minutes) | Compare binary trees overview |
Compare binary trees solution | ||
14. | Data Structures – AVL Trees (01 hour 22 minutes) | Motivation behind balanced binary search trees |
What are AVL trees? | ||
AVL trees introduction – height | ||
AVL trees introduction – rotations | ||
AVL trees introduction – illustration | ||
AVL tree implementation I | ||
AVL tree implementation II | ||
AVL tree implementation III | ||
AVL tree implementation IV | ||
AVL tree implementation V | ||
Practical (real-world) applications of balanced binary search trees | ||
AVL Trees Quiz | ||
15. | Data Structures – Red-Black Trees (59 minutes) | What are red-black trees? |
The logic behind red-black trees | ||
Red-black trees – recoloring and rotation cases | ||
Red-black tree illustrations | ||
Red-black tree implementation I | ||
Red-black tree implementation II | ||
Red-black tree implementation III | ||
Red-black tree implementation IV | ||
Differences between red-black tree and AVL trees | ||
Red-Black Trees Quiz | ||
16. | Data Structures – Heaps (01 hour 11 minutes) | What are priority queues? |
Heap introduction – basics | ||
Heap introduction – array representation | ||
Heap introduction – remove operation | ||
Using heap data structure to sort (heapsort) | ||
Heap introduction – operations complexities | ||
Binomial and Fibonacci heaps | ||
Heap implementation I | ||
Heap implementation II | ||
Heap implementation III | ||
Heaps in Python | ||
Heaps Quiz | ||
17. | Interview Questions (Heaps) (14 minutes) | Interview question #1 – checking heap properties |
Interview question #1 – solution | ||
Interview question #2 – max heap to a min heap | ||
Interview question #2 – solution | ||
18. | Data Structures – Associative Arrays (Dictionaries) (01 hour 06 minutes) | What are associative arrays? |
Hashtable introduction – basics | ||
Hashtable introduction – collisions | ||
Hashtable introduction – dynamic resizing | ||
Linear probing implementation I | ||
Linear probing implementation II | ||
Linear probing implementation III | ||
Dictionaires in Python | ||
Why to use prime numbers in hashing? | ||
Practical (real-world) applications of hashing | ||
Dictionaries Quiz | ||
19. | ### GRAPH ALGORITHMS ### (18 minutes) | Graph theory overview |
Adjacency matrix and adjacency list | ||
Applications of graphs | ||
Graph Algorithms Overview Quiz | ||
20. | Graph Algorithms – Graph Traversal Algorithms (57 minutes) | Breadth-first search introduction |
Breadth-first search implementation | ||
What are WebCrawlers (core of search engines)? | ||
WebCrawler basic implementation | ||
Depth-first search introduction | ||
Depth-first search implementation | ||
Depth-first search implementation II | ||
Memory management: BFS vs DFS | ||
Graph traversal quiz | ||
21. | Interview Questions (Graph Traversal) (25 minutes) | Interview question #1 – implement DFS with recursion |
Interview question #1 – solution | ||
Depth-first search and stack memory visualisation | ||
Interview question #2 – using BFS to find way out of maze | ||
Interview question #2 – solution | ||
22. | Graph Algorithms – Shortest Paths with Dijkstra’s Algorithm (01 hour 18 minutes) | What is the shortest path problem? |
Dijkstra algorithm visualization | ||
Dijkstra algorithm implementation I – Edge, Node | ||
Dijkstra algorithm implementation II – algorithm | ||
Dijkstra algorithm implementation III – testing | ||
Dijktsra’s algorithm with adjacency matrix representation | ||
Adjacency matrix representation implementation | ||
Shortest path algorithms applications | ||
What is the critical path method (CPM)? | ||
Dijkstra’s Algorithm Quiz | ||
23. | Graph Algorithms – Shortest Paths with Bellman-Ford Algorithm (37 minutes) | What is the Bellman-Ford algorithm? |
Bellman-Ford algorithm visualization | ||
Bellman-Ford algorithm implementation I – Node, Edge | ||
Bellman-Ford algorithm implementation II – the algorithm | ||
Bellman-Ford algorithm implementation III – testing | ||
Greedy algorithm or dynamic programming approach? | ||
Bellman-Ford Algorithm Quiz | ||
24. | Interview Questions (Shortest Paths) (10 minutes) | Interview question #1 – detecting negative cycles on the FOREX |
How to use Bellman-Ford algorithm on the FOREX? | ||
Interview question #1 – solution | ||
25. | Graph Algorithms – Spanning Trees with Kruskal Algorithm (58 minutes) | What is the disjoint set data structure? |
Disjoint sets visualization | ||
Kruskal’s algorithm introduction | ||
Kruskal algorithm implementation I – basic classes | ||
Kruskal algorithm implementation II – disjoint set | ||
Kruskal algorithm implementation III – algorithm | ||
Kruskal algorithm implementation VI – testing | ||
Kruskal’s Algorithm Quiz | ||
26. | Graph Algorithms – Spanning Trees with Prims Algorithm (31 minutes) | What is the Prim-Jarnik algorithm? |
Prims-Jarnik algorithm implementation I | ||
Prims-Jarnik algorithm implementation II | ||
Comparing the spanning tree approaches | ||
Applications of spanning trees | ||
Prim’s Algorithm Quiz | ||
27. | Hamiltonian Cycles – Travelling Salesman Problem (49 minutes) | What are Hamiltonian cycles? |
The travelling salesman problem | ||
Travelling salesman problem implementation | ||
TSP and stack memory visualization | ||
Why to use meta-heuristics? | ||
Hamiltonian Problem Quiz | ||
28. | ### SUBSTRING SEARCH ALGORITHMS ### (02 hours 15 minutes) | Brute-force search introduction |
Brute-force substring search algorithm implementation | ||
Naive Substring Search Quiz | ||
Rabin-Karp algorithm introduction | ||
Rabin-Karp algorithm implementation | ||
Rabin-Karp Substring Search Quiz | ||
Knuth-Morris-Pratt algorithm introduction | ||
Constructing the partial match table – visualization | ||
Knuth-Morris-Pratt algorithm implementation | ||
Knuth-Morris-Pratt Algorithm Quiz | ||
Z algorithm introduction | ||
Z algorithm illustration | ||
Z algorithm implementation | ||
Z Algorithm Quiz | ||
Substring search algorithms comparison | ||
Applications of substring search | ||
29. | ### SORTING ALGORITHMS ### (03 hours 16 minutes) | Sorting introduction |
What is stability in sorting? | ||
What is adaptive sorting? | ||
Sorting Algorithms Basics Quiz | ||
Bogo sort introduction | ||
Bogo sort implementation | ||
Bogo Sort Quiz | ||
Bubble sort introduction | ||
Bubble sort implementation | ||
Selection sort introduction | ||
Selection sort implementation | ||
Selection Sort Quiz | ||
Insertion sort introduction | ||
Insertion sort implementation | ||
Sorting custom objects with insertion sort | ||
Solution – sorting custom objects with insertion sort | ||
Insertion Sort Quiz | ||
Shell sort introduction | ||
Shell sort implementation | ||
Shell Sort Quiz | ||
Quicksort introduction | ||
Quicksort introduction – example | ||
Quicksort implementation | ||
Hoare’s partitioning and Lomuto’s partitioning | ||
What is the worst-case scenario for quicksort? | ||
QuickSort Quiz | ||
Merge sort introduction | ||
Merge sort implementation | ||
Stack memory and merge sort visualization | ||
Merge Sort Quiz | ||
Hybrid algorithms introduction | ||
Non-comparison based algorithms | ||
Counting sort introduction | ||
Counting sort implementation | ||
Radix sort introduction | ||
Radix sort implementation | ||
Measure running time differences | ||
Non-Comparison Based Sorting Quiz | ||
30. | Interview Questions (Sorting) (01 minutes) | TimSort algorithm |
Interview question #1 – solution | ||
Quicksort with iteration | ||
Interview question #2 – solution | ||
Selection sort with recursion | ||
Interview question #3 – solution | ||
31. | ### APPENDIX – COMPLEXITY THEORY CRASH COURSE ### (59 minutes) | How to measure the running times of algorithms? |
Complexity theory illustration | ||
Complexity notations – big (O) ordo | ||
Complexity notations – big ? (omega) | ||
Complexity notations – big (?) theta | ||
Algorithm running times | ||
Complexity classes | ||
Analysis of algorithms – loops | ||
32. | Next Steps (33 seconds) | Next steps |
33. | Course Materials (DOWNLOADS) (00 seconds) | Download course materials (slides and source code) |
Resources Required
- Basics of Python
- Some theoretical background (big O notation)
Featured Review
Dakota Hipp (5/5): Great information and well explained, I learned a lot in this course!
Pros
- Shervin Goudarzi (5/5): Yes, it is a great experience; I have learned a lot!!!
- Anonymized User (5/5): It’s the best Algo and DSA course with python on Udemy.
- Tanner Barcelos (4/5): sets you up perfectly for LeetCode and Hackerank and of course, interviews.
- Arjun VS (5/5): Update: thank you for updating the coding section, now it’s perfect.
Cons
- Brady Dyson (2/5): This concept isn’t very difficult to understand, but I also already knew what a stack was.
- Aarushi Singh (1/5): It’s difficult to understand as he is not doing anything on IDE, with no hands-on programming.
- Yash Varshney (2/5): He used vert small fonts while doing programming which is very difficult to see. Please zoom in notepad++ .
- Ayberk Koc (1/5): Also the course seems to be build up in a very lazy manner.
About the Author
The course is taught by Holczer Balazs. He works as a software engineer at a multinational company. He offers a total of 32 courses on Udemy and has an average of 4.5 instructor rating based on over 33k reviews. He has taught 2,64,824 students so far.
- He is from Budapest, Hungary.
- He is qualified as a Physicist.
- He currently works for a multinational company as a simulation engineer.
- He developed an interest in algorithms and data structures, especially their implementations in Java since University.
- Subsequently, he learned how to solve differential equations using linear algebra, interpolation, and extrapolation, as well as other artificial intelligence and machine learning approaches.
Comparison Table
Parameters | Algorithms and Data Structures in Python (INTERVIEW Q&A) | Recursion, Backtracking and Dynamic Programming in Python | Python 3: Deep Dive (Part 2 – Iteration, Generators) |
---|---|---|---|
Offers | INR 449 ( | INR 455 ( | INR 455 ( |
Duration | 23 hours | 16 hours | 36 hours |
Rating | 4.4/5 | 4.6 /5 | 4.9 /5 |
Student Enrollments | 27,267 | 9,832 | 28,599 |
Instructors | Holczer Balazs | Holczer Balazs | Fred Baptiste |
Register Here | Apply Now! | Apply Now! | Apply Now! |
Leave feedback about this