Gain a deeper understanding of how computer programs store and manipulate data internally.
- Welcome to Foundations of Programming, Data Structures. I'm Simon Allardice. This course exists because as soon as we get beyond simplistic hello world programming, our programs are filled with data structures. An array is a data structure, an object in an object-oriented programming language is a data structure, but there are many others. We have dictionaries, sets, hash tables, queues and stacks, lists and link lists, trees and graphs, multiple ways to contain information inside a computer program. We'll begin here by covering the plain old data structures from the earlier programming languages, things like structs and basic arrays that we all know.
We'll see why they're so useful, but there are better options for many programming problems. I'm going to start to introduce more complex data structures, but we'll always keep a practical, real-world, pragmatic approach to this. Why would we use a hash table or a stack? What is a set useful for? When should you avoid using an array? Or a queue? Or a dictionary? Now, this course is not about writing the behind the scenes data structure algorithms because most modern programming languages already have incredible built-in support for all the classic data structures.
They're optimized, they're battle tested, but they're also often underutilized and misunderstood. Here, it's about truly understanding data structures so you can use them successfully in whatever language you're using today, or six months from now, or five years from now. Let's get started.
Starting with simple ways of grouping data like arrays and structs, together you'll explore gradually more complex data structures, like dictionaries, sets, hash tables, queues and stacks, links and linked lists, and trees and graphs. Simon keeps the lessons grounded in the real world and answers the "why" behind many data-structuring decisions: Why use a hash table? Why is a set useful? Why avoid arrays? When you're finished with the course, you'll have a clear understanding of data structures and understand how to use them in whatever language you're programming in, today or 5 years from now.
- What is a data structure?
- Using C-style structs and arrays
- Sorting and searching arrays
- Working with singly and doubly linked lists
- Using stacks for last-in, first-out (LIFO) structures
- Using queues for first-in, first-out (FIFO) structures
- Working with hash tables
- Understanding binary search trees (BSTs)
- Learning about graphs