These topics are things that you'll want to be comfortable with before learning data structures and algorithms but you don't have to know all of them before you get started. For example, bit arithmetic won't be relevant until we cover Bloom Filters.
These are skills that you'll want to be comfortable with for working on real-life projects.
Data structures and algorithms is all about solving problems efficiently: quickly and using little memory. Big-O is a tool that allows us to compare the efficiency of different data structures, algorithms, or other code no matter what computer we're using.
After this Part of the course, you'll be able to calculate the big-O of a few algorithms and possibly all the code you've ever written so far. You'll also be able to compare the big-O of virtually anything and know which data structure or algorithm is theoretically more efficient without ever looking at the code! These are skills you'll use throughout this course and throughout your career whenever you want things to be efficient at large scale.
Vectors and linked lists are among the simplest data structures. Vectors are especially common and in fact, std::string
are based on vectors. -- Learning about vectors and linked lists will help you learn about all the more complicated data structures, like balanced binary search trees or hash tables. After learning this material, you'll understand the relationship between a concrete implementation and an abstract idea and you'll have practice analyzing a data structure.
These are topics that are worth discussing but that I haven't found a good place for yet in the course. -- These topics may or may not be covered.