About this course
This interactive textbook was written with the intention of teaching Computer Science students about various data structures as well as the applications in which each data structure would be appropriate to use. It is currently being used at the University of California, San Diego (UCSD).
This textbook utilizes the Active Learning approach to instruction, meaning it has various activities embedded throughout to help stimulate your learning and improve your understanding of the materials we will cover. You will encounter STOP and Think questions that will help you reflect on the material, Exercise Breaks that will test your knowledge and understanding of the concepts discussed, and Code Challenges that will allow you to actually implement some of the algorithms we will cover.
Currently, all code challenges are in C++ or Python, but the vast majority of the textbook's content is language-agnostic theory of complexity and algorithm analysis. In other words, even without C++ or Python knowledge, the key takeaways of the textbook can still be obtained.
Initial requirements
Learners should have prior Java, C++, or Python programming skills as well as basic knowledge of time complexity.