Home
This course in Data Structures & Algorithms was designed by Samson Tse, Varderes Barsegyan, Ryan Scopio, and Karan Bhamra.
Reviewed By: Stan Khaykin, Karan Bhamra and Thad House
Contributors: Jonathan Kennedy, Glen Husman, Jessica Plotkin, Jaren Mendelsohn, Robert Sandor, and Alexander Leontiev
At Great Minds Robotics there exists a subset of students and instructors that are ready to learn about data structures and algorithms. Many of the concepts in this curriculum are fundamentally important in computer science as a whole and are required to have a successful career in the field. After completing this course, students will learn how to think like a professional developer when it comes to data-related issues, as well as apply the proper techniques and concepts to real-world problems. Additionally, it will prepare them for coding competitions, intermediate college courses and even entry-level development jobs.
- An FAQ on why data structures, and algorithms are important.
- Concepts include: coding conventions and algorithm efficiency.
- A discussion of simple sorting techniques and their usage.
- Implementation assistance for bubble sort, selection sort, and insertion sort.
- A review of how arrays, array-backed lists and various linked lists are implemented in code and in memory.
- Lessons on singly, doubly, and circularly-doubly linked lists.
- Explanation and implementation of stack and queue data structures and their importance.
- Explanation of tree-based data structures.
- Lesson on binary search trees, and various tree traversals.
- An explanation of the usefulness of recursion and its place in sorting.
- Lessons on merge sort and quick sort.
- Explanation of data structures which self-organize in order to maintain efficiency.
- Lessons on heaps and heap sort.
- Lesson on self-balancing binary search tree known as avl tree.
- Implementation of recursive algorithms for tree operations and tree traversals.
- Lesson on skip list, a probabilistic data structure that is built upon the idea of a linked list which allows for fast searches.
- Introduction to graph theory and the types of problems that graphs solve.
- Lessons on building undirected/unweighted and directed/weighted graphs.
- Lessons on pathfinding/search algorithms such as Dijkstra's, Bellman-Ford and a-star (A*).
- Explanation of hashing algorithms and how to apply them to the hashmap and hashset data structures.
- Lesson on the union-find (disjoint set) data structure and how to perform set operations such as find and union.
- Lesson on trie (prefix tree) and their usefulness in storing characters in strings as keys.
- Introduction to the probabilistic data structure called bloom filter and how it is utilized in modern systems.
- Lesson on caches, cache policies, and implementation of the least recently used (LRU) cache data structure.
- Lesson on huffman coding, which is used for lossless data compression.
- Lesson on the sorted set data structure which provides a total ordering on its elements, including set operations.
- Lesson on a generalized form of the binary search tree known as b-tree.
- Introduction to a left-leaning red black tree, which is a binary search tree that utilizes an extra bit to keep the tree balanced.
If you need help Visualizing any of the mentioned items, check out this site that visualizes them https://www.cs.usfca.edu/~galles/visualization/Algorithms.html