What you’ll learn: Data Structures and Algorithms
-
Sort algorithms (bubble, insertion, selection, quick, merge, heap, radix), Search algorithms (linear, hash-table, binary, ternary, jump, exponential, Fibonacci), Binary Search Trees,
Requirements
-
Some familiarity with basics in computer science may be useful but is not a must
Description
This course teaches a comprehensive list of basic and advanced data structures and algorithms, an essential topic of coding interviews at tech companies.
The course is paired with a C# GitHub open source project (username: PiJei, repository name: AlgorithmsAndDataStructures) where each algorithm is tagged with its space and time complexities (Big O) and tested for correctness with the same examples used in this course.
If you are a developer or a graduate student who is preparing for coding interviews at large tech firms as Google, Amazon, Facebook, Apple, Microsoft, or smaller high tech companies, you have landed in the right place. By attending this course, you will learn the essential and complex data structures and algorithms, once and for all.
Some algorithms are taught over a medium-size example such that the algorithm repeats itself several times until it is no longer complicated and relatively easily understood.
You are expected to maintain the knowledge gained via this course for a very long period. This is because this course makes heavy usage of animations, examples, and repetitions, which are the keys to deeply learning new topics.
The course has 45 lectures (~ 400 minutes) covering the following topics:
Search Algorithms:
- Linear Search
- Hash-Table Search
- Jump Search
- Exponential Search
- Fibonacci Search
- Binary Search
- Ternary Search
- Interpolation Search
Sort Algorithms:
- Bubble Sort
- Insertion Sort
- Selection Sort
- Quick Sort
- Merge Sort
- Radix Sort
- Heap Sort
Binary Heaps:
- Min Binary Heap
- Max Binary Heap
- Min-Max Binary Heap
With these operations:
- Build
- Insert
- Delete
Binary Trees:
- Binary Search Tree
- AVL Tree
- RedBlack Tree
With these operations:
- Insert
- Delete
Nary Trees:
- B Tree
- B+ Tree
With these operations:
- Insert
- Delete
- Anyone preparing for coding interviews at GAFAM, or high tech firms
- Students of computer science/engineering
The instructor has 17 years of operational experience in computer science and engineering :
Employment History
- Vice President (Software Engineering), JP.Morgan [2019 to Present]
- Engineer/Researcher, Microsoft [2016 to 2019]
- Postdoctoral Researcher, Microsoft Research [2014 to 2016]
- Ph.D., University Of Lugano [2009 to 2014]
Thesis: High-performance State-Machine Replication
Teaching experiences
- Distributed Algorithms, University of Lugano
- Java programming language, University of Lugano
- Python programming language, University of Lugano
CS Interests
- Large scale Distributed Systems /Databases
- Cloud Services
- Networking
- Datacenter resource usage
Leave a Reply