Data structures and algorithms form the backbone of computer science. Master them in Java through hands-on coding projects and unlock the ability to build complex programs from scratch.
Start CourseData structures and algorithms serve as the fundamental building blocks of computer programming. Whether you're trying to optimize a routing system for a fleet of vehicles, build a social network platform, or develop an e-commerce recommendation system, knowing how to efficiently organize and process data is absolutely critical. In this comprehensive course, you'll gain an in-depth understanding of essential data structures like arrays, linked lists, trees, graphs, and strings as well as sorting, searching, and analysis algorithms.
We'll start from square one, making sure you have a strong grasp of core computer science concepts before gradually guiding you through more complex data interactions. You'll learn all about storing and manipulating data with arrays and array lists, creating connections with different types of linked lists, organizing hierarchical data with trees, modeling relationships with graphs, and handling text data with strings. Along the way, you'll get hands-on practice implementing crucial algorithms like binary searc and merge sort, as well as creating fun games!
This course provides a deep dive into data structures and algorithms through practical coding projects in Java. It is taught by our very own Head of Course Design, Katia Ohmacht, who brings her extensive experience to crafting an engaging curriculum. Upon completion, you'll have a working knowledge of the driving force behind real-world software engineering challenges. You'll be equipped to analyze problems, leverage the right data structures and algorithms, and develop efficient solutions. These fundamental skills will enable you to program with confidence and tackle more complex systems down the road. Join us to level up your coding abilities and become fluent in the secret language of data!
We always want feedback. If you have any questions or comments, email us.
Welcome to Codology's Introduction to Data Structures course! Meet Katia, your instructor, who will guide you through the world of data structures!
Let's get started on a journey through the world of data structures!
Learn about 1D arrays for storing data, ArrayLists for dynamic arrays, and 2D arrays for tables, then apply your newly-developed skills by coding a classic game!
Learn how these 1D structures work and how to access elements using indexes.
Discover how to create dynamic arrays in Java that grow and shrink as needed.
See how these "arrays of arrays" can store data in rows and columns like a spreadsheet.
Apply what you learned about arrays by coding a classic game!
Explore singularly, doubly, and circularly linked lists. Understand nodes, pointers, and linking. Code a game of Uno to apply your knowledge!
Dive into how linked lists store data in nodes connected by pointers.
Code your own singular linked list using nodes and next pointers.
Build a doubly linked list with previous and next pointers for efficient traversal.
Make a circularly linked list where the nodes link back around!
Use your linked list skills to code a classic and fun card game!
Learn last-in-first-out stacks and first-in-first-out queues, then implement these abstract data structures for organized data storage!
Discover last-in-first-out stacks and how to push and pop elements.
Learn first-in-first-out queues and adding and removing elements properly.
Discover non-linear binary trees, sorted binary search trees, and self-balancing AVL trees. Then, implement your own trees!
Explore the flexible world of trees! Learn how data is stored in nodes and branches.
Discover binary search trees and how they store data in a sorted way for faster searching.
Take binary search trees to the next level with self-balancing AVL trees!
Show off your new tree skills by implementing an AVL tree from scratch!
Understand how graphs model real-world connections by linking nodes with edges. See how social networks, maps, and more can be represented as graphs.
Learn how strings represent text as sequences of characters. Discover techniques like concatenation, parsing, searching, and more.
Explore linear and binary search, as well as sorting algorithms like bubble, selection, insertion, and merge sort.
Discover linear and binary searching — two fundamental algorithms for quickly finding data.
See how intuitive sorting algorithms like selection, insertion, and bubble sort rerrange data in simple ways.
Understand how these faster algorithms rearrange data for optimal performance.