Skip to content
Eishaaya edited this page Jan 12, 2024 · 12 revisions

Great Minds Robotics Data Structures & Algorithms Curriculum


Smiley face

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

Overview and Purpose:

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.

Course Outline:

  • 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.
Clone this wiki locally