Code and run your first Java program about data structures and algorithms in minutes without installing anything!
This course is designed for learners familiar with Java basics and object-oriented programming. It provides a solid foundation of not just Java, but core data structures and algorithms topics that can be transferred to other languages. The modules in this course cover linear data structures like lists (singly linked, doubly linked, circular), stacks, queues, and introduces the first non-linear data structure trees.
To allow for a truly hands-on, self-paced learning experience, this course is video-free. Assignments contain short explanations with images and runnable code examples with suggested edits to explore code examples further, building a deeper understanding by doing. You'll benefit from instant feedback from a variety of assessment items along the way, gently progressing from quick understanding checks (multiple choice, fill in the blank, and un-scrambling code blocks) to small, approachable coding exercises that take minutes instead of hours.
Overview
Syllabus
- List ADT
- Welcome to Week 1 of the Linear Data Structures and Trees course. You will learn about abstract data types (ADT), the list ADT, the many variations of the list (singly, doubly, circular linked lists), as well as iterators.
- Stacks and Queues ADT
- Welcome to Week 2 of the Linear Data Structures and Trees course. This module builds upon the list ADT and introduces other commonly used linear data structures like stacks, queues, priority queues, and deques (double-ended queues).
- Tree ADT
- Welcome to Week 3 of the Linear Data Structures and Trees course. This module introduces the first non-linear data structure, trees. Topics include the tree ADT, binary trees, binary search trees, tree traversal, and different searching algorithms for trees.
- Self-Balancing Trees
- Welcome to Week 4 of the Linear Data Structures and Trees course. This module builds upon the tree ADT and introduces data structures that reconfigure themselves to maintain balance and good performance. Topics include AVL trees, Red-Black trees, and B-trees.
Taught by
Patrick Ester and Kevin Noelsaint