I have been asked to teach a series of courses on basic computer science data structures. The target audience of this series is young developers, mostly working in javascript.
The issue that I ran into as I began to prepare was that javascript lacked many of the core constructs needed to teach such lessons — namely pointers. This is not to say that such data structures could not be implemented in javascript, but from a purely academic perspective, it would be less educational than a language like C/C++ where they could be implemented with direct memory control.
Truth be told, I have no issues with C++. In fact, I have done my fair share of work in it over the years. But for a group of javascript developers, having to contend with the fundamentals of C++ would likely overshadow the lessons at hand.
For these reasons, I decided to write these lessons in a language which has recently become a large part of my coding life and should be more immediately accessible to developers without a background in computer science– Go.
These lessons will follow the outline below: (I will convert them to links as the lessons materialize)
- Structs
- Pointers
- Lists
- Singly Linked List
- Doubly Linked List
- ArrayList
- Stacks/Queues
- Sets
- HashSet
- TreeSet
- Trees
- RedBlackTree
- AVLTree
- BTree
- Maps
- HashMap
- TreeMap