
Learn Computer Science
Developing a more interesting World
"Computer science is no more about computers than astronomy is about telescopes."
Edsger Dijkstra
Free beginner - intermediate level computer science tutorials
Data Structures
Tutoring > Data Structures​
Abstract Data types - What are they? What is the point of them?
Arrays, Lists, Stacks and Queues - What are they? What can we do with them?
Complexity - What is complexity? How do we measure and report on it? Why is it important?
Trees - What is a tree? Different types of tree. Why are trees great? Why not?
Graphs - What is a graph? What properties can it have? Algorithms to traverse and visit nodes.
Sets and Maps - What are they good for? How are they bad?
Priority Collections - What is a priority collection? Heap trees? Dijkstra's algorithm?
Hash Tables - What is a has table? Are they worth it? What problems do they cause and how can we fix them?
Insertion Sort - How is it done? How fast is it?
Selection Sort - How does it work? Is it better than insertion sort?
Quick Sort - What is it? Is it any good?
Merge Sort - How do we use merge sort?
Heap Sort - How does heap sort work? What is a heap?
Tree Sort - How can we build a binary search tree from an array?